Eureka集群搭建
Eureka搭建集群目的是实现Eureka的高可用。eureka的目的是服务的提供者的注册和消费者的发现。
如果就一个eureka,当eureka由于不可逆原因宕机了。那么就意味者项目只能等修复以后才能使用,而我们如果使用集群。多个Eureka服务同时运行。那么就可以实现一台服务宕机其他服务依旧可用。这很重要。
使用方式:
我们以两个eureka为例。
在项目中创建两个子项目,项目中导入相同的Eureka依赖
pom:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-eureka-server</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
</dependencies>
依赖导入后配置文件:
springcloud-eureka-7001(项目名(不需一样,但要明确))
server:
port: 7001
eureka:
instance:
hostname: eureka7001.com
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://eureka7002.com:7002/eureka
server:
port: 7002
eureka:
instance:
hostname: eureka7002.com
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://eureka7001.com:7001/eureka
server.port 服务端口号
eureka:该eureka的名称地址
注意这个地址不能一样
client: register-with-eureka: false fetch-registry: false让eureka不注册自己,多余。
service-url:
defaultZone配置注册的地址。
配置后启动集群就搭建成功。启动注解@EnableEurekaServer
加到启动类中。
创建提供者放到集群中。创建方式和单个Eureka时候没区别。唯一的区别在于YML文件中的
service-url:
defaultZone: http://eureka7001.com:7001/eureka,
http://eureka7002.com:7002/eureka,
注意:这个地方其实写一个就可以,所有的Eureka都会被注册这个提供者。并且注册测试只有一次。因为Eureka集群间是联通的,所以注册一次就可以所有集群都知道。而这里写两个的原因是集群的高可用。当7001的eureka服务死掉了的话,项目会自动去找7002。不会出现项目死机的问题。
红色为eureka的其他服务
蓝色为注册的提供者