eureka 实践

eureka server
1.jar包导入
spring-cloud-starter-netflix-eureka-server

2.配置文件
spring.application.name=micro-eureka
server.port=8763
eureka.instance.hostname=eureka.server
# 暴露 eureka 服务的地址
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka
# 不向注册中心注册自己, 默认为 true
eureka.client.registerWithEureka=false
# 是否从 eureka 中拉取注册信息,默认为 true
eureka.client.fetchRegistry=false
# 是否开启自我保护模式, 默认为 true
# 当出现网络分区, eureka 在短时间内丢失过多客户端时, 会进入自我保护模式,  
# 即一个服务长时间没有发送心跳, eureka 也不会将其删除
eureka.server.enable-self-preservation=true
# eureka server 清理无效节点的时间间隔,默认 60000 毫秒,即 60 秒
eureka.server.eviction-interval-timer-in-ms=60000

security.basic.enabled=true
spring.security.user.name=admin
spring.security.user.password=002310

3.配置类
@EnableEurekaServer

4.查看注册中心
http://localhost:8763


eureka client
服务生产者 / 服务消费者

1.jar包导入
spring-cloud-starter-netflix-eureka-client

2.配置文件
EurekaClientConfigBean, EurekaInstanceConfigBean 定义了常用配置参数及默认值
# 服务名称
spring.application.name=micro-goods
# 服务端口
server.port=8283
# 注册中心路径
#http://eureka.server:8763/eureka
# 增加 eureka 用户认证
# 连接 eureka 的时候,带上用户名和密码
eureka.client.serviceUrl.defaultZone=http://admin:002310@eureka.server:8763/eureka
#eureka.client.serviceUrl.defaultZone=http://admin:002310@Eureka8761:8761/eureka/,http://admin:002310@Eureka8762:8762/eureka/

# 是否注册到 eureka, 默认为 true
eureka.client.registerWithEureka=true
# true 使用 ip 进行服务注册
# 如果同时设置了 eureka.instance.ip-address,就用该 ip 进行服务注册
# false 默认,使用 hostname 进行服务注册
# eureka.instance.prefer-ip-address=true
# 是否从 eureka 中拉取注册信息, 默认为 true
eureka.client.fetchRegistry=true
# 表示 eureka client 间隔多久去拉取服务注册信息,默认为 30 秒
eureka.client.registry-fetch-interval-seconds=30
# 每一个服务配置后, 心跳间隔和心跳超时时间会被保存在 server 端, 
# 不同服务的心跳频率可能不同, server 端会根据保存的配置来分别探活
# 服务续约,心跳的时间间隔 -- 默认30s
eureka.instance.lease-renewal-interval.in.seconds=30
# 心跳超时时间 -- 默认90s, 如果从前一次发送心跳时间起, 90秒没接受到新的心跳,将剔除服务
eureka.instance.lease-expiration-duration-in-seconds=90

3.配置类
@EnableEurekaClient

@Bean
@LoadBalanced
public RestTemplate restTemplate() {
    return new RestTemplate();
}

服务消费者
String result = restTemplate.getForObject("http://"
       + ORDER_SERVICE_NAME + "/order/queryOrder", String.class)


eureka 用户认证
连接 eureka 的时候,需用户密码

eureka 服务端
1.jar包导入
spring-boot-starter-security

2.配置文件
security.basic.enabled=true
spring.security.user.name=admin
spring.security.user.password=002310

3.配置代码
@EnableWebSecurity
public class WebSecurityConfigurer extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        // 关闭 csrf
        http.csrf().disable();
        // 开启认证:URL格式登录必须是 httpBasic
        http.authorizeRequests().anyRequest().authenticated().and().httpBasic();
    }
}

eureka 客户端
# 注册中心路径
# http://eureka.server:8763/eureka
# 增加 eureka 用户认证, 连接eureka的时候, 带上用户名和密码
eureka.client.serviceUrl.defaultZone=http://admin:002310@eureka.server:8763/eureka

健康检测
eureka 默认的健康检测只是通过心跳来感知微服务进程的状态,而接口的可用情况需要通过 actuator 模块来做自定义健康检测

1.jar包导入
spring-boot-starter-actuator

2.配置文件
eureka.client.healthcheck.enabled=true

3.自定义的 HealthIndicator 
@Configuration
public class MicroGoodsHealthIndicator implements HealthIndicator {
    
    public static boolean dbIsAvailable = true;

    @Override
    public Health health() {
        if(dbIsAvailable) {
            return new Health.Builder(Status.UP).build();
        }else {
            return new Health.Builder(Status.DOWN).build();
        }
    }

}


注册中心强制下线
http://你的注册中心zone/apps/你的实例名称/你的实例地址加端口
http://admin:002310@eureka.server:8763/eureka/apps/micro-goods/localhost:micro-goods:8083


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叫我三师弟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值