
microservices
文章平均质量分 90
microservices
daemon365
https://daemon365.cnblogs.com/
展开
-
限流
限流是指在一段时间内,定义某个客户或应用可以接收或处理多少个请求的技术。例如,通过限流,你可以过滤掉产生流量峰值的客户和微服务,或者可以确保你的应用程序在自动扩展(Auto Scaling)失效前都不会出现过载的情况。令牌桶、漏桶 针对单个节点,无法分布式限流。QPS 限流不同的请求可能需要数量迥异的资源来处理。某种静态 QPS 限流不是特别准。给每个用户设置限制全局过载发生时候,针对某些“异常”进行控制。一定程度的“超卖”配额。按照优先级丢弃。拒绝请求也需要成本。原创 2024-06-10 12:38:40 · 1233 阅读 · 0 评论 -
grpc 服务发现与负载均衡
在后台服务开发中,高可用性是构建中核心且重要的一环。服务发现(Service discovery)和负载均衡(Load Balance)一直都是我关注的话题。今天来谈一下我在实际中是如何理解及落地的。原创 2024-06-10 12:37:35 · 1311 阅读 · 0 评论 -
超时控制
超时控制,使我们的服务之间调用可以快速抛错。比如API接口设置1s超时API调用A服务用了500ms,服务A调用和服务B用了600ms,n那么现在已经超时,还要调用服务C等等,再返回超时错误吗?这回事使服务C后面的链路做了无用功,浪费服务器资源。原创 2024-06-10 12:36:46 · 514 阅读 · 0 评论 -
隔离
隔离,本质上是对系统或资源进行分割,从而实现当系统发生故障时能限定传播范围和影响范围,即发生故障后只有出问题的服务不可用,保证其他服务仍然可用。原创 2024-06-09 11:47:25 · 1109 阅读 · 0 评论 -
分布式ID生成器及redis,etcd分布式锁
这种场景我们没有办法依赖具体的时间来判断先后,因为不管是用户设备的时间,还是分布式场景下的各台机器的时间,都是没有办法在合并后保证正确的时序的。用41位来表示收到请求时的时间戳,单位为毫秒,然后五位来表示数据中心的id,然后再五位来表示机器的实例id,最后是12位的循环自增id(到达1111,1111,1111后会归0)。需要我们在部署阶段就能够获取得到,并且一旦程序启动之后,就是不可更改的了(想想,如果可以随意更改,可能被不慎修改,造成最终生成的id有冲突)。依赖越多,我们的服务的可运维性就越差。原创 2024-06-09 11:46:44 · 966 阅读 · 0 评论 -
thrift 介绍及其使用
Thrift是Facebook于2007年开发的跨语言的rpc服框架,提供多语言的编译功能,并提供多种服务器工作模式;用户通过Thrift的IDL(接口定义语言)来描述接口函数及数据类型,然后通过Thrift的编译环境生成各种语言类型的接口文件,用户可以根据自己的需要采用不同的语言开发客户端代码和服务器端代码。例如,我想开发一个快速计算的RPC服务,它主要通过接口函数getInt对外提供服务,这个RPC服务的getInt函数使用用户传入的参数,经过复杂的计算,计算出一个整形值返回给用户;原创 2024-06-08 11:11:27 · 1336 阅读 · 0 评论 -
微服务架构及raft协议
Raft 协议在集群初始状态下是没有 Leader 的, 集群中所有成员均是 Follower,在选举开始期间所有 Follower 均可参与选举,这时所有 Follower 的角色均转变为 Condidate, Leader 由集群中所有的 Condidate 投票选出,最后获得投票最多的 Condidate 获胜,其角色转变为 Leader 并开始其任期,其余落败的 Condidate 角色转变为 Follower 开始服从 Leader 领导。所以说,保证日志复制一致就是Raf等一致性算法的工作了。原创 2024-06-08 11:10:56 · 720 阅读 · 0 评论 -
grpc 基础
使用gRPC, 我们可以一次性的在一个.proto文件中定义服务并使用任何支持它的语言去实现客户端和服务端,反过来,它们可以应用在各种场景中,从Google的服务器到你自己的平板电脑—— gRPC帮你解决了不同语言及环境间通信的复杂性。HTTP2 规范当使用 TLS 时强制使用 TLS 1.2 及以上的版本,并且在部署上对允许的密码施加一些额外的限制以避免已知的比如需要 SNI 支持的问题。gRPC 有一个标准的健康检测协议,在 gRPC 的所有语言实现中基本都提供了生成代码和用于设置运行状态的功能。原创 2024-06-07 10:33:11 · 968 阅读 · 0 评论 -
proto buffer
Protobuf是Protocol Buffer的简称,它是Google公司于2008年开源的一种高效的平台无关、语言无关、可扩展的数据格式,目前Protobuf作为接口规范的描述语言,可以作为Go语言RPC接口的基础工具。原创 2024-06-07 10:32:34 · 476 阅读 · 0 评论