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

建设网站和ipv4和ipv6什么关系即墨公司做网站

建设网站和ipv4和ipv6什么关系,即墨公司做网站,河北seo搜索引擎优化,wordpress更改了数据库密码Nacos客户端实例注册源码分析 实例客户端注册入口 流程图#xff1a; 实际上我们在真实的生产环境中#xff0c;我们要让某一个服务注册到Nacos中#xff0c;我们首先要引入一个依赖#xff1a; dependencygroupIdcom.alibaba.cloud/groupId 实际上我们在真实的生产环境中我们要让某一个服务注册到Nacos中我们首先要引入一个依赖 dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId /dependency在引入这个依赖以后我们要找到SpringBoot自动装配文件META-INF/spring.factories文件 然后再通过SpingBoot的自动装配首先找到来加载EnableAutoConfiguration对应的类然后这里我们就能看见很多Nacos相关的内容那我们怎么能知道这个服务在注册的时候具体走的时候哪一个其实一般这种文件我们都会找“Auto”关键子的文件来进行查看然后我们现在要了解的是客户端的注册所以我们要找“NacosServiceRegistryAutoConfiguration”。 然后在当前这个类中会有很多的Bean组件这些都是Spring容器启动时候自动注入的一般情况下可能我们会看一下每一个Bean组件初始化具体干了什么但是实际上这里最核心的是“NacosAutoServiceRegistration” /*** author xiaojing* author a hrefmailto:mercyblitzgmail.comMercy/a*/ Configuration(proxyBeanMethods false) EnableConfigurationProperties ConditionalOnNacosDiscoveryEnabled ConditionalOnProperty(value spring.cloud.service-registry.auto-registration.enabled,matchIfMissing true) AutoConfigureAfter({ AutoServiceRegistrationConfiguration.class,AutoServiceRegistrationAutoConfiguration.class,NacosDiscoveryAutoConfiguration.class }) public class NacosServiceRegistryAutoConfiguration {Beanpublic NacosServiceRegistry nacosServiceRegistry(NacosDiscoveryProperties nacosDiscoveryProperties) {return new NacosServiceRegistry(nacosDiscoveryProperties);}BeanConditionalOnBean(AutoServiceRegistrationProperties.class)public NacosRegistration nacosRegistration(ObjectProviderListNacosRegistrationCustomizer registrationCustomizers,NacosDiscoveryProperties nacosDiscoveryProperties,ApplicationContext context) {return new NacosRegistration(registrationCustomizers.getIfAvailable(),nacosDiscoveryProperties, context);}BeanConditionalOnBean(AutoServiceRegistrationProperties.class)public NacosAutoServiceRegistration nacosAutoServiceRegistration(NacosServiceRegistry registry,AutoServiceRegistrationProperties autoServiceRegistrationProperties,NacosRegistration registration) {return new NacosAutoServiceRegistration(registry,autoServiceRegistrationProperties, registration);}}NacosAutoServiceRegistration ​ 其实这个类就是注册的核心所以我们来看一下它的继承关系 通过这里我们可以清楚的知道 ​ NacosAutoServiceRegistration继承了AbstractAutoServiceRegistration而这个类型实现了ApplicationListener接口所以我们由此得出一般实现ApplicationListener接口的类型都会实现一个方法onApplicationEvent这个方法会在项目启动的时候触发 public void onApplicationEvent(WebServerInitializedEvent event) {bind(event); }Deprecated public void bind(WebServerInitializedEvent event) {ApplicationContext context event.getApplicationContext();if (context instanceof ConfigurableWebServerApplicationContext) {if (management.equals(((ConfigurableWebServerApplicationContext) context).getServerNamespace())) {return;}}this.port.compareAndSet(0, event.getWebServer().getPort());this.start(); }然后在start()方法中调用register()方法来注册服务 public void start() {if (!isEnabled()) {if (logger.isDebugEnabled()) {logger.debug(Discovery Lifecycle disabled. Not starting);}return;}// only initialize if nonSecurePort is greater than 0 and it isnt already running// because of containerPortInitializer belowif (!this.running.get()) {this.context.publishEvent(new InstancePreRegisteredEvent(this, getRegistration()));register();if (shouldRegisterManagement()) {registerManagement();}this.context.publishEvent(new InstanceRegisteredEvent(this, getConfiguration()));this.running.compareAndSet(false, true);}}serviceRegistry.register ​ 分析到这里我们已经知道了真实服务注册的入口和具体调用那个方法来注册那我们再来分析一下register这个方法 protected void register() {this.serviceRegistry.register(getRegistration()); }但是这里要注意serviceRegistry实际上是一个接口所以我们来看一下它的具体实现类NacosServiceRegistry: 找到这个实现类然后我们来查看register方法到这里其实大家应该已经明白了因为这里调用了我们上节课讲过的registerInstance注册实例方法 Override public void register(Registration registration) {if (StringUtils.isEmpty(registration.getServiceId())) {log.warn(No service to register for nacos client...);return;}NamingService namingService namingService();String serviceId registration.getServiceId();String group nacosDiscoveryProperties.getGroup();//构建instance实例Instance instance getNacosInstanceFromRegistration(registration);try {//向服务端注册此服务namingService.registerInstance(serviceId, group, instance);log.info(nacos registry, {} {} {}:{} register finished, group, serviceId,instance.getIp(), instance.getPort());}catch (Exception e) {log.error(nacos registry, {} register failed...{},, serviceId,registration.toString(), e);// rethrow a RuntimeException if the registration is failed.// issue : https://github.com/alibaba/spring-cloud-alibaba/issues/1132rethrowRuntimeException(e);} }调用接口 ​ 其实到这里大家应该已经明白Nacos客户端的服务注册过程了但是其实再给大家补充一点就是其实注册本身就是访问了Nacos提供的一个接口我们可以在官网上看到 那我们可以通过deBug来看一下在NacosServiceRegistry中的register方法中在注册实例方法中打断点 然后在NamingService的实现类NacosNamingService中registerInstance方法中打断点 然后进入到这个registerService方法中进行查看就会发现这里就会把实例信息放到散列表中然后调用reqApi方法来发送请求访问接口/nacos/v1/ns/instance 总结
http://www.hkea.cn/news/14454751/

