目录

一、什么是Spring Cloud

二、SpringCloud解决方案

三、Netflix停更替代方案

 四、微服务的设计和拆分原则

4.1 AKF扩展拆分

4.2 前后端分离原则

4.3 无状态服务

4.4 Restful通信风格


一、什么是Spring Cloud

 

spring cloud fegin示例_Cloud

        SpringCloud是一系列框架的有序集合,利用了Springboot开发的便利性,简化了分布式系统的基础性开发,提供了一些可以让开发者快速构建微服务应用的工具,比如配置中心、服务发现注册、熔断、消息总线、负载均衡、智能路由等,这些服务可以在任何分布式环境下很好的工作。 
 

 

spring cloud fegin示例_微服务_02

Spring Cloud Confg:配置中心
Spring Cloud Bus:类似消息总线的一个中间件
Spring Cloud for Cloud Foundry:基于Cloud Foundry部署应用程序的中间服务
Spring Cloud Cluster: 类似于选举算法的中间件
Spring Cloud Consul:服务发现中间件
Spring Cloud Security:自身安全组件
Spring Cloud Sleuth:链路追踪组件 
Spring Cloud Data Flow:数据流组件
Spring Cloud Connectors:连接器
Spring Cloud CLI:自身命令行控制面板
Spring Cloud GateWay:网关服务
Spring Cloud Stream:使得Spring Cloud与Kafuka、RabbitMQ中间件紧密结合 

spring cloud fegin示例_微服务_03

二、SpringCloud解决方案

SpringCloud解决方案之Netflix

SpringCloud解决方案之Alibaba

服务注册与发现:Eureka

服务注册与发现:Nacos

熔断限流:hvstrix

熔断限流:Sentienl

REST Client:Feign

分布式消息中间件:RocketMQ

客户端负载均衡:Ribon

分布式事务中间件:Seata

微服务网关:zuul

RPC服务框架:Dubbo

三、Netflix停更替代方案

 

spring cloud fegin示例_spring_04

 

spring cloud fegin示例_java_05

 四、微服务的设计和拆分原则

4.1 AKF扩展拆分

AKF扩展立方体:

spring cloud fegin示例_java_06

微服务拆分要点:

  1. 低耦合、高内聚:一个服务完成一个独立的功能。
  2. 按团队结构,小规模团队维护,快速迭代。

微服务拆分方式,按照不同的服务功能进行拆分:

Y轴(按照不同的服务功能进行拆分): 
Z轴(按照不同的数据分区进行拆分,如健康码北京服务、广东服务):

spring cloud fegin示例_spring_07

 X轴(水平复制,绝对平等地复制服务与数据,解决容量和可用性的问题  <集群加负载均衡>): 

 

spring cloud fegin示例_微服务_08

4.2 前后端分离原则

        后端仅返回前端所需数据,不需渲染前端页面和控制前端效果,而一般用node.Js实现前端渲染层。 完全分离:Vue、Anqular、React。

 

spring cloud fegin示例_Cloud_09

4.3 无状态服务

        实例X、Y把有状态的数据共享到Redis,可动态增加A的节点。

spring cloud fegin示例_spring cloud_10

4.4 Restful通信风格

spring cloud fegin示例_spring cloud_11