Dubbo原理及实战
DearSil
4年项目实战经验,头未秃,人未强,干就完了
展开
-
分布式系统中的接口幂等性和顺序性
其实在一般的情况下,分布式系统中的顺序性不是必须要求的,但是再某些极端情况下,需要保证接口调用的顺序性,譬如说,需要对一条数据进行修改后删除,但是执行时顺序错了,先删除再修改,那么本来这条数据应该被删除,但是现在数据还存在,导致后续很多问题。这个问题在分布式系统中很常见,所谓的幂等性,就是说一个接口,多次发起同一个请求,你这个请求得保证结果是准确的,比如不能多扣款,不能多插入一条数据,不能将统计值多加了1,这就是幂等性。原创 2023-05-31 11:42:51 · 68 阅读 · 0 评论 -
Dubbo的服务治理,降级,重试
需要自动统计各个接口和服务之间的调用次数以及访问延时,而且要分成了两个级别,一个级别是接口力度,就是每个服务的每个接口每天被调用多少次,TP50,TP90,TP99三个档次。dubbo做的分布式系统中,对各个服务之间的调用自动记录下来,然后自动将各个服务之间的依赖关系和调用链路生成出来,做成一张图。一个大型的分布式系统,分布式系统是由大量的服务组成,调用链路实际上是多个服务之间的调用记录。服务分层(避免循环依赖),调用链路失败监控和报警,服务鉴权,每个服务的可用性的监控。原创 2023-05-31 11:15:22 · 49 阅读 · 0 评论 -
Dubbo的负载均衡,高可用,动态代理
一致性hash算法,相同参数的请求一定分发到一个provider上去,provider挂掉的时候,会基于虚拟节点均匀分配剩余的流量,抖动不会太大,如果你需要的不是随机负载均衡,是要一类请求都到一个节点,那就走这个一致性hash策略。还有roundrobin loadbalance,这个的话默认就是均匀得将流量达到各个机器上,但是如果各个机器的性能不一样,容易导致性能差的机器负载过高,所以此时需要调整权重,让性能差的机器承载权重小一些,流量少一些。失败自动切换,自动重试其他机器,默认就是这个,常见于读操作。原创 2023-05-31 10:20:21 · 122 阅读 · 0 评论 -
Dubbo支持的通讯协议以及序列化协议
Dubbo是基于不同的通讯协议,支持hessian,java二进制序列化,json,soap文本序列化多种序列化协议,但是hessian是其默认的序列化协议。Dubbo本身是支持不同的通讯协议的,主要有以下几种。原创 2023-05-31 09:33:10 · 333 阅读 · 0 评论 -
dubbo的工作原理
可以的,因为刚开始初始化的时候,消费者会将提供者的地址等信息拉取到本地,所以注册中心挂了可以继续通信。cluster层,集群层,封装多个服务提供这的路由以及负载均衡,将多个实例组合成一个服务。层,服务代理层,透明生成客户端的stub和服务端的skeleton。monitor层,监控层,对RPC接口的调用次数和调用时间进行监控。exchange层,信息交换层, 封装请求响应模式,同步转异步。Service层,接口层, 给服务提供者和消费者来实现的。registry层,服务注册层,负责服务的注册与发现。原创 2023-05-28 11:10:16 · 46 阅读 · 0 评论