一、eureka服务端
1.application.yml
server:
port: 8761 # 指定该Eureka实例的端口
spring:
application:
name: server-discovery # 项目名称尽量用小写
profiles:
active: 10.83.3.1
eureka:
instance:
hostname: ${spring.profiles.active} # 指定该Eureka实例的主机名
client:
register-with-eureka: true
fetch-registry: true
serviceUrl: # 注:defaultZone配多个,以","隔开
defaultZone: http://10.83.3.1:8761/eureka/,http://10.83.3.2:8762/eureka/,http://10.83.3.3:8763/eureka/
2.构建项目
mvn clean package docker:build
3.启动:
docker run -p 8761:8761 --net xms --ip 10.83.3.1 server-discovery --server.port=8761 --spring.profiles.active=10.83.3.1
docker run -p 8762:8762 --net xms --ip 10.83.3.2 server-discovery --server.port=8762 --spring.profiles.active=10.83.3.2
二、eureka客户端
1.
application.yml
eureka:
client:
serviceUrl:
#defaultZone:http://10.83.3.1:8761/eureka/,http://10.83.3.2:8762/eureka/,http://10.83.3.3:8763/eureka/
enabled: true # 默认false,设为true表示使用注册中心中的configserver配置而不自己配置的uri
serviceId: server-discovery
1)方式一:使用url方式,指定相应的注册中心,多个以","隔开
a.缺点1:烦索不方便,易错
b.缺点2:当注册中心个数有改动时,也要改动
格式: #defaultZone: http://server-discovery1:8761/eureka/,http://server-discovery2:8762/eureka/
2)方式二:使用serviceId方式,设置enabled为true后,可以用serviceId 代替url
a.这样依赖的服务,如注册中心,多一个注册中心或少一个,对注册的服务没有依赖性的改动
b.只要serviceId名字相同的服务,都会被注册到这个serviceId,其他叫同名的serviceId也会被注册该服务
格式:enabled: true # 默认false,设为true表示使用注册中心中的configserver配置而不自己配置configserver的uri
serviceId: server-discovery
三、eureka集群
1.一般建议使用2-3台
2.defaultZone参数配置所有的eureka,形式互相连通模式。
注:若不配本身的,即只配其他的eureka,则只是单向模式
defaultZone:
http://10.83.3.1:8761/eureka/,http://10.83.3.2:8762/eureka/,http://10.83.3.3:8763/eureka/
3.其他要注册到eureka的服务配置:
defaultZone:
http://10.83.3.1:8761/eureka/,http://10.83.3.2:8762/eureka/,http://10.83.3.3:8763/eureka/
4.集群模式:
1)eureka岩机,只要有1台eureka存活,不会影响任何业务
2)eureka全部岩机,不会影响目前的业务运行,但要热更新、热部署、部署新服务到eureka等都无法进行。
注:因为eureka全部岩机,各微服务会存一份最后更新的配置信息(各微服务正常也会定时请求eureka更新配置(时间可设)),只要微服务没挂,eureka岩机也不影响目前使用的业务。