当前位置: 首页 > news >正文

保定网站设计公司排名友情链接官网

保定网站设计公司排名,友情链接官网,做的好的h游戏下载网站,京东网站建设策划书目录 Nacos介绍注册中心架构面临问题源码分析实例注册-接口实例注册-入口实例注册-创建一个(Nacos)Service实例注册-注册(Nacos)Service Nacos 介绍 Dynamic Naming and Configuration Service 动态的命名和配置服务 反正可以实现注册中心的功能 注册中心架构 服务提供者 …

目录

  • Nacos
    • 介绍
    • 注册中心架构
    • 面临问题
    • 源码分析
      • 实例注册-接口
      • 实例注册-入口
      • 实例注册-创建一个(Nacos)Service
      • 实例注册-注册(Nacos)Service

Nacos

介绍

Dynamic Naming and Configuration Service
动态的命名和配置服务

反正可以实现注册中心的功能

注册中心架构

服务提供者
服务消费者
注册中心

  1. 提供者告知注册中心可以提供服务的地址
  2. 注册中心注册服务
  3. 消费者拉取服务列表

面临问题

  1. 提供者宕机怎么处理
    Nacos client 中会启动一个线程上报心跳,5s一次
    默认配置下 15s 没有上报心跳则 instance 健康状态切换为 false
    30s 没有上报则直接删除 instance

源码分析

实例注册-接口

Nacos 使用 Java 代码编写其实就是用的 Spring boot
查看官网 Open-API 注册实例接口是:@PostMapping /nacos/v1/ns/instance
在这里插入图片描述

实例注册-入口

com.alibaba.nacos.naming.controllers.InstanceController#register//读取 request 传输的参数,组装成 instance
final Instance instance = parseInstance(request);
serviceManager.registerInstance(namespaceId, serviceName, instance);
return "ok"; 
registerInstance(namespaceId, serviceName, instance)://如果缓存中不存在 则创建空的Service
createEmptyService(namespaceId, serviceName, instance.isEphemeral());
//从缓存中读取
Service service = getService(namespaceId, serviceName);
//注册实例
addInstance(namespaceId, serviceName, instance.isEphemeral(), instance);

实例注册-创建一个(Nacos)Service

createEmptyService(namespaceId, serviceName, instance.isEphemeral()):
createServiceIfAbsent(namespaceId, serviceName, local, null)://根据 namespaceId, serviceName 去缓存中查询一下是否已经有 service 
Service service = getService(namespaceId, serviceName);
if (service == null) {//没有则注册service = new Service();//省略属性赋值...putServiceAndInit(service);//这个local就是是否临时的意思 是临时就返回 true 默认就是trueif (!local) {addOrReplaceService(service);}
}
putServiceAndInit(service)://Map<String, Map<String, Service>>
//key 为 namespaceId; value 为 Map<service.getName(), service>
putService(service);
//从缓存中获取
service = getService(service.getNamespaceId(), service.getName());
//注册一个 心跳检查任务
//维护一个 Map<String, Cluster> clusterMap 执行所有的 value.init()
service.init();
//注册对一个Servce 发生变动的监听
//最后一个参数是 是否是临时节点
String key = KeyBuilder.buildInstanceListKey(namespaceId(), name(), true);
consistencyService.listen(key , service);
key = KeyBuilder.buildInstanceListKey(namespaceId(), name(), false);
consistencyService.listen(key , service);

实例注册-注册(Nacos)Service

addInstance(namespaceId, serviceName, instance.isEphemeral(), instance):
http://www.mnyf.cn/news/34201.html

相关文章:

  • 微网站用什么软件做app优化建议
  • 青岛网站关键词推广外贸网站制作公司
  • 做网站的软件淘汰史宁波百度关键词推广
  • 做公司网站要注意什么阿里云域名注册入口官网
  • 一个网站建设的课程设计书seo基础优化包括哪些内容
  • 怎么对一个网站做优化全国今日新增疫情
  • 企业网站开发时间营销软件站
  • 建个站的免费网站能上百度吗百度竞价外包
  • 广州seo推广公司seo云优化如何
  • 做网站用动易siteweaver cms还是phpcms网店推广营销方案
  • 网站上关键词的推广怎么做关键字
  • 建立网站原理最新推广注册app拿佣金
  • wordpress 弹窗 网页百度seo搜索
  • 网站建设 联系我们百度新闻首页
  • 12个优秀的平面设计素材网站b站怎么推广自己的视频
  • 陕西营销型手机网站建设福州seo公司排名
  • 做网站的公司合肥网络营销推广的方法有哪些
  • 建立简单网站google下载安装
  • 做豆腐交流经验的网站十大经典口碑营销案例
  • 扶沟县网站开发百度网址大全下载到桌面
  • 定制网站开发流程怎么样优化网站seo
  • 网站开发建设合同百度24小时人工电话
  • 泉州模板自助建站百度点击器找名风
  • 比较容易做的网站百度站长提交网址
  • 怎样找人做网站岳阳seo公司
  • 举报网站怎么做百度网站禁止访问怎么解除
  • 云南 房地产网站建设长沙岳麓区
  • Php做网站要求优质的seo快速排名优化
  • 戚墅堰做网站杭州网站推广平台
  • 网站建设与管理专业自我评价上海公布最新情况