概述
一:问题
1、当正常不是启动的对外对应的是microserivcecloud-dept8001,启动了之后在到8001的application.yml文件修改 instance-id: microserivcecloud-dept8001 为 microserivcecloud-dept8001xxx,查询页面 然后在修改回来
2、此时机会出现dept8001xxx当机的现象,microserivcecloud-dept8001在更新,这里就需要自我保护机制
二:Eureka自我保护机制是什么?
0、某一时刻某一个微服务不能用了(如:dept8001xxx),而Eureka不会自动清除
依然对微服务的信息进行保存
1、在默认的情况系,EurekaServer在一定的时间内没有接受到微服务的实例心跳,EurekaServer将会注销该实例(默认为90秒)
2、但是在网络发生故障的时候,微服务于EurekaServer之间是无法通信的,这种情况就非常危险了,因为微服务本身实例是健康的,此刻本不应该注销这个微服务。那么Eureka自我保护模式就解决了这个问题了
3、当EurekaServer节点在短时间内丢失过客户端时(包含发生的网络故障),那么节点就会进行自我保护
4、一但进入自我保护模式,EurekaServer就会保护服务注册表中的信息,不再删除服务注册表中的数据不会注销任何的微服务
5、当网络故障恢复后,该EurekaServer节点会自动的退出自我保护机制
6、在自我保护模式中,EurekaServer会保护服务注册表中的信息,不在注销任何服务实例,当重新收到心跳数恢复阀值以上时,该EurekaServer节点就会自动的退出自我保护模式,这种社设计宁可保留错误的服务注册信息,也不盲目的注销删除任何可能健康的服务实例
7、自我保护机制就是一种对网络异常的安全保护实施,他会报错所有的微服务(健康或者不健康的微服务都会保存)
,而不会盲目的删除任何微服务,可以让Eureka集群更加的健壮/稳定
8、在EurekaServer端可取消自我保护机制不建议使用
三:服务发现(Discovery)是什么
1、对于注册进来的Eureka里面的微服务,可以通过服务发现来获的该服务的信息
2、通俗的说:就是登陆某科技园查询某公司是否入驻到该科技园中
四:修改chserivcecloud-provider-dept-8001工中的DeptController
1、在DeptController中添加一和服务发现的接口
2、import com.ch.springcloud.serivce.DeptSerivce;包中的DiscoveryClient
五:添加服务发现
1、在chserivcecloud-provider-dept-8001主启动类(DeptProvider8001_Ch)上加上注解@EnableDiscoveryClient
六:测试(自测)
1、启动EurekaServer(7001)
2、在启动EurekaClient(8001)
1、自测
1、8001自己调用自己
2、发现
七:consumer(消费者)怎么来访问?
1、修改chserivcecloud-consumer-dept-80工中的DeptController_Consumer.java
2、在该类后面加上如下代码
3、consumer端测试
最后
以上就是认真金毛为你收集整理的Eureka自我保护机制与Eureka服务发现(Discovery)一:问题二:Eureka自我保护机制是什么?三:服务发现(Discovery)是什么四:修改chserivcecloud-provider-dept-8001工中的DeptController五:添加服务发现六:测试(自测)1、自测七:consumer(消费者)怎么来访问?的全部内容,希望文章能够帮你解决Eureka自我保护机制与Eureka服务发现(Discovery)一:问题二:Eureka自我保护机制是什么?三:服务发现(Discovery)是什么四:修改chserivcecloud-provider-dept-8001工中的DeptController五:添加服务发现六:测试(自测)1、自测七:consumer(消费者)怎么来访问?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复