0%

1. 规则

1.1 最左匹配原则

MongoDB 中复合索引的使用和 MySQL 中复合索引的使用类似,也有最左匹配原则。即最左优先,在检索数据时从复合索引的最左边开始匹配。

复合索引创建的时候有一个一个基本的原则就是将选择性最强的列放到最前面。

选择性最高值得是数据的重复值最少,因为区分度高的列能够很容易过滤掉很多的数据。组合索引中第一次能够过滤掉很多的数据,后面的索引查询的数据范围就小了很多了。

阅读全文 »

1. hook介绍

客户端钩子由诸如提交和合并这样的操作所调用,而服务器端钩子作用于诸如接收被推送的提交这样的联网操作。

客户端钩子位于项目根目录 your_project/.git/hooks 文件夹下。

服务端钩子则位于 your_project.git 文件夹下的 hooks 和 custom_hooks。

600
阅读全文 »

1. 大型语言模型(LLM)

1.1 介绍

大语言模型(LLM,Large Language Model),也称大型语言模型,是一种旨在理解和生成人类语言的人工智能模型。

LLM 通常指包含数百亿(或更多)参数的语言模型,它们在海量的文本数据上进行训练,从而获得对语言深层次的理解。目前,国外的知名 LLM 有 GPT-3.5、GPT-4、PaLM、Claude 和 LLaMA 等,国内的有文心一言、讯飞星火、通义千问、ChatGLM、百川等。

LLM 的一个杰出应用就是 ChatGPT ,它是 GPT 系列 LLM 用于与人类对话式应用的大胆尝试,展现出了非常流畅和自然的表现。

阅读全文 »

1. 介绍

tmux 已经支持 popup功能, 但是暂时还没有发布到 stable release 版本, 所以需要使用的需要在开发分支上编译使用, 即tmux 版本需要>=3.2

image-20210311105854535

阅读全文 »

fzf是一个通用的命令行模糊查找器, 通过输入模糊的关键词就可以定位文件或文件夹。结合其他工具(比如rg)可以完成非常多的工作,在工作中可以大幅提高你的工作效率。

fzf可以用于文件、命令历史记录、进程、主机名、书签、git提交等。

阅读全文 »

微服务集群中,每个应用基本都会依赖一定数量的外部服务。如果依赖服务过载,服务不可用的情况,在高并发场景下如果此时调用方不做任何处理,继续持续请求故障服务的话很容易引起整个微服务集群雪崩。

所以应该采用熔断的策略,不再调用下游服务。

首先先区分下熔断、限流、降级区别

  1. 限流

    是针对服务请求数量的一种自我保护机制,当请求数量超出服务负载时,自动丢弃新的请求,是系统高可用架构的第一步。

  2. 熔断

    是调用方自我保护的机制(客观上也能保护被调用方),熔断对象是外部服务。

  3. 降级

    是被调用方(服务提供者)的防止因自身资源不足导致过载的自我保护机制,降级对象是自身。

触发条件面向目标
限流上游服务请求多上游
熔断下游服务不可用下游
降级服务自身负载高自身
阅读全文 »

后端服务程序在配置更新,程序修改后发布的过程中存在一些未处理完成的请求,和当前服务中为落地的资源(缓存、记录、日志等数据),为了减少这种情况带来的数据异常,需要有一种机制,在服务收到重启或者关闭信号的同时进行一些数据收尾处理。

阅读全文 »

在现代软件开发中,依赖注入(Dependency Injection,简称 DI)已经成为一种广泛采用的设计模式。具体的做法可以遵守一个重要的设计准则:所有依赖应该在组件初始化时传递给它,这就是依赖注入(Dependency injection)。

在众多工具中,Wire 以其简洁、强大和易用性脱颖而出,成为 Go 语言项目中的宠儿。

阅读全文 »

1. 服务网格

服务网格(Service Mesh)是一种将服务之间的通信从应用层解耦到基础设施层的技术。在服务网格中,通过代理服务之间的流量来实现基础设施层的抽象。

500
阅读全文 »