Eureka服务治理 - 高可用集群环境搭建
可以通过几个问题来描述高可用:微服务的核心是什么?核心在于服务治理,也就是注册中心。如果注册中心出现故障宕机了,应该怎么做?搭建注册中心集群,并且至少两台以上。其实Eureka高可用实际上就是把自己作为服务注册到其他注册中心去,这样就可以形成一组相互注册的服务注册中心,实现“你中有我,我中有你”,从而达到高可用效果。那么这里模拟一下集群,创建两个注册中心服务:eureka-90...
可以通过几个问题来描述高可用:
微服务的核心是什么?
核心在于服务治理,也就是注册中心。
如果注册中心出现故障宕机了,应该怎么做?
搭建注册中心集群,并且至少两台以上。
其实Eureka高可用实际上就是把自己作为服务注册到其他注册中心去,这样就可以形成一组相互注册的服务注册中心,实现“你中有我,我中有你”,从而达到高可用效果。
那么这里模拟一下集群,创建两个注册中心服务:eureka-9010、eureka-9020:
eureka9010 yml配置文件:
server:
port: 9010
spring:
application:
name: app-eureka
eureka:
instance:
hostname: 127.0.0.1
client:
register-with-eureka: true
fetch-registry: true
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:9020/eureka/
eureka9020 yml配置文件:
server:
port: 9020
spring:
application:
name: app-eureka
eureka:
instance:
hostname: 127.0.0.1
client:
register-with-eureka: true
fetch-registry: true
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:9010/eureka/
这里其实就是做了相互注册的动作,把9010注册到9020,9020注册到9010,但是这里需要注意的是, 做集群的话,服务名称一定要相同。启动9010和9020,效果图:
然后再创建两个客户端服务进行注册:app-user、app-order
app-user yml配置文件:
server:
port: 8010
spring:
application:
name: app-user
eureka:
instance:
hostname: 127.0.0.1
client:
register-with-eureka: true
fetch-registry: true
serviceUrl:
#这里需要注册到所有的Eureka注册中心
defaultZone: http://${eureka.instance.hostname}:9010/eureka/,http://${eureka.instance.hostname}:9020/eureka/
app-order yml配置文件:
server:
port: 8020
spring:
application:
name: app-order
eureka:
instance:
hostname: 127.0.0.1
client:
register-with-eureka: true
fetch-registry: true
serviceUrl:
#这里需要注册到所有的Eureka注册中心
defaultZone: http://${eureka.instance.hostname}:9010/eureka/,http://${eureka.instance.hostname}:9020/eureka/
启动app-user和app-order服务:
可以看到服务被注册到9020上了,为什么9010上没有?这是因为在注册过程中,注册中心只有一台主机,只有主机才有注册的信息, 其他都是备用机;当主机宕机之后,注册信息就会被转移到备机上。
那现在把9020服务关掉,看下效果:
9020无法访问
注册信息全部都转移到了9010上
更多推荐
所有评论(0)