响应式网站代码,个人做房产网站有哪些资料,绿化公司网站建设,房产中介网站建设模板Nacos是阿里巴巴开源的注册中心和配置中心#xff0c;它既可以替应用服务管理服务相关的元数据#xff0c;也可以管理服务相关的配置信息。
Nacos既支持单机部署#xff0c;也支持集群部署#xff0c;为了保证数据的一致性#xff0c;在集群模式下#xff0c;Nacos既支持…Nacos是阿里巴巴开源的注册中心和配置中心它既可以替应用服务管理服务相关的元数据也可以管理服务相关的配置信息。
Nacos既支持单机部署也支持集群部署为了保证数据的一致性在集群模式下Nacos既支持CP架构模型也支持AP架构模型。
理解CP和AP架构模型
关于CP或者AP这里就不多做解释但是一定要理解CP和AP架构模型。
所谓CP架构模型主要是指利用实现CP数据一致性的技术去管理分布式架构中的数据从而确保数据的强一致性的架构模型。
所谓AP架构模型主要是指利用AP数据一致性的技术去管理分布式架构中的数据从而确保数据的最终一致性的架构模型。
应用服务发起一次注册请求
在理解Nacos的CP或者AP模型之前开发人员一定要搞清楚应用服务是如何发起一次注册请求的。
第1步应用服务依赖nacos-client并使用NacosFactory类的方法createNamingService()创建一个Nacos与注册中心相关的实例NacosNamingService。
import static com.alibaba.nacos.api.NacosFactory.createNamingService;
private NamingService createNewNamingService(Properties properties) {try {return createNamingService(properties);}catch (NacosException e) {throw new RuntimeException(e);}}当在应用服务中创建实例NacosNamingService时会初始化一个应用服务连接Nacos注册中心的RPC代理对象NamingClientProxyDelegate并在这个对象中建立通信渠道NamingHttpClientProxy和NamingGrpcClientProxy前者是基于HTTP的通信渠道后者是基于gRPC的通信渠道。
因此Nacos会在应用服务启动时建立应用服务和Nacos注册中心的以上两种类型的通信渠道。
但是在发起注册请求的时候如果待注册的instance类型为ephemeral类型临时实例则采用gRPC通信渠道如果如果待注册的instance类型为非ephemeral类型持久化实例则采用HTTP通信渠道。
待注册的instance类型默认为临时实例因此Nacos默认采用gRPC通信渠道。
第2步调用NacosNamingService实例类的方法registerInstance()发起注册请求其中serviceId为服务IDgroup为服务组instance为需要注册的实例信息。
namingService.registerInstance(serviceId, group, instance);第3步如果采用HTTP通信渠道则调用NamingHttpClientProxy类的方法registerService()去注册服务并向Nacos注册中心发起HTTP请求“/nacos//v1/ns/instance”。
如果Nacos是集群部署则应用服务会利用HTTP通信渠道向Nacos集群中所有的节点发起以上HTTP请求比如“127.0.0.1:8848/nacos//v1/ns/instance”、“127.0.0.1:8847/nacos//v1/ns/instance”和“127.0.0.1:8846/nacos//v1/ns/instance”。
Nacos注册中心启动成功之后会启动Restful API InstanceController并启动接口“/nacos//v1/ns/instance”。这样Nacos注册中心就会处理应用服务中基于HTTP通信渠道的注册实例请求。
第4步如果采用gRPC通信渠道则调用NamingGrpcClientProxy类的方法registerService()去注册服务并向Nacos注册中心发起RPC请求InstanceRequestgRPC请求类型为NamingRemoteConstants.registerInstance,Nacos用常量类NamingRemoteConstants封装了支持的所有类型的gRPC请求对象。
Nacos注册中心启动成功之后会启动一个gRPC服务端并在gRPC服务端对应的处理器InstanceRequestHandler的方法handle()中处理RPC请求InstanceRequest。 case NamingRemoteConstants.REGISTER_INSTANCE:return registerInstance(service, request, meta);完成第1-4步之后Nacos注册中心就收到了应用服务的注册请求了剩下的就会走两套注册逻辑第1个是Nacos注册中处理HTTP注册请求第2个是Nacos注册中心处理gRPC注册请求。
Nacos注册中处理HTTP注册请求
Nacos注册中心利用Restful API InstanceController的方法register()处理注册请求。
Nacos注册中处理gRPC注册请求
Nacos注册中心利用gRPC处理器InstanceRequestHandler的方法registerInstance()处理注册请求。
未完待续大家可以关注之后查阅下一篇文章。 另外我的新书RocketMQ消息中间件实战派上下册在京东已经上架啦目前都是5折非常的实惠。
https://item.jd.com/14337086.html编辑https://item.jd.com/14337086.html “RocketMQ消息中间件实战派上下册”是我既“Spring Cloud Alibaba微服务架构实战派上下册”之后又一本历时超过1年半的巨无霸技术实战类型的书籍。
为了提高读者阅读本书的体验性本书总共设计了十个特色下面我一一的给技术小伙伴阐述一下。
【特色一】由浅到深
本书将RocketMQ的技术原理和最佳实践体系化按照由浅到深的顺序呈现给读者使读者可以按照章节顺序按部就班地学习。当学习完全书内容之后读者不仅能熟悉RocketMQ的核心原理还能充分理解RocketMQ的“根”。 【特色二】技术新
本书不仅包括RocketMQ4.x4.9.2版本的核心原理分析和最佳实践还包括RocketMQ5.x5.1. 0版本的新特性分析和最佳实践。 【特色三】精心设计的主线零基础入门循序渐进直至彻底掌握RocketMQ
本书精心研究了程序类、架构类知识的认知规律全书共分为6篇①基础②进阶③高级④高并发、高可用和高性能⑤应用⑥新特性是一条相对科学的主线让读者快速从“菜鸟”向“RocketMQ分布式架构实战高手”迈进。 【特色四】绘制了大量的图便于读者理解RocketMQ的原理、架构、流程
一图胜于文书中在涉及原理、架构、流程的地方配有插图以便读者更加直观地理解。 【特色五】从架构师和技术专家的视角分析RocketMQ 本书创造性地分析了RocketMQ具备高并发、高可用和高性能的功能及原理并从架构的视角展开分析这些也是程序员进阶为技术专家或架构师必备的技能。
以下为从架构师和技术专家的视角分析RocketMQ典型案例读者阅读完本书之后也能够达到这样的水准。 【特色六】不仅有原理分析还有大量的实战案例
本书介绍了大量的实战案例能让读者“动起来”在实践中体会功能而不只是一种概念上的理解。 在讲解每一个知识模块时我在思考在这个知识模块中哪些是读者必须实现的“标准动作”实例哪些“标准动作”是可以先完成的以求读者能快速有一个感知哪些“标准动作”具有一定难度 需要放到后面完成。读者在实践完书中的案例之后就能更容易理解那些抽象的概念和原理了。 本书的目标之一是让读者在动手中学习而不是“看书时好像全明白了一动手却发现什么都不会”。通过体系化的理论和实战案例去培养读者的主动学习能力这样本书的价值就会被最大化。 本书相信“知行合一”的理念而不是“只知而不行”避免开发人员出现眼高手低的现象。尤其是在技术面试过程中面试官更加看重的是既懂原理又能够主动是实践技术的技术人。 【特色七】深入剖析原理 本书以系统思维的方式从业务功能视角剖析 RocketMQ 底层的技术原理使读者具备快速阅读 RocketMQ 框架源码的能力。读者只有具备了这种能力才能举一反三实现更复杂的功能应对更复杂的应用场景。 【特色八】从运维的视角分析 RocketMQ 的最佳实践 【特色九】参与开源 本书向读者展示了如何修改 RocketMQ 源码并快速验证案例分析。这样读者可以从中学到参与开源的技能并为后续自己能够参与开源做准备。 【特色十】双色印刷读者体验会更好
为了提高读者阅读本书的体验在有上下两册的前提下巨无霸超过800页出版社不吝啬印刷成本依然采用双色印刷。 【推荐】本书的最佳学习路径 为了提高读者学习RocketMQ的效率我这边结合我自身从RocketMQ小白到RocketMQ专家的经历为读者汇总了一条最佳学习路径。 【寄语】作者寄语
RocketMQ是我深度参与研究的一款开源消息中间件无论是从源码还是架构场景我都提炼了很多最佳实践。
在开源领域技术小伙伴可以使用的开源消息中间件非常的多比如Kafka、Pulsar等我之所以选择研究RocketMQ除了工作内容和角色需要之外更多的还是自己感兴趣因此我建议技术小伙伴一定要先培养自己的兴趣兴趣才是提升技术硬实力的第1要素。
当然我并不止研究了RocketMQ还研究了Pulsar和Kafka等包括开源消息中间件生态中的主流框架只是本书作为一本关于RocketMQ实战派的书籍我必须要以RocketMQ为主。
假如技术小伙伴想成为Java领域的架构师或者技术专家我强烈建议你去研究RocketMQ它会给你带来很多意想不到的技术和架构方法论的收获这个也是我写本书的主要目的之一。
建议技术小伙伴按照本书设计的学习路线逐章的去阅读和实战这样学习效果会更好。
如果技术小伙伴有技术交流的可以通过博文视点官方的读者群找到我的联系方式并与我沟通我会实时的解答读者的疑问。
本文公众号“架构随笔录” 本人视频号“架构随笔录” 【博文视点】2021年度优秀作者
2021年我和博文视点合作了一本技术类型的书籍“Spring Cloud Alibaba微服务架构实战派上下册”它是我涉足知识输出领域以来的第一本书同时它也是我自己积累的技术池中部分技术的产出。
为了写好那本书我几乎花费了所有的休息时间并主动的承担了书的售后技术辅导和咨询的职责几乎是有问必答坚持了整整两年。
所谓有付出总会有回报Alibaba这本书的销量还不错我也因此获得了博文视点颁发的2021年度优秀作者。
我很清楚这个是博文视点为了鼓励我继续去用心写书因此我又花了接近1年半的时间去写了RocketMQ消息中间件实战派上下册这本书。
所谓一分耕耘一份收获我将我对RocketMQ的理解体系化的输出给喜欢技术的技术人希望真的对大家有帮助。 【博文视点】2023技术成长领路人
2022年我开始涉足技术直播和技术讲师领域并和博文视点合作几次技术直播直播效果还不错再加上我孜孜不倦的布道“Spring Cloud Alibaba微服务架构实战派上下册”这本书相关的技术并且这些技术都是有助于“技术人”快速成长的因此也获得了博文视点颁发的“2023技术成长领路人”这个技术奖项这个奖项也是为了鼓励我继续通过技术直播的方式给技术人去布道技术因此只要我有时间我就会孜孜不倦的去讲和聊技术。 【四维口袋】2022 KVP最具价值技术专家
2022年我开始涉足企业培训和相关技术直播并和“四维口袋”合作了几次技术直播并荣获了2022 KVP最具价值技术专家的技术奖项。