Spring Cloud 搭建分布式+集群

SpringCloud 就是一套工具,帮助大家很容易地搭建出这么一个 集群和分布式的架子出来。逐步引入服务注册中心eureka 、客户端ribbon、feigh ,断路保护Hystrix、配置服务,消息总线等一些概念和用法。

微服务概念

要说springcloud 分布式之前,先引入微服务概念。
微服务简单说,一个 springboot 就是一个 微服务,并且这个 springboot 做的事情很单纯。 比如 project-service 这个项目,就可以拆成两个微服务,分别是 数据微服务,和视图微服务,其实就是俩 springboot, 只是各自做的事情都更单纯~、
project-service
数据微服务 视图微服务

服务注册

那么有了微服务,就存在如何管理这个微服务,以及这两个微服务之间如何通信的问题,所以就要引入一个 微服务注册中心概念,这个微服务注册中心在 springcloud 里就叫做 eureka server, 通过它把就可以把微服务注册起来,以供将来调用。

服务访问

在业务逻辑上, 视图微服务 需要 数据微服务 的数据,所以就存在一个微服务访问另一个微服务的需要。
而这俩微服务已经被注册中心管理起来了,所以 视图微服务 就可以通过 注册中心定位并访问 数据微服务了。
在后续教程里,会演示微服务的相互调用。

分布式概念

分布式简单说,原来是在一个 springboot里就完成的事情,现在分布在多个 springboot里做,这就是初步具备 分布式雏形了。
那么分布式有什么好处呢?

  1. 如果我要更新数据微服务,视图微服务是不受影响的
  2. 可以让不同的团队开发不同的微服务,他们之间只要约定好接口,彼此之间是低耦合的。
  3. 如果视图微服务挂了,数据微服务依然可以继续使用
    等等

集群

原来数据微服务只有这一个springboot, 现在做同样数据微服务的,有两个 springboot, 他们提供的功能一模一样,只是端口不一样,这样就形成了集群。
那么集群有什么好处呢?

  1. 比起一个 springboot, 两个springboot 可以分别部署在两个不同的机器上,那么理论上来说,能够承受的负载就是 x 2. 这样系统就具备通过横向扩展而提高性能的机制。
  2. 如果 8001 挂了,还有 8002 继续提供微服务,这就叫做高可用 。

分布式和集群周边服务

以上是很简单的分布式结构,围绕这个结构,我们有时候还需要做如下事情:

  1. 哪些微服务是如何彼此调用的? sleuth 服务链路追踪
  2. 如何在微服务间共享配置信息?配置服务 Config Server
  3. 如何让配置信息在多个微服务之间自动刷新? RabbitMQ 总线 Bus
  4. 如果数据微服务集群都不能使用了, 视图微服务如何去处理? 断路器 Hystrix
  5. 视图微服务的断路器什么时候开启了?什么时候关闭了? 断路器监控 Hystrix Dashboard
  6. 如果视图微服务本身是个集群,那么如何进行对他们进行聚合监控? 断路器聚合监控 Turbine Hystrix Dashboard
  7. 如何不暴露微服务名称,并提供服务? Zuul 网关
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值