注册中心
服务中心又称注册中心,管理各种服务功能包括服务的注册、发现、熔断、负载、降级等,比如dubbo admin后台的各种功能。
Eureka的基本架构,由3个角色组成:
1、Eureka Server
- 提供服务注册和发现
2、Service Provider
- 服务提供方
- 将自身服务注册到Eureka,从而使服务消费方能够找到
3、Service Consumer
- 服务消费方
- 从Eureka获取注册服务列表,从而能够消费服务
简单实例
(1)pom添加入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
(2)application.properties
添加以下配置
spring.application.name=spring-cloud-eureka
#
server.port=8000
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
#
eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
注意:
eureka.client.register-with-eureka
:表示是否将自己注册到Eureka Server,默认为true。eureka.client.fetch-registry
:表示是否从Eureka Server获取注册信息,默认为true。eureka.client.serviceUrl.defaultZone
:设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。默认是http://localhost:8761/eureka ;多个地址可使用 , 分隔。
(3)添加启动代码中添加@EnableEurekaServer
注解
(4)验证,访问http://localhost:8000/,如下图即成功
集群
注册中心这么关键的服务,如果是单点话,遇到故障就是毁灭性的。在一个分布式系统中,服务注册中心是最重要的基础部分,理应随时处于可以提供服务的状态。为了维持其可用性,使用集群是很好的解决方案。Eureka通过互相注册的方式来实现高可用的部署,所以我们只需要将Eureke Server配置其他可用的serviceUrl就能实现高可用部署。
实例
(1)创建application-peer1.properties
spring.application.name=spring-cloud-eureka
server.port=8000
#eureka.client.register-with-eureka=false
#eureka.client.fetch-registry=false
eureka.instance.hostname=peer1
eureka.client.serviceUrl.defaultZone=http://peer2:8001/eureka/,http://peer3:8002/eureka/
如上,依次创建application-peer2.properties,application-peer3.properties并修改对应配置
(2)在host中添加
127.0.0.1 peer1
127.0.0.1 peer2
127.0.0.1 peer3
(3)分别启动
java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer3
(4)访问http://peer1:8000/、http://peer1:8001/、http://peer1:8002/,如下图即实现注册中心集群