自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 Nacos(1.4.2)注册中心原理及源码系列(八)- 服务下线机制及源码剖析

服务下线机制及源码剖析 服务下线的接口为 /nacos/v1/ns/instance,跟注册是一个接口,但是HTTP的谓词为:DELETE,调用这个接口的逻辑大致为:先从注册表中根据namespaceId和serviceName获取到相应的Instances的副本,然后从副本中把需要下线的instance删除,再把这个处理后的Instances副本去替换注册表中相应的信息,源码中前半段逻辑,就是得出一个删除完实例的Instances副本,后边的逻辑其实跟注册逻辑一致,源码如下:// com....

2021-10-31 11:32:15 706

原创 Nacos(1.4.2)注册中心原理及源码系列(七)- 服务变动事件发布机制及源码剖析

服务变动事件发布机制及源码剖析 在上边有讲到一个Nacos Server端的接口/nacos/v1/ns/instance/list,这个接口是用来根据serviceName来拉取Instace的接口,并且客户端会定时的去拉取,如果Service中的Instance发生了变化,那么在调用这个接口的时候就能感知到,但是这个感知会有延迟,默认的拉取频率为10s,Nacos在一些细节的上也做了一些良好的设计,Nacos Client并不是完全依赖这个定时任务来感知Service的变化,为了尽量的去弥补这...

2021-10-31 11:30:39 782

原创 Nacos(1.4.2)注册中心原理及源码系列(六)- 心跳检测在集群架构下的设计原理及源码剖析

心跳检测在集群架构下的设计原理及源码剖析 刚才分析一下心跳检测的代码,这里不得的不多说一句这里的一个细节设计,如果Nacos是集群的状态,并不是集群中的每节点机器都会检测所有的Instance的心跳,而是用算法来计算每个节点机器需要检测那些Instances,我们来看看源码中是如何计算的:public boolean responsible(String serviceName) { final List<String> servers = healthyList; ...

2021-10-31 11:29:10 668

原创 Nacos(1.4.2)注册中心原理及源码系列(五)- 心跳机制与服务健康检查设计原理及源码剖析

心跳机制与服务健康检查设计原理及源码剖析客户端会调用/nacos/v1/ns/instance/beat接口进行心跳,主要逻辑有: 1.如果在Nacos Server没有找到相对应的Instance,那么就构造一个Instance,源码如下: // com.alibaba.nacos.naming.controllers.InstanceController#beat @CanDistro @PutMapping("/beat") @Secured(pa...

2021-10-31 11:26:59 632

原创 Nacos(1.4.2)注册中心原理及源码系列(四)- 注册表如何防止多节点读写并发冲突

注册表如何防止多节点读写并发冲突(Copy On Write思想的实现) Nacos Server在把Instance写入注册表的是时候怎么去解决读写并发冲突的呢? 答案就是:Copy on write 思想 源码如下:// com.alibaba.nacos.naming.core.Cluster#updateIpspublic void updateIps(List<Instance> ips, boolean ephemeral) { Se...

2021-10-31 11:20:09 856 3

原创 Nacos(1.4.2)注册中心原理及源码系列(三)- 如何支持高并发注册

如何支持高并发注册(异步任务与内存队列设计原理及源码剖析) 之前主要分析了Spring Cloud集成Nacos client的服务注册和服务拉取的逻辑,现在接着分析一下Nacos Server注册中心的核心功能逻辑及源码,首先来分析Nacos怎么能支持高并发的Intance的注册的。 先直接给答案:采用内存队列的方式进行服务注册 也就是说客户端在把自己的信息注册到Nacos Server的时候,并不是同步把信息写入到注册表中的,而且采取了先写入内存队列中,然后用独立的线程池来...

2021-10-31 11:16:46 1028

原创 Nacos(1.4.2)注册中心原理及源码系列(二)- Nacos Client 和 Spring Cloud 集成

1、客户端服务注册 Nacos在1.x版本的通信方式采用的HTTP协议,2.0版本以后会添加gRPC协议,本文写作采用的版本为1.4.2,所以本文还是基于HTTP协议来分析,服务注册的接口地址为:/nacos/v1/ns/instance,此接口的源码全路径为:com.alibaba.nacos.naming.controllers.InstanceController#register。@CanDistro@PostMapping@Secured(parser = NamingReso...

2021-10-31 10:44:18 1246 1

原创 Nacos(1.4.2)注册中心原理及源码系列(一)- 核心源码图及注册表结构

1、注册中心部分核心功能源码图图链接:04.Nacos注册中心部分核心功能源码图 | ProcessOn免费在线作图,在线流程图,在线思维导图 |2、Nacos 核心概念Namespace:用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。如果不配置默认为:public Group: 服务分组,不同的服务可以归类到同一分组

2021-10-31 10:28:18 869 1

转载 浮点型数据存储方式

C语言和C#语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit,double数据占用64bit,我们在声明一个变量float f= 2.25f的时候,是如何分配内存的呢?如果胡乱分配,那世界岂不是乱套了么,其实不论是float还是double在存储方式上都是遵从IEEE的规范的,float遵从的是IEEE R32.24 ,而dou

2014-11-04 11:35:16 938 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除