Spring Cloud
- SOA和微服务的区别,soa比较重在解决重入和信息孤岛的问题,微服务重在解耦各个服务
- 包含很多组件 解决微服务的问题
服务发现的两种方式
- 客户端服务发现,由客户端提供负载均衡算法
- 优点:客户端知道所有可用服务的实际地址,可以比较方便的实现负载均衡
- 缺点;耦合性很强,针对不同语言,每个服务的客户端都得实现一套服务发现的功能
- 服务端的服务发现,由服务端提供负载均衡算法
- 优点;服务发现的逻辑对客户端是不透明,客户端只要发送请求就可以了
- 缺点;必须要关心负载均衡器的高可用性
Nacos架构图(主要是两个功能,配置,注册和发现)
- Provider APP
- 服务的提供者
- Consumer APP
- 服务的消费者
- Name
- 通过IP或DNS实现Nacos高可用服务路由
- Nacos Server
- Open API:功能的访问入口。
- Config Service:配置服务模块。
- Naming Service:名字服务模块,提供实体的一个映射关系。
- Consistency Protocol:一致性协议,集群时保证数据同步。
- Nacos Console
- Nacos的控制台
Nacos Alibaba/Netfix
基于Feign+Ribbon+Nacos的服务调用
-
Feign是基于HTTP的一个封装
-
Ribbon进行负载均衡
基于Dubbo+Nacos的服务调用
服务注册
- ServiceRegistry spring-cloud-common
- ServiceRegistry
- NacosServiceRegistry
- Spring-cloud-commons的spring.factories
- org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationAutoConfiguration