【每日一知】SpringCloud 和 Eureka (2021.02.21)
==SpringCloud ==
大项目的完成往往需要分解成多个小模块。这些模块是独立成一个子系统的(不同主机)。
拆分出多个模块以后,就会出现各种各样的问题,而SpringCloud提供了 一整套的解决方案
- SpringCloud的基础功能:
- 服务治理: Spring Cloud Eureka
- 客户端负载均衡: Spring Cloud Ribbon
- 服务容错保护: Spring Cloud Hystrix
- 声明式服务调用: Spring Cloud Feign
- API网关服务:Spring Cloud Zuul
- 分布式配置中心: Spring Cloud Config
- SpringCloud的高级功能:
- 消息总线: Spring Cloud Bus
- 消息驱动的微服务: Spring Cloud Stream
- 分布式服务跟踪: Spring Cloud Sleuth
Eureka
-
子系统与子系统之间不是在同一个环境下,那就需要远程调用。
既然是远程调用,就必须知道ip地址,我们可能有以下的场景:- A服务需要调用B服务
- A服务调用B服务,B服务调用C服务,C服务调用D服务
- D服务调用B服务,B服务调用C服务
- …
-
万一,我们B服务的IP地址变了,想想会出现什么问题:
A服务,D服务(等等)需要 手动更新 B服务的地址
在服务多的情况下,手动来维护这些静态配置就是噩梦!
-
Eureka是这样解决上面所说的情况的:
-
创建一个E服务,将A、B、C、D四个服务的信息都注册到E服务上,E服务维护这些已经注册进来的信息
-
A、B、C、D四个服务都可以拿到Eureka(服务E)那份注册清单。
-
A、B、C、D四个服务互相调用不再通过具体的IP地址,而是通过服务名来调用!
-
拿到注册清单—>注册清单上有服务名—>自然就能够拿到服务具体的位置了(IP)。
扫描二维码关注公众号,回复: 12497023 查看本文章
-
转自知乎:https://zhuanlan.zhihu.com/p/43023436
作者:Java3y