微服务怎么选,读了这篇文章,毫无压力( 二 )


protocol:用来进行 RPC 服务的描述和 RPC 服务的配置管理,这一层还可以添加不同功能的 filter 用来完成统计、并发限制等功能 。
serialize:将 RPC 请求中的参数、结果等对象进行序列化与反序列化,即进行对象与字节流的互相转换,默认使用对 Java 更友好的 Hessian 2 进行序列化 。
transport:用来进行远程通信,默认使用 Netty NIO 的 TCP 长链接方式 。
cluster:Client 端使用的模块,cluster 是一组可用的 Server 在逻辑上的封装,包含若干可以提供 RPC 服务的 Server,实际请求时会根据不同的高可用与负载均衡策略选择一个可用的 Server 发起远程调用 。
Spring CloudSpring Cloud 是为了解决微服务架构中服务治理而提供的一系列功能的开发框架,它是完全基于 Spring Boot 进行开发的,Spring Cloud 利用 Spring Boot 特性整合了开源行业中优秀的组件,整体对外提供了一套在微服务架构中服务治理的解决方案 。它的架构图可以用下面这张图来描述 。

微服务怎么选,读了这篇文章,毫无压力

文章插图
 
以下为Spring Cloud的核心功能:
  • 分布式/版本化配置
  • 服务注册和发现
  • 路由
  • 服务和服务之间的调用
  • 负载均衡
  • 断路器
  • 分布式消息传递
Spring Cloud对于中小型互联网公司来说是一种福音,因为这类公司往往没有实力或者没有足够的资金投入去开发自己的分布式系统基础设施,使用Spring Cloud一站式解决方案能在从容应对业务发展的同时大大减少开发成本 。
下图是RPC框架详细的比较
微服务怎么选,读了这篇文章,毫无压力

文章插图
 
如何选择?一家A轮融资的公司 原来架构是net,想换java架构 。公司没有强大的研发实力,公司主要是to B业务,对并发要求不高,那可以试试Spring Cloud 架构,Spring Cloud 不仅提供了基本的 RPC 框架功能,还提供了服务注册组件、配置中心组件、负载均衡组件、断路器组件、分布式消息追踪组件等一系列组件,被技术圈的人称之为“Spring Cloud 全家桶”,而 Dubbo、Motan 基本上只提供了最基础的 RPC 框架的功能,其他微服务组件都需要自己去实现,对于这类研发能力弱的团队,SpringCloud 无疑是最合适的,减少了研发成本,社区热度高,相关的教程文档很多,减少了入门成本;
再比如这家公司不准备切换Java框架还是继续使用net架构,有一定的研发能力,对并发要求很高,那gRPC无疑是最适合的,跨语言支持,高性能;
没有完美的解决方案,只有最合适的




推荐阅读