Skip to content

Commit faffd05

Browse files
committed
docs(register): add note about micro service register and discovery
1 parent 87e6b98 commit faffd05

5 files changed

Lines changed: 26 additions & 3 deletions

File tree

java/basic/java-thread.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -759,6 +759,17 @@ public class UncaughtExceptionExample {
759759
}
760760
```
761761

762+
核心线程(corePool):线程池最终执行任务的角色肯定还是线程,同时我们也会限制线程的数量,所以我们可以这样理解核心线程,有新任务提交时,首先检查核心线程数,如果核心线程都在工作,而且数量也已经达到最大核心线程数,则不会继续新建核心线程,而会将任务放入等待队列。
763+
764+
等待队列 (workQueue):等待队列用于存储当核心线程都在忙时,继续新增的任务,核心线程在执行完当前任务后,也会去等待队列拉取任务继续执行,这个队列一般是一个线程安全的阻塞队列,它的容量也可以由开发者根据业务来定制。
765+
766+
非核心线程:当等待队列满了,如果当前线程数没有超过最大线程数,则会新建线程执行任务,那么核心线程和非核心线程到底有什么区别呢?说出来你可能不信,本质上它们没有什么区别,创建出来的线程也根本没有标识去区分它们是核心还是非核心的,线程池只会去判断已有的线程数(包括核心和非核心)去跟核心线程数和最大线程数比较,来决定下一步的策略。
767+
768+
作者:三好码农
769+
链接:https://www.jianshu.com/p/9a8c81066201
770+
来源:简书
771+
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
772+
762773
# 引用
763774
* https://www.cnblogs.com/skywang12345/
764775
* https://www.cnblogs.com/walixiansheng/p/9588603.html
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
## 服务注册与发现
2+
3+
> 服务注册
4+
* 服务注册是指向服务注册中心注册一个服务实例,服务提供者将自己的服务信息(如服务名,IP,端口等)告知服务注册中心。
5+
> 服务发现
6+
* 服务发现是指服务实例请求注册中心获取所依赖服务信息。

java/spring/spring-cloud/spring-cloud-eureka.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
## 学习计划
22
* Eureka的自我保护机制
3-
* eureka源码--服务的注册、服务续约、服务发现、服务下线、服务剔除、定时任务以及自定义注册中心的思路 https://www.cnblogs.com/yangxiaohui227/p/12604172.html
3+
* Eureka源码--服务的注册、服务续约、服务发现、服务下线、服务剔除、定时任务以及自定义注册中心的思路 https://www.cnblogs.com/yangxiaohui227/p/12604172.html
44
微服务注册后,在注册中心的注册表结构是一个map: ConcurrentHashMap<String, Map<String, Lease<InstanceInfo>>> registry,假如一个order服务部署了三台机器,那么Map的第一个key为服务名称,第二个map的key是实例编号(instance-id), InstanceInfo该对象封装了服务的主要信息,例如ip 端口 服务名称 服务的编号等
55

66
## Eureka的自我保护机制
7-
总结:在网络正常的情况下,如果EurekaServer在一定时间(默认90s)内没有收到某个服务实例的心跳,EurekaServer会注销该实例。OK,这个前提条件是网络正常,那要是网络不正常呢?出现网络不正常的情况有两种,EurekaServer的网络不正常或者某些EurekaClient的网络不正常,先说说EurekaServer网络不正常的情况,如果EurekaServer网络不正常,那么它应该收不到很多Client的心跳;如果说是某些Client的网络不正常,那么它应该可以收到其他的Client的心跳,因此就需要一个阀值来评估要不要进入自我保护机制。Eureka规定在15min内没有收到心跳的服务的实例超过了85%就认为需要进入自我保护。我们先说说进入自我保护之后会发生什么。EurekaServer进入自我保护后,可以接收新的服务注册和查询,也不把那些没有收到心跳的服务移除,在网络稳定之前EurekaServer的这份服务信息是不会同步到其他服务的,直到网络稳定后才同步。在EurekaServer进入自我保护期内,如果原本正常的服务下线,会导致服务的调用失败,这个在API的设计上需要注意,要引入熔断和快速失败的机制。我们再说说是Client这边的网络问题,超过85%的服务在15min内没有心跳,我们基本认为这个系统挂掉了,需要立马排查原因重新上线。最后我们再来说说自我保护啥时候能被接触
7+
总结:在网络正常的情况下,如果EurekaServer在一定时间(默认90s)内没有收到某个服务实例的心跳,EurekaServer会注销该实例。OK,这个前提条件是网络正常,那要是网络不正常呢?出现网络不正常的情况有两种,EurekaServer的网络不正常或者某些EurekaClient的网络不正常,先说说EurekaServer网络不正常的情况,如果EurekaServer网络不正常,那么它应该收不到很多Client的心跳;如果说是某些Client的网络不正常,那么它应该可以收到其他的Client的心跳,因此就需要一个阀值来评估要不要进入自我保护机制。Eureka规定在15min内没有收到心跳的服务的实例超过了85%就认为需要进入自我保护。我们先说说进入自我保护之后会发生什么。EurekaServer进入自我保护后(`只进不出【只注册不发现】,沉默是金【不同步】`),可以接收新的服务注册和查询,也不把那些没有收到心跳的服务移除,在网络稳定之前EurekaServer的这份服务信息是不会同步到其他服务的,直到网络稳定后才同步。在EurekaServer进入自我保护期内,如果原本正常的服务下线,会导致服务的调用失败,这个在API的设计上需要注意,要引入熔断和快速失败的机制。我们再说说是Client这边的网络问题,超过85%的服务在15min内没有心跳,我们基本认为这个系统挂掉了,需要立马排查原因重新上线。最后我们再来说说自我保护啥时候能被接触
88

99
自我保护模式被解除的条件是:在 1 分钟后,Renews (last min) < Renews threshold
1010
这两个参数的意思:

java/spring/spring.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@
7272
* [SpringBoot启动后按顺序自动执行](https://github.com/zhonghuasheng/JAVA/tree/master/springboot/springboot-basic/src/main/java/com/zhonghuasheng/basic/runner)
7373

7474
### SpringCloud
75+
> 微服务基础知识
76+
* [服务注册与发现](spring-cloud/micro-service-register-discovery.md)
7577
> SpringCloud微服务系列
7678
* [Spring Cloud注册中心 - Eureka](spring-cloud/spring-cloud-eureka.md)
7779
* [Spring Cloud熔断器 - Hystrix](spring-cloud/spring-cloud-hystrix.md)

tool/english.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,4 +103,8 @@
103103
* 互联网是一个喂养型的社会。这种喂养是经过大数据分析、机器学习决策后,推送给人的
104104
* 如果你没有花钱买产品,那你就是被卖的产品
105105
* IO multiplexing IO多路复用
106-
* NVM 非易失性存储器(NVM)是一种计算机即使关闭电源也能够保存已保存数据的存储器。与易失性存储器不同,NVM不需要定期刷新其存储器数据。它通常用于二级存储或长期一致的存储。非易失性存储器在数字媒体中非常流行; 它广泛用于 USB 记忆棒和数码相机的存储芯片。
106+
* NVM 非易失性存储器(NVM)是一种计算机即使关闭电源也能够保存已保存数据的存储器。与易失性存储器不同,NVM不需要定期刷新其存储器数据。它通常用于二级存储或长期一致的存储。非易失性存储器在数字媒体中非常流行; 它广泛用于 USB 记忆棒和数码相机的存储芯片。
107+
* CAP理论
108+
* Partation Tolerance:分区容错性。区间的通信可能失败,系统要能够容忍。这是由于区间通信可能失败,导致CA不能同时满足。
109+
* Consistency:一致性。意思是,写操作之后的读操作,必须返回最新的值。A,B节点都有值V0,A修改了V0为V1,这时读取B,得到的也是V1,叫一致性。
110+
* Availability:可用性。意思是只要收到用户的请求,服务器就必须给出回应。

0 commit comments

Comments
 (0)