相关文章:

  • 怎么做网站的步骤游戏开发可以自学吗
  • 建个网站用多少钱工业设计公司属于什么行业
  • 网站推广推广网站的线下推广怎么做的
  • 服务器出租网站做个电商平台需要哪些步骤
  • 如何做盗版视频网站怎么自己制作网站
  • 查询公司的网站备案信息215做网站
  • 前端网站开发教程电商网站建设功能需求
  • 青鸟网站开发实例seo人才招聘
  • 为什么找不到做网站的软件内蒙古互联网公司哪里最多
  • 做网站违反广告法手机网站建设哪家有
  • 合肥地区网站制作网站开发与设计总结
  • 区块链网站开发费用wordpress采集自动伪原创
  • 赤峰市哪里做网站陕西一建2022停考
  • 吉林电商网站建设公司电话nginx wordpress 403
  • 广告建设网站中国商务服务网
  • 企业网站酷站外贸仿牌网站建设
  • 优秀作文大全网站百度首页 百度
  • 昆明怎样优化网站云虚拟主机怎么做2个网站
  • 常州网站建设公司如何成都高薪seo
  • 江西企业网站建设公司广西自治区集约化网站建设要求
  • 各大网站的域名是什么原因做网站建设涉及哪些算法
  • 郑州好的网站建设公司wordpress后台系统
  • 某鲜花网站的数据库建设十个必备的视频制作app
  • 建设 网站石青淘宝推广工具
  • 网站开发软件 连接SQL数据库写网页用什么语言
  • 商务网站建设简答题及答案网站关键词库如何做
  • 重庆家政网站建设asp网页制作
  • 哈尔滨网站优化指导微信电商平台有哪些
  • 简洁手机购物网站会员中心模板关于营销的网站有哪些内容
  • 自己怎么建网站网络营销的推广策略