0
点赞
收藏
分享

微信扫一扫

[SpringCloud]Spring Cloud Netflix Eureka注册中心

芭芭蘑菇 2021-12-29 阅读 123
日记本

注册中心

注册中心的构成

Eureka注册

Eureka获取注册表信息

# 是否允许获取注册表信息
eureka.client.fetch-registry=true
# client定期更新本地缓存的时间
eureka.client.registry-fetch-interval-seconds=30

Eureka续约

Eureka Server宕机了,服务之间还可以相互调用么

Eureka 配置

package com.xjm.eureka;

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

/**
 * @EnableEurekaServer 开启EurekaServer的功能
 */
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {

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

}

配置文件
# 服务名
spring.application.name=eureka
# 端口号
server.port=1111
# eureka启动时,默认会把自己也当成一个服务,设置成false就会被忽略自己.
# 单点注册中心不需要注册自己,但是在集群环境中,需要开启,让eureka服务互相感知对方的存在
eureka.client.register-with-eureka=false
# 表示是否从 eureka上获取注册信息
eureka.client.fetch-registry=false

注册中心UI的说明

Eureka为开发者提供了一个UI界面进行服务健康监控.

开启健康检查

eureka.client.healthcheck.enabled=true

Eureka集群的搭建

  • 为什么需要集群呢?
  • 修改hosts文件
    找到你的hosts文件,添加上这句
## 当访问eurekaA、eurekaB的时候,  
## DNS会解析到120.0.0.1这个ip地址
127.0.0.1       eurekaA eurekaB
  • 相互注册
    eurekaA配置文件
# 服务名
spring.application.name=eureka
# 端口号
server.port=1111
# host名字
eureka.instance.hostname=eurekaA
# eureka启动时,默认会把自己也当成一个服务,设置成false就会被忽略自己.
# 单点注册中心不需要注册自己,但是在集群环境中,需要开启,让eureka服务互相感知对方的存在
eureka.client.register-with-eureka=true
# 表示是否从 eureka上获取注册信息
eureka.client.fetch-registry=true
# 将A注册到B中,如果需要增加身份验证,那么可以使用以下形式:
# http://user:password@localhost:port/eureka
eureka.client.service-url.defaultZone=http://eurekaB:1112/eureka

eurekaB配置文件

# 服务名
spring.application.name=eureka
# 端口号
server.port=1112
# host名字
eureka.instance.hostname=eurekaB
# eureka启动时,默认会把自己也当成一个服务,设置成false就会被忽略自己.
# 单点注册中心不需要注册自己,但是在集群环境中,需要开启,让eureka服务互相感知对方的存在
eureka.client.register-with-eureka=true
# 表示是否从 eureka上获取注册信息
eureka.client.fetch-registry=true
# 将B注册到A中
eureka.client.service-url.defaultZone=http://eurekaA:1111/eureka

打包部署

使用Maven对项目进行打包,注意打成jar包

可以看到,在target目录下已经产生了jar包

最后,我们通过spring.profiles.active来指定当前程序使用什么配置文件

java -jar eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=a

java -jar eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=b

可以看到,集群环境已经成功搭建起来了


Eureka的高可用性

Eureka自我保护

server:
    #测试时关闭自我保护机制,保证不可用服务及时剔除
    enable-self-preservation: false
    #间隔10秒剔除
    eviction-interval-timer-in-ms: 10000
举报

相关推荐

0 条评论