初识SpringBoot与Eureka (二)

596 阅读1分钟

高可用环境搭建

  • Eureka Server 高可用环境需要部署两个Eureka server,它们互相向对方注册。如果在本机启动两个Eureka需要注意两个Eureka Server的端口要设置不一样,这里我们部署一个Eureka Server工程,将端口可配置,制作两个Eureka Server启动脚本,启动不同的端口。
  • 如图:

1、在实际使用时Eureka Server至少部署两台服务器,实现高可用。

2、两台Eureka Server互相注册。

3、微服务需要连接两台Eureka Server注册,当其中一台Eureka死掉也不会影响服务的注册与发现。

4、微服务会定时向Eureka server发送心跳,报告自己的状态。

5、微服务从注册中心获取服务地址以RESTful方式发起远程调用。

配置如下:

  • 端口配置
server:
    port: ${PORT:50101} #服务端口
  • Eureka服务端的交互地址可配置
eureka:
    client:
        registerWithEureka: true #服务注册,是否将自己注册到Eureka服务中
        fetchRegistry: true #服务发现,是否从Eureka中获取注册信息
        serviceUrl: #Eureka客户端与Eureka服务端的交互地址,高可用状态配置对方的地址,单机状态配置自己(如果
不配置则默认本机8761端口)
        defaultZone: ${EUREKA_SERVER:http://eureka02:50102/eureka/}
    server:
        enable‐self‐preservation: false #是否开启自我保护模式
        eviction‐interval‐timer‐in‐ms: 60000 #服务注册表清理间隔(单位毫秒,默认是60*1000)
    instance:
        hostname: ${EUREKA_DOMAIN:eureka01}

Eureka1脚本配置

Eureka2脚本配

运行两个启动脚本,分别浏览:

http://localhost:50101/

http://localhost:50102/

Eureka主画面如下:

服务注册

将服务注册到Eureka Server

  • 在服务中添加依赖
<!‐‐ 导入Eureka客户端的依赖 ‐‐>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring‐cloud‐starter‐netflix‐eureka‐client</artifactId>
</dependency>
  • 在application.yml配置
eureka:
client:
registerWithEureka: true #服务注册开关
fetchRegistry: true #服务发现开关
serviceUrl: #Eureka客户端与Eureka服务端进行交互的地址,多个中间用逗号分隔
defaultZone: ${EUREKA_SERVER:http://localhost:50101/eureka/}
instance:
prefer‐ip‐address: true #将自己的ip地址注册到Eureka服务中
ip‐address: ${IP_ADDRESS:127.0.0.1}
instance‐id: ${spring.application.name}:${server.port} #指定实例id
  • 在启动类上添加注解 在启动类上添加注解 @EnableDiscoveryClient ,表示它是一个Eureka的客户端
  • 启动一个微服务已经注册到了Eureka中