文章目录
一些概念
通信协议:传输的格式都属于协议
服务路由:分布式服务上线时都是集群组网部署,集群中会存在某个服务的多实例,消费者如何从服务列表中选择合适的服务提供者进行调用,这就涉及到服务路由。分布式服务框架需要能够满足用户灵活的路由需求。
透明化路由:基于服务注册中心的服务订阅发布,消费者通过主动查询和被动通知的方式获取服务提供者的地址信息,而不再需要通过硬编码方式得到提供者的地址信息。只需要知道当前系统发布了那些服务,而不需要知道服务具体存在于什么位置,这就是透明化路由。
负载均衡
序列化与反序列化:Serializable,XML,Jackson,MessagePack,FastJson,Protocol Buffer,Thrift,Gson,Avro,Hessian 等。Serializable 是 Java 自带的序列化技术,无法跨平台,序列化和反序列化的速度相对较慢。
服务调用,关注:调用超时,请求异常,通讯连接的缓存,同步服务调用还是异步服务调用等等。并行服务调用,泛化调用。
高可用:服务检测、故障隔离、监控、压测、SOP 方案与演练
降级策略、服务降级:屏蔽降级(直接屏蔽对远程接口的请求,不发起对远程服务的调用,直接返回空结果、抛出指定异常、执行本地模拟接口实现等方式)和容错降级(对故障服务做业务放通,保证主流程不受影响。如请求超时、消息解码异常、系统拥塞保护异常, 服务提供方系统异常等)
限流策略。单机限流算法:令牌桶、漏桶、计数器算法。集群限流:缓存中间件
熔断策略。状态:Closed:熔断器关闭、Open: 失败次数/百分比达到阈值后,熔断器打开、Half-Open:熔断一定时间后,小流量尝试调用服务,直至恢复 Closed 状态。
对比
Dubbo 比 Spring Cloud 性能要高一些
因为 Dubbo 采用单一长连接和 NIO 异步通讯(保持连接/轮询处理),使用自定义报文的 TCP 协议,并且序列化使用定制 Hessia

本文详细探讨了微服务架构中的关键概念,包括服务路由、透明化路由、负载均衡和序列化。重点对比了Dubbo和Spring Cloud的性能、通讯方式和适用场景,指出Dubbo在小数据量大并发场景下的优势,而Spring Cloud的轻量化和标准化使其成为微服务的成熟解决方案。同时,介绍了两者在服务治理、限流策略和熔断机制方面的不同实现。
最低0.47元/天 解锁文章
446






