欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringCloud?服務注冊中的nacos實現(xiàn)過程

 更新時間:2022年03月06日 14:48:57   作者:T.Y.Bao  
這篇文章主要介紹了SpringCloud?服務注冊之nacos實現(xiàn)過程,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

如下圖,org.springframework.cloud.spring-cloud-commons包下定義了一系列接口,其中就包括serviceregistry的系列規(guī)范,并通過SPI機制去調(diào)用接口實現(xiàn)。

在該包的META-INF/spring.factories文件中,可以找到EnableAutoConfiguration.class為key的value中有AutoServiceRegistrationAutoConfiguration.class這一項。

來看看這個AutoServiceRegistrationAutoConfiguration配置類:

對應的,在com.alibaba.cloud.nacos包下(位于spring-cloud-starter-nacos-discovery jar包中)的META-INF/spring.fatories有個nacos服務注冊配置類,如下圖:

這個NacosServiceRegistryAutoConfiguration 配置類就定義了上面SpringCloud的AutoServiceRegistration接口的實現(xiàn)類:

package com.alibaba.cloud.nacos.registry;

...

/**
 * @author xiaojing
 * @author <a href="mailto:mercyblitz@gmail.com" rel="external nofollow" >Mercy</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 {

	@Bean
	public NacosServiceRegistry nacosServiceRegistry(
			NacosDiscoveryProperties nacosDiscoveryProperties) {
		return new NacosServiceRegistry(nacosDiscoveryProperties);
	}

	@Bean
	@ConditionalOnBean(AutoServiceRegistrationProperties.class)
	public NacosRegistration nacosRegistration(
			ObjectProvider<List<NacosRegistrationCustomizer>> registrationCustomizers,
			NacosDiscoveryProperties nacosDiscoveryProperties,
			ApplicationContext context) {
		return new NacosRegistration(registrationCustomizers.getIfAvailable(),
				nacosDiscoveryProperties, context);
	}
	/**
	 ** 這里,這個NacosAutoServiceRegistration就是AutoServiceRegistration接口的實現(xiàn)類
	**/
	@Bean
	@ConditionalOnBean(AutoServiceRegistrationProperties.class)
	public NacosAutoServiceRegistration nacosAutoServiceRegistration(
			NacosServiceRegistry registry,
			AutoServiceRegistrationProperties autoServiceRegistrationProperties,
			NacosRegistration registration) {
		return new NacosAutoServiceRegistration(registry,
				autoServiceRegistrationProperties, registration);
	}

}

NacosAutoServiceRegistration中的register()方法開始注冊服務,整個調(diào)用流程為:

繼續(xù)追根溯源,這個registry()方法是在AbstractAutoServiceRegistration implements ApplicationListener<WebServerInitializedEvent>類的onApplicationEvent()方法(onApplicationEvent->bind->start->registey) 。
調(diào)用的心跳默認5秒一次,具體可參考BeatReactor類中的buildBeatInfo()方法,其中有個beatInfo.setPeriod(instance.getInstanceHeartBeatInterval());這里獲取到一個常量5s。
更加詳細的流程可以參考:閱讀Naocs源碼

另外上面最后一步的NamingClientProxy接口的實現(xiàn)如下,利用到了委托模式(delegate)也叫代理模式?:

到此這篇關于SpringCloud 服務注冊中的nacos實現(xiàn)過程的文章就介紹到這了,更多相關SpringCloud 服務注冊nacos內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java多線程繼承Thread類詳解

    Java多線程繼承Thread類詳解

    Java多線程的兩種實現(xiàn)方式:繼承Thread類 & 實現(xiàn)Runable接口,今天我們來學習下繼承Thread類,希望大家能夠喜歡
    2016-06-06
  • JVM原理之完整的一次GC流程解讀

    JVM原理之完整的一次GC流程解讀

    這篇文章主要介紹了JVM原理之完整的一次GC流程解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Springboot消除switch-case過程解析

    Springboot消除switch-case過程解析

    這篇文章主要介紹了Springboot消除switch-case過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • myeclipse開發(fā)servlet_動力節(jié)點Java學院整理

    myeclipse開發(fā)servlet_動力節(jié)點Java學院整理

    MyEclipse,是在eclipse基礎上加上自己的插件開發(fā)而成的功能強大的企業(yè)級集成開發(fā)環(huán)境,主要用于Java、Java EE以及移動應用的開發(fā)。下面這篇文章主要給大家介紹了關于myeclipse開發(fā)servlet的相關資料,需要的朋友可以參考下。
    2017-07-07
  • Java中ByteArrayInputStream和ByteArrayOutputStream用法詳解

    Java中ByteArrayInputStream和ByteArrayOutputStream用法詳解

    這篇文章主要介紹了Java中ByteArrayInputStream和ByteArrayOutputStream用法詳解,?ByteArrayInputStream?的內(nèi)部額外的定義了一個計數(shù)器,它被用來跟蹤?read()?方法要讀取的下一個字節(jié)
    2022-06-06
  • springboot?如何添加webapp文件夾

    springboot?如何添加webapp文件夾

    這篇文章主要介紹了springboot?如何添加webapp文件夾,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java 反射機制

    Java 反射機制

    這篇文章簡要的說明了Java的反射機制,Java的反射是框架設計的靈魂,本文通過例子能看的更加清晰的理解
    2021-06-06
  • SpringBoot整合Xxl-job實現(xiàn)定時任務的全過程

    SpringBoot整合Xxl-job實現(xiàn)定時任務的全過程

    XXL-JOB是一個分布式任務調(diào)度平臺,其核心設計目標是開發(fā)迅速、學習簡單、輕量級、易擴展,下面這篇文章主要給大家介紹了關于SpringBoot整合Xxl-job實現(xiàn)定時任務的相關資料,需要的朋友可以參考下
    2022-01-01
  • java實現(xiàn)ThreadLocal線程局部變量的實現(xiàn)

    java實現(xiàn)ThreadLocal線程局部變量的實現(xiàn)

    本文主要介紹了java實現(xiàn)ThreadLocal線程局部變量的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • Spring事件監(jiān)聽機制ApplicationEvent方式

    Spring事件監(jiān)聽機制ApplicationEvent方式

    這篇文章主要介紹了Spring事件監(jiān)聽機制ApplicationEvent方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評論