一 注册以及application.yml修改
实际生产过程中,如果Eureka server挂掉,需要搭建集群模式
实现方案:Eureka server几个互相注册
去Eureka server项目
EurekaApplication->Edit Configuration->SpringBoot->复制按钮
修改名字为EurekaApplication1何EurekaApplication2通过端口来区分
EureApplication1->Environment->VM options: -Dserver.port=8761
EureApplication2->Environment->VM options: -Dserver.port=8762
Eureka1的注册地址是Eureka2
Eureka2的注册地址是Eureka1
application.yml配置文件如下内容,注释掉server和port
eureka:
client:
service-url:
defaultZone: http://localhost:8762/eureka/
register-with-eureka: false
server:
enable-self-preservation: false
spring:
application:
name: eureka
#server:
# port: 8761
management:
server:
servlet:
context-path: /
然后启动第一个EurekaApplication1之后
defaultZone: http://localhost:8761/eureka/
然后启动第一个EurekaApplication2之后
看到已经相互注册之间互相通信
挂掉EurekaApplication 1 之后
重启eurekapplication没有内容
http://localhost:8762/
http://localhost:8762/
但是我们希望都能够注册,因此client需要向两个EurekaApplication都注册
需要在Eurekaclient上都注册
二 多个服务器注册
如果是三个的话,Eureka服务器需要两两注册
EureApplication1->Environment->VM options: -Dserver.port=8761
EureApplication2->Environment->VM options: -Dserver.port=8762
EureApplication3->Environment->VM options: -Dserver.port=8763
eurekaServer1-> defaultZone:http://localhost:8762/eureka/,http://localhost:8763/eureka/
eurekaServer2-> defaultZone:http://localhost:8761/eureka/,http://localhost:8763/eureka/
eurekaServer3-> defaultZone:http://localhost:8762/eureka/,http://localhost:8763/eureka/
client端需要配置上三个
defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/,http://localhost:8763/eureka/
三 总结
1代码前面加入两个注解
@EnableEurekaServer,启动server,启动服务注册,有心跳检测,检测不到会踢掉client
@EnableEurekaClient, 启动client
2Eureka的高可用,生产上建议至少两台以上
3分布式系统中,服务注册中心是最重要的基础部分
四 微服务发现的两种方式
服务发现的两种方式
客户端发现
。Eureka
服务端发现
。Nginx
。Zookeeper
。Kubernetes