一、什么是服务注册中心
服务注册中心是服务实现服务化管理的核心组件,类似于目录服务的作用,主要用来存储服务信息,譬如提供者url 串、路由信息等。服务注册中心是SOA 架构中最基础的设施之一。
1 服务注册中心的作用
服务注册与发现对于微服务系统来说非常重要。有了服务发现与注册,你就不需要整天改服务调用的配置文件了,你只需要使用服务的标识符,就可以访问到服务。
1.1,服务的注册
当一个客户端注册到Eureka,它提供关于自己的元数据,Eureka通过一个服务从各个实例接收信息。如果接收失败超过配置的时间,实例将会正常从注册里面移除
1.2,服务的发现
服务发现是微服务基础架构的关键原则之一。试图着手配置每个客户端或某种格式的约定可以说是非常困难的和非常脆弱的。Eureka是Netflix服务发现的一种服务和客户端。这种服务是可以被高可用性配置的和部署,并且在注册的服务当中,每个服务的状态可以互相复制给彼此。
2 常见的注册中心有哪些
2.1,Dubbo 的注册中心Zookeeper
2.2,Sringcloud 的注册中心Eureka
3 服务注册中心解决了什么问题
3.1. 服务管理
3.2. 服务的依赖关系管理
4 什么是Eureka 注册中心
Eureka 是Netflix 开发的服务发现组件,本身是一个基于REST 的服务。Spring Cloud将它集成在其子项目spring-cloud-netflix 中,以实现Spring Cloud 的服务注册于发现,同时还提供了负载均衡、故障转移等能力。
5 Eureka 注册中心三种角色
5.1Eureka Server
通过Register、Get、Renew 等接口提供服务的注册和发现。
5.2Application Service (Service Provider)
服务提供方
把自身的服务实例注册到Eureka Server 中
5.3Application Client (Service Consumer)
服务调用方
通过Eureka Server 获取服务列表,消费服务。
二、搭建服务注册中心服务
1.导出项目
打开spring.io网页https://start.spring.io/,创建springboot项目,选择相关的依赖包:web、eureka server,导出项目
我这里将导出的项目做了重命名的修改,以符合一贯的风格,结构如下
2.pom.xml
查看下pom文件,可以看到Eureka服务的依赖如下。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
3.application.properties
注意第4行和第6行参数必须设置,因为现在做的是单点服务,而Eureka本身是一个基于REST 的服务,如果设置为true,会将自身注册,这样启动时就会报错了。
4.启动文件
@EnableEurekaServer
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
主要添加@EnableEurekaServer 注解。启动后访问地址http://localhost:8761/
注册中心启动成功,但是还没有服务,如上图所示。
三、创建并注册服务提供者 Eureka Client
将上面的Eureka-server 项目复制一份重命名为eureka-client,项目结构如下
接下来只要将相应的文件修改成client即可。
1. 修改pom.xml
将Eureka-server依赖改为eureka-client。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2.修改application.properties
设置服务注册中心地址,指向刚才创建的注册中心。
3.修改启动文件
将注解@EnableEurekaServer 改成@EnableEurekaClient
启动项目后,重新刷新注册中心页面,即可发现相应的服务eureka-client,如下图