服务发现Nacos

313 阅读1分钟

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

image.png

image.png

基于Feign+Ribbon+Nacos的服务调用

  • Feign是基于HTTP的一个封装

  • Ribbon进行负载均衡

    image.png

基于Dubbo+Nacos的服务调用

服务注册

  • ServiceRegistry spring-cloud-common
  • ServiceRegistry
  • NacosServiceRegistry
  • Spring-cloud-commons的spring.factories
    • org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationAutoConfiguration