1.eureka高可用其实就是多个eureka注册中心相互注册构成集群。
eureka1注册到eureka2
eureka2注册到eureka1
先搭建eureka1和eureka2,搭建工程请查看此链接https://blog.csdn.net/weixin_42551369/article/details/103343471
2.修改配置文件
1)eureka1的配置文件:
port: 8102 #此端口为eureka1的端口
http://${eureka.instance.hostname}:8101/eureka/ #eureka2的地址
server:
port: 8102 #此端口为eureka1的端口
eureka:
instance:
hostname: 127.0.0.1
client:
#registerWithEureka实例是否在eureka服务器上注册自己的信息以供其他服务发现,默认为true(部署eureka高可用时需要设置为true)
registerWithEureka: true
#fetchRegistry此客户端是否获取eureka服务器注册表上的注册信息,默认为true(部署eureka高可用时需要设置为true)
fetchRegistry: true
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:8101/eureka/ #eureka2的地址
spring:
application:
name: eureka-server
2)eureka2的配置文件:
port: 8101 #此端口为eureka2的端口
http://${eureka.instance.hostname}:8102/eureka/ #eureka1的地址
server:
port: 8101 #此端口为eureka2的端口
eureka:
instance:
hostname: localhost
client:
#registerWithEureka实例是否在eureka服务器上注册自己的信息以供其他服务发现,默认为true(部署eureka高可用时需要设置为true)
registerWithEureka: true
#fetchRegistry此客户端是否获取eureka服务器注册表上的注册信息,默认为true(部署eureka高可用时需要设置为true)
fetchRegistry: true
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:8102/eureka/ #eureka1的地址
spring:
application:
name: eureka-server
3、启动eureka1 和eureka2
1)在启动第一个eureka时,会出现如下问题:
java.net.ConnectException: Connection refused: connect
Connection refused: connect
这里需要说明一下,这是没有问题的,因为第一个eureka(eureka1)启动,需要将自己注册到第二个eureka(eureka2)中,但此时第二个eureka(eureka2)还未启动,所以会此错误,当第二个eureka(eureka2)启动以后,此报错便会消失。
4.访问eureka的web界面
8102:可以看到8101和8102都注册到eureka中了
8101:可以看到8102和8101都注册到eureka中了
至此,eureka的高可用已经搭建完成~~~
这里再提一下三台eureka怎么搭建:
eureka1-----注册到-----》eureka2和eureka3
eureka2-----注册到-----》eureka1和eureka3
eureka3-----注册到-----》eureka2和eureka1
5、将服务注册到eureka集群
1)创建一个服务提供者
2)修改配置文件application.yml
注意:
需要将服务注册到所有的注册中心。
本文搭建的是两个注册中心,那么就需要将两个注册中心的地址都写上。
defaultZone: http://localhost:8102/eureka,http://127.0.0.1:8101/eureka/
###服务别名
spring:
application:
name: microservice-h3
eureka:
client:
service-url:
###当前服务注册到eureka
defaultZone: http://localhost:8102/eureka,http://127.0.0.1:8101/eureka/
#检索服务
fetch-registry: true
#将服务注册到eureka
register-with-eureka: true
#项目端口号
server:
port: 8001
3)启动服务,再次查看eureka1和eureka2
8102:服务注册到eureka中
8101:服务注册到eureka中
4)ribbon和feign在消费服务的时候,也需要在配置文件中将所有的eureka地址加入。