什么是分布式架构
分布式系统就是把多个计算机通过网络连接起来,然后协同工作,做到对内分解对外统一。
注册中心
在分布式架构中,注册中心是最核心的基础服务之一。主要涉及到三大角色:服务提供者、服务消费者、注册中心。 一个服务既可以是提供者也可以是消费者(服务B)
核心功能:
1、服务注册表 :服务注册表是注册中心的核心,它用来记录各个微服务的信息,例如微服务的名称、IP、端口等。服务注册表提供查询API和管理API,查询API用于查询可用的微服务实例,管理API用于服务的注册与注销。
2、服务注册与发现:服务注册是指微服务在启动时,将自己的信息注册到注册中心的过程。服务发现是指查询可用的微服务列表及网络地址的机制。
3、服务检查:注册中心使用一定的机制定时检测已注册的服务,如发现某实例长时间无法访问,就会从服务注册表移除该实例。
工作流程
各个微服务在启动时,将自己的网络地址等信息注册到注册中心,注册中心存储这些数据。然后各个微服务与注册中心使用一定机制(例如心跳)通信保障服务注册表上的服务存活。如果注册中心与某微服务长时间无法通信,就会注销该实例。服务消费者调用生产者时先从注册中心查询服务提供者的地址,然后通过该地址调用服务提供者的接口。
比如服务A调用服务B会先去注册中心获取服务B的地址127.0.0.1:8081然后通过地址调用服务B 服务B调用服务C同理.
常用的注册中心
spring cloud eureka、nacos、consul、zookeeper
负载均衡
在分布式系统中一个模块需要部署在至少三个服务器上从而保证该模块的稳定性。而负载均衡就是让消费者能够合理的调用生产者服务器。避免单一服务压力过大而崩溃。
核心功能:
负载均衡策略配置: 通过不同的配置来达到不同分配策略 常见的策略类型:轮循、加权轮循、最少连接数、固定权重等
重试机制: 根据配置的重试方式在调用失败后会重新分配地址继续重试。
工作流程
消费者在调用生产者时会先询问负载均衡服务器。负载均衡服务器通过负载均衡算法去获取这次调用的服务地址。然后返会给消费者,消费者再去调用对应的生产者。
常用的负载均衡
Nginx、Ribbon(eureka以集成Ribbon所以eureka也具备负载均衡功能)、Nacos
思考
eureka、Nacos作为注册中心也具备负载均衡能力,其工作原理是怎样的?
实操指南:
eureka
Nacos
to 文杰: 这周就先学这两个吧