3. 注册中心
**注册中心(Registry Center)**是指在分布式系统中,用于管理服务提供者和服务消费者之间关系的组件。注册中心通常以中间件或框架的形式存在,用于维护服务提供者和服务消费者之间的映射关系,以及实现服务发现和负载均衡等功能。
在注册中心中,服务提供者将其提供的服务注册到中心,以便服务消费者能够发现并使用这些服务。服务消费者通过查询注册中心,获取服务提供者的信息,并选择一个可用的服务提供者来执行服务请求。
常见的注册中心包括ZooKeeper、Consul、Eureka,Nacos等。推荐使用Nacos
3.1 Eureka注册中心
官网:https://github.com/Netflix/eureka
3.1.1 Eureka服务搭建
这里我们的Eureka是一个单独服务,搭建Eureka时它会将自己这个服务也注册上去
- 导包
<dependency>
<groupId>org.springframework.cloud</groupId>
<!--区别于服务注册的依赖client-->
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
- 编写启动类
给eureka-server服务编写一个启动类,一定要添加一个@EnableEurekaServer注解,开启eureka的注册中心功能:
package com.zhaoxi.eureka;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer //开启Eureka服务
@SpringBootApplication
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class);
}
}
- 编写配置文件
编写一个application.yml文件,内容如下:
server:
port: 10086
spring:
application:
name: eurekaserver #eureka 服务名称
eureka:
client:
service-url: #配置eureka地址
defaultZone: http://127.0.0.1:10086/eureka
- 启动服务
启动微服务,然后在浏览器访问:http://127.0.0.1:10086
3.1.2 Eureka服务注册
服务注册就是将服务添加到Eureka,受Eureka管理,服务发现是使用注册后的服务
对需要受Eureka管理的服务进行如下操作
- 导包
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
- 配置
spring:
application:
name: userservice #userserver模块服务名称
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:10086/eureka #Eureka地址,就是搭建时的地址
3.1.3 实现负载均衡
对需要做负载均衡的Bean添加@LoadBalanced注解,如:远程调用一节中的RestTemplate,并没有实现负载均衡,所以需要在这个Bean添加一个@LoadBalanced注解:
- @LoadBalanced