SpringCloud-Netflix学习笔记05——Eureka模拟实现简单集群
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
前言
对于Eureka注册中心来说如果只有一个注册中心的话如果注册中心崩了那么里面的服务全部用不了系统就会崩溃。为了避免这个问题我们可以搭建一个注册中心的集群几个注册中心互相关联如果一个注册中心崩了另外的几个注册中心还能用服务还能用系统就不会崩溃。
准备
我们用一台电脑模拟集群为了直观上看起来更像集群所以我们要做一下域名映射。
找到 hosts
文件打开文件添加几个语句。
我们用三个Eureka注册中心搭建集群所以做三个域名映射。无论访问 eureka7001.com
还是另外两个都会跳转到 127.0.0.1
即 locahost
。保存退出。
集群搭建
1、搭建三个注册中心
我们先用IDEA搭建三个Eureka注册中心端口分别为7001、7002、7003。具体搭建方法看我的另一篇博客。此时这三个注册中心是没有任何关系的如图示
我们需要做的就是把这三个注册中心关联在一起组成一个集群。即7001要关联7002和70037002要关联7001和70037003要关联7001和7002如图示
2、修改配置文件
要实现上面的操作我们只需要修改配置文件即可。
7001配置文件修改
将 hostname
修改为我们自己的域名即 eureka7001.com
。
关联7002和7003将 defaultZone
修改为 http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
。
server:
port: 7001
# Eureka注册中心的配置 ,搭建集群情况下和7002以及7003搭建集群,关联7002和7003
eureka:
server:
enable-self-preservation: true # 开启自我保护模式
instance:
hostname: eureka7001.com # Eureka服务端的实例名称即注册中心的名称或者主机名
client:
register-with-eureka: false # 表示是否将自己往Eureka注册中心注册因为自己就是注册中心所以false
fetch-registry: false # 如果fetch-registry为false则表示自己是注册中心否则为客户端
service-url: # 监控页面可以在这个url中监控注册中心的服务
defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
7002注册中心和7003注册中心也是类似的我直接贴出代码。
7002配置文件修改
server:
port: 7002
# 单机情况下看7001的yml文件
# Eureka注册中心的配置,搭建集群情况下和7001以及7003搭建集群,关联7001和7003
eureka:
server:
enable-self-preservation: true # 开启自我保护模式
instance:
hostname: eureka7002.com # Eureka服务端的实例名称即注册中心的名称
client:
register-with-eureka: false # 表示是否将自己往Eureka注册中心注册因为自己就是注册中心所以false
fetch-registry: false # 如果fetch-registry为false则表示自己是注册中心否则为客户端
service-url: # 监控页面可以在这个url中监控注册中心的服务
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7003.com:7003/eureka/
7003配置文件修改
server:
port: 7003
# 单机情况下看7001的yml文件
# Eureka注册中心的配置,搭建集群情况下和7001以及7002搭建集群,关联7001和7002
eureka:
server:
enable-self-preservation: true # 开启自我保护模式
instance:
hostname: eureka7003.com # Eureka服务端的实例名称即注册中心的名称
client:
register-with-eureka: false # 表示是否将自己往Eureka注册中心注册因为自己就是注册中心所以false
fetch-registry: false # 如果fetch-registry为false则表示自己是注册中心否则为客户端
service-url: # 监控页面可以在这个url中监控注册中心的服务
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/
3、启动测试
分别启动三个注册中心访问7001管理页面即 http://eureka7001.com:7001/
我们可以发现7001已经关联了7002和7003如图
类似的访问7002和7003的管理页面也和这个类似。
服务提供者修改
我们已经从单一注册中心变成了一个由三个注册中心搭建的集群那么服务提供者应该怎么把服务注册到注册中心呢
其实很简单修改注册中心地址即可打开服务提供者的配置文件将 defaultZone
修改为 http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
即将服务同时注册到三个注册中心。启动服务进行测试如图
服务已经注册到了集群中7002和7003也类似。
总结
通过Eureka注册中心搭建集群只需要修改配置文件即可十分方便。如果一个节点注册中心突然崩了那么另外两个节点还正常运行能正常提供服务不会影响到系统的运行。