之前写了一篇是spring-cloud中配置Eureka的服务注册与发现,不会的小伙伴去我博客看
之前配置的是单机版Eureka,这个时候Eureka服务挂了的话,那么我们的服务提供者跟服务消费者岂不是都废了?那这个程序还有存在的意义么?
那么今天咱们就讲一讲如何解决这个问题。相信大家都知道,这个问题是我们提供高可用服务必须经历的问题。解决方案就是加集群,那么我们来看一下Eureka怎么实现集群吧。
一、Eureka的集群配置
1、首先,我们需要集群,需要配置两个以上的服务中心,具体如何配置,查看我上篇博客,
2、以两个集群为例,我们需要在各自的yml文件中的
#端口为6001的一个服务中心 server: port: 6001 eureka: instance: hostname: Eureka6001 client: register-with-eureka: false #服务注册 false 自己不注册到服务中心 fetchRegistry: false #服务发现 表示自己端就是注册中心 我的职责就是维护服务实例 false 自己不获取注册信息 service-url: #集群的情况下,服务端之间要互相注册,指向对方 defaultZone: http://Eureka7001.com:7001/eureka/ #http://Eureka7001.com:7001/eureka/指向另外一个端口为7001的服务中心
#端口为7001的一个服务中心
server:
port: 7001
eureka:
instance:
hostname: Eureka7001 #服务器域名
client:
register-with-eureka: false #服务注册 false 自己不注册到服务中心
fetchRegistry: false #服务发现 表示自己端就是注册中心 我的职责就是维护服务实例 false 自己不获取注册信息
service-url: #集群的情况下,服务端之间要互相注册,指向对方
defaultZone: http://Eureka6001.com:6001/eureka/
#http://Eureka6001.com:6001/eureka/指向另外一个端口为6001的服务中心
#http://Eureka7001.com:7001/eureka/指向另外一个端口为7001的服务中心
上面的标红的是因为,当我们需要集群Eureka服务中心后,我们需要通过域名去访问各服务中心新的监控页面,此时我们要在在电脑上更改一下ip域名
在C:WindowsSystem32driversetc中的host文件底部加上
127.0.0.1 Eureka6001.com 分别对应两个Eureka的instance的hostname,
127.0.0.1 Eureka7001.com
3、服务中心新配置好后,只需要在客户端的yml文件中
4、访问对应域名和端口号进行查看
注意:目前的springcloud的版本对应的eureka的版本发生了变化,如果使用了
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.RELEASE</version> 这个版本对应的eureka-server和下面对应的版本名称不同
<!-- <version>Dalston.SR1</version> 版本出现不同名称-->
<type>pom</type>
<scope>import</scope>
</dependency>
Hoxton.RELEASE对应的是
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
否则会报依赖找不到
自己随手做了一下笔记,希望能帮到大家