Eureka集群

package com.example.cloudeureka;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@EnableEurekaServer
@SpringBootApplication
public class CloudEurekaApplication {

    public static void main(String[] args) {
        SpringApplication.run(CloudEurekaApplication.class, args);
    }

}

eureka:
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: http://eureka7900:7900/eureka/,http://eureka7901:7901/eureka/,http://eureka7902:7902/eureka/
  server:
    #自我保护  解决自动续约问题
    enable-self-preservation: false
    #自我保护的预制
    renewal-percent-threshold: 0.85
    #剔除服务时间的间隔
    eviction-interval-timer-in-ms: 1000
    #关闭从readOnly读注册表
    use-read-only-response-cache: false
    # readWrite 和 readOnly 同步时间间隔
    response-cache-update-interval-ms: 1000
spring:
  application:
    name: eureka

---
spring:
  profiles: 7900
server:
  port: 7900
eureka:
  instance:
    hostname: eureka7900

---
spring:
  profiles: 7901
server:
    port: 7901
eureka:
  instance:
    hostname: eureka7901

---
spring:
  profiles: 7902
server:
    port: 7902
eureka:
  instance:
    hostname: eureka7902

host配置

127.0.0.1 eureka7900 
127.0.0.1 eureka7901
127.0.0.1 eureka7902

在这里插入图片描述

配置集群的三个必要条件

  • 相互注册
eureka:
  client:
    registerWithEureka: true
    fetchRegistry: true
  • 相同的
spring:
  application:
    name: eureka
eureka:
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: http://eureka7900:7900/eureka/,http://eureka7901:7901/eureka/,http://eureka7902:7902/eureka/
      #不能是defaultZone: http://127.0.0.1:7900/eureka/,http://127.0.0.1:7901/eureka/,http://127.0.0.1:7902/eureka/
      #可以使相同的ip域名(要host文件配)
      #要配ip 除非ip 不一样

总是看到EnableXXXX,缺不知道意思

  • 总是看到EnableXXXX,缺不知道意思
  • 甚至有的时候跟源码都不知道往哪跟
  • 跟进去啥都没有
  • 如图
    在这里插入图片描述
    注解内部
    在这里插入图片描述
    EurekaServerMarkerConfiguration进入缺是个Marker空的方法
    在这里插入图片描述
    翻车了,这个版本该掉了
eureka.client.enabled

之前是检测Marker这个bean是否存在启动的

优化

拿老师的
在这里插入图片描述

eureka 内置监听器

package com.jln.system.eureka.beans;

import com.netflix.appinfo.InstanceInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.netflix.eureka.server.event.*;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;

import java.util.Objects;

@Component
@Slf4j
public class EurekaStateChangeListener {

	@EventListener//(condition = "#event.replication==false")
	public void listen(EurekaInstanceCanceledEvent eurekaInstanceCanceledEvent) {
		// 服务断线事件
		String appName = eurekaInstanceCanceledEvent.getAppName();
		String serverId = eurekaInstanceCanceledEvent.getServerId();
		Objects.requireNonNull(appName, "服务名不能为空!");

		log.info(">>>>>>> 失效服务:{},已被剔除!", serverId);

	}

	@EventListener//(condition = "#event.replication==false")
	public void listen(EurekaInstanceRegisteredEvent event) {
		// 服务注册
		InstanceInfo instanceInfo = event.getInstanceInfo();
		String appName = instanceInfo.getAppName();
		Objects.requireNonNull(appName, "服务名不能为空!");

		log.info(">>>>>>> 服务名:{},端口号:{},已缓存至redis", appName, instanceInfo.getPort());
	}

	@EventListener//(condition = "#event.replication==false")
	public void listen(EurekaInstanceRenewedEvent event) {
		// 服务续约
		log.info(">>>>>>>>>>>>>>>Server续约:" + event.getServerId());
	}

	@EventListener
	public void listen(EurekaRegistryAvailableEvent event) {
		// 注册中心启动
		log.info(">>>>>>>>>>>>>>>Server注册中心:" + event);
	}

	@EventListener
	public void listen(EurekaServerStartedEvent event) {
		// Server启动
		log.info(">>>>>>>>>>>>>>>Server启动:" + event);
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值