1. 介绍
tmux 已经支持 popup功能, 但是暂时还没有发布到 stable release 版本, 所以需要使用的需要在开发分支上编译使用, 即tmux 版本需要>=3.2
fzf是一个通用的命令行模糊查找器, 通过输入模糊的关键词就可以定位文件或文件夹。结合其他工具(比如rg)可以完成非常多的工作,在工作中可以大幅提高你的工作效率。
fzf可以用于文件、命令历史记录、进程、主机名、书签、git提交等。
微服务集群中,每个应用基本都会依赖一定数量的外部服务。如果依赖服务过载,服务不可用的情况,在高并发场景下如果此时调用方不做任何处理,继续持续请求故障服务的话很容易引起整个微服务集群雪崩。
所以应该采用熔断的策略,不再调用下游服务。
首先先区分下熔断、限流、降级区别
限流
是针对服务请求数量的一种自我保护机制,当请求数量超出服务负载时,自动丢弃新的请求,是系统高可用架构的第一步。
熔断
是调用方自我保护的机制(客观上也能保护被调用方),熔断对象是外部服务。
降级
是被调用方(服务提供者)的防止因自身资源不足导致过载的自我保护机制,降级对象是自身。
触发条件 | 面向目标 | |
---|---|---|
限流 | 上游服务请求多 | 上游 |
熔断 | 下游服务不可用 | 下游 |
降级 | 服务自身负载高 | 自身 |
后端服务程序在配置更新,程序修改后发布的过程中存在一些未处理完成的请求,和当前服务中为落地的资源(缓存、记录、日志等数据),为了减少这种情况带来的数据异常,需要有一种机制,在服务收到重启或者关闭信号的同时进行一些数据收尾处理。
Kratos 一套轻量级 Go 微服务框架,包含大量微服务相关框架及工具。
在现代软件开发中,依赖注入(Dependency Injection,简称 DI)已经成为一种广泛采用的设计模式。具体的做法可以遵守一个重要的设计准则:所有依赖应该在组件初始化时传递给它,这就是依赖注入(Dependency injection)。
在众多工具中,Wire 以其简洁、强大和易用性脱颖而出,成为 Go 语言项目中的宠儿。
mapstructure 可用于将通用的map[string]interface{}
解码到对应的 Go 结构体中,或者执行相反的操作。
github 地址: github.com/mitchellh/mapstructure
decimal 对于浮点数的计算提供了极大的便利性,让我们在使用浮点数进行大小计算的时候不用担心精度丢失的问题,decimal库能处理小数点后 2^31 位数字,对于绝大多数的项目精度要求是足够的,简而言之,decimal 可以解决我们绝大多数的浮点数精度计算场景。
由于golang中默认是没有decimal类型的,所以要解决上述的问题,需要使用第三方库包decimal。
github 地址:https://github.com/shopspring/decimal