Eureka Server没有后端存储,所有的注册信息全部放在内存中。
默认情况下,一个Eureka Server也是一个Eureka Client。也需要配置一个注册中心url,去找到对端的注册中心。以实现高可用。
单注册中心模式:
就像上一篇的示例。
server: port: 8761 eureka: instance: hostname: localhost client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
注意,这种模式下,我们会把client配置中的registerWithEureka和fetchRegistry置为false
因为不存在另一个注册中心。serviceUrl设置的是自己。不能自己向自己注册。
集群模式
模拟3节点组建的集群
如图,新建3个配置文件,分别配置3个节点的属性。
一定是application-xxx.yml。这是springboot中约定的。
内容类似,对应修改即可
server: port: 8761 spring: profiles: peer1 eureka: instance: hostname: peer1 client: serviceUrl: defaultZone: http://peer2:8762/eureka/,http://peer3:8763/eureka/
因为我是在一台机器上操作,所以需要改下机器的域名。
我是win7,修改c:\windows\system32\drivers\etc\hosts文件
加上
127.0.0.1 peer1 127.0.0.1 peer2 127.0.0.1 peer3
启动,不需要打三个包去启动。
可以通过在idea中修改启动参数,启动多个
启动参数添加 --spring.profiles.active=peer1
注意右上角的单例选项要勾掉
启动好之后,
在peer1的控制台,可以看到他的备节点是peer2和peer3。同理可以看看peer2和3的
再启动2个服务
同样的操作,改造下配置文件
配置代码:
spring: application: name: service-hello eureka: client: serviceUrl: defaultZone: http://peer1:8761/eureka/,http://peer2:8762/eureka/,http://peer3:8763/eureka/ server: port: 8771
同样启动两个服务
现在的架构:
本文暂时没有评论,来添加一个吧(●'◡'●)