SpringCloud服务注册与发现组件-Eureka

SpringCloud服务注册与发现组件-Eureka
摘要由CSDN通过智能技术生成

SpringCloud服务注册与发现组件-Eureka

参考:https://windmt.com/2018/04/15/spring-cloud-2-eureka/

一、SpringCloud开启Eurake-Server
1、添加依赖
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
2、启动类
  • 启动类添加@EnableEurekaServer 设置当前服务为Eureka服务器端
3、applicantion.xml添加配置
  • register-with-eureka 是否注册作为客户端,服务端设置为false不用注册自己
  • fetch-registry 是否获取注册信息,服务端已经有注册信息,故不用多余获取
server:
  port: 8080
spring:
  application:
    name: eureka-server
eureka:
  instance:
    hostname: peer1 
  client:
    register-with-eureka: false   
    fetch-registry: false  
    service-url:
      defaultZone: http://${
   eureka.instance.hostname}:${
   server.port}/eureka/
5、搭建多服务集群

在已有的Eureka-server基础上新建一个Eureka-server-peer1,Eureka-server-peer2

5.1、例如修改配置如下

注意,需要改服务名称,修改端口号,修改defaultZone配置其他的Eureka服务即可

server:
  port: 8001
spring:
  profiles: server1
  application:
    name: eureka-ha
eureka:
  instance:
    hostname: server1
  client:
    serviceUrl:
      defaultZone: http://server2:8002/eureka/

---
server:
  port: 8002
spring:
  profiles: server2
  application:
    name: eureka-ha
eureka:
  instance:
    hostname: server2
  client:
    serviceUrl:
      defaultZone: http://server1:8001/eureka/
5.2 启动
java -jar ./eurekaCenter-0.0.1-SNAPSHOT.jar --spring.profiles.active=server1
java -jar ./eurekaCenter-0.0.1-SNAPSHOT.jar --spring.profiles.active=server2
二、Eureka客户端模块

创建两个模块,eureka-provider和eureka-comsumer模块

1、添加依赖
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2、配置文件
  • eureka.client.service-url.defaultZone 指定Eureka服务端地址
(1)、服务生产端配置
server:
  port: 8081
spring:
  application:
    name: eureka-producer
# Eureka配置  
eureka:
  client:
    service-url:
      defaultZone: http://localhost:7000/eureka/ 
(2)、服务消费端配置
server:
  port: 9000
spring:
  application:
    name: eureka-consumer
# Eureka配置
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:8080/eureka/ 
3、启动类
  • 添加@EnableDiscoveryClient 表名当前项目是客户端
三、验证
1、启动Eureka-server后,访问http://127.0.0.1:8080 可以进入到Eureka-server管理页面
2、启动Eureka-provider端,看看Eureka-server管理页面中是否有eureka-provider服务,如果有表示成功
3、启动Eureka-comsumer端,看看Eureka-server管理页面中是否有eureka-comsumer服务,如果有表示成功
4、为了服务端安全性,建议假如springSecurity组件,保证安全性
四、附录,Eureka的配置详解

注意Eureka的主要知识点在配置上

eureka:
  instance:
    hostname: T231
    # 使用IP注册,Spring就会自动为我们获取第一个非回环IP地址
    prefer-ip-address: true
    # 心跳间隔
    lease-renewal-interval-in-seconds: 3
    # 服务失效时间: 如果多久没有收到请求,则可以删除服务,默认是30s
    lease-expiration-duration-in-seconds: 7
    
  client: # Eureka客户端配置,放在Eureka服务端
    # 关闭eureka client
    enabled: false
    # 注册自身到eureka服务器,默认是true
    register-with-eureka: true
    # 表示是否从eureka服务器获取注册信息,默认是false
    fetch-registry: false
    # 客户端从Eureka Server集群里更新Eureka Server信息的频率
    eureka-service-url-poll-interval-seconds: 60
    # 定义从注册中心获取注册服务的信息
    registry-fetch-interval-seconds: 5
    # 设置eureka服务器所在的地址,查询服务和注册服务都需要依赖这个地址
    serviceUrl:
       # 设置eureka服务器所在的地址,可以同时向多个服务注册服务
      defaultZone: http://127.0.0.1:8000/eureka/

   server: #Eureka服务端配置,放在Eureka客户端
     # renewal-percent-threshold: 0.1
     # 关闭自我保护模式
     enable-self-preservation: false
     # Eureka Server 自我保护系数,当enable-self-preservation=true时,启作用
     # renewal-percent-threshold:
     # 设置清理间隔,单位为毫秒,默认为0
     eviction-interval-timer-in-ms: 3000
     # 设置如果Eureka Server启动时无法从临近Eureka Server节点获取注册信息,它多久不对外提供注册服务
     wait-time-in-ms-when-sync-empty: 6000000
     # 集群之间相互更新节点信息的时间频率
     peer-eureka-nodes-update-interval-ms: 60000


Eureka默认配置源码
  • client.refresh.interval=30s
  • appinfo.replicate.interval=30s
  • appinfo.initial.replicate.time=40s
  • serviceUrlPollIntervalMs=30s
  • eurekaServer.readTimeout=8s
  • eurekaServer.connectTimeout=5s
  • eurekaServer.maxTotalConnections=200s
  • eurekaServer.maxConnectionsPerHost=50
  • eurekaserver.connectionIdleTimeoutInSeconds=30s
  • client.heartbeat.threadPoolSize=5
  • client.heartbeat.exponentialBackOffBound=10
  • client.cacheRefresh.threadPoolSize=5
  • client.cacheRefresh.exponentialBackOffBound=10
@Singleton
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值