最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

來看看這個AutoServiceRegistrationAutoConfiguration配置類:

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

這個NacosServiceRegistryAutoConfiguration 配置類就定義了上面SpringCloud的AutoServiceRegistration接口的實(shí)現(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接口的實(shí)現(xiàn)類
	**/
	@Bean
	@ConditionalOnBean(AutoServiceRegistrationProperties.class)
	public NacosAutoServiceRegistration nacosAutoServiceRegistration(
			NacosServiceRegistry registry,
			AutoServiceRegistrationProperties autoServiceRegistrationProperties,
			NacosRegistration registration) {
		return new NacosAutoServiceRegistration(registry,
				autoServiceRegistrationProperties, registration);
	}

}

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

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

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

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

相關(guān)文章

  • Spring aop失效的幾種解決方案

    Spring aop失效的幾種解決方案

    這篇文章主要介紹了Spring aop失效的幾種解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • 解決mybatis三表連接查詢數(shù)據(jù)重復(fù)的問題

    解決mybatis三表連接查詢數(shù)據(jù)重復(fù)的問題

    這篇文章主要介紹了解決mybatis三表連接查詢數(shù)據(jù)重復(fù)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Mybatis中TypeAliasRegistry的作用及使用方法

    Mybatis中TypeAliasRegistry的作用及使用方法

    Mybatis中的TypeAliasRegistry是一個類型別名注冊表,它的作用是為Java類型建立別名,使得在Mybatis配置文件中可以使用別名來代替完整的Java類型名。使用TypeAliasRegistry可以簡化Mybatis配置文件的編寫,提高配置文件的可讀性和可維護(hù)性
    2023-05-05
  • 使用Java校驗(yàn)SQL語句的合法性五種解決方案

    使用Java校驗(yàn)SQL語句的合法性五種解決方案

    這篇文章主要介紹了如何用java校驗(yàn)SQL語句的合法性(提供五種解決方案),使用JDBC?API和JSqlParser庫、正則表達(dá)式、ANTLR解析器生成器或Apache?Calcite庫都可以實(shí)現(xiàn)校驗(yàn)SQL語句的合法性,需要的朋友可以參考下
    2023-04-04
  • SpringBoot整合flyway實(shí)現(xiàn)步驟解析

    SpringBoot整合flyway實(shí)現(xiàn)步驟解析

    這篇文章主要介紹了SpringBoot整合flyway實(shí)現(xiàn)步驟解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • 基于Mybatis Plus實(shí)現(xiàn)多表分頁查詢的示例代碼

    基于Mybatis Plus實(shí)現(xiàn)多表分頁查詢的示例代碼

    這篇文章主要介紹了基于Mybatis Plus實(shí)現(xiàn)多表分頁查詢的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Java并發(fā)編程中使用Executors類創(chuàng)建和管理線程的用法

    Java并發(fā)編程中使用Executors類創(chuàng)建和管理線程的用法

    這篇文章主要介紹了Java并發(fā)編程中使用Executors類創(chuàng)建和管理線程的用法,文中舉了用其啟動線程和設(shè)置線程優(yōu)先級的例子,需要的朋友可以參考下
    2016-03-03
  • SpringBoot應(yīng)用線上重啟腳本的命令詳解

    SpringBoot應(yīng)用線上重啟腳本的命令詳解

    這篇文章主要介紹了SpringBoot應(yīng)用線上重啟腳本,通過查找應(yīng)用進(jìn)程PID,殺死應(yīng)用進(jìn)程PID,運(yùn)行啟動腳本,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • Struts2開發(fā)環(huán)境搭建 附簡單登錄功能實(shí)例

    Struts2開發(fā)環(huán)境搭建 附簡單登錄功能實(shí)例

    這篇文章主要介紹了Struts2開發(fā)環(huán)境搭建,為大家分享一個簡單登錄功能實(shí)例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • MyBatis-Plus詳解(環(huán)境搭建、關(guān)聯(lián)操作)

    MyBatis-Plus詳解(環(huán)境搭建、關(guān)聯(lián)操作)

    MyBatis-Plus 是一個 MyBatis 的增強(qiáng)工具,在 MyBatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡化開發(fā)、提高效率而生,今天通過本文給大家介紹MyBatis-Plus環(huán)境搭建及關(guān)聯(lián)操作,需要的朋友參考下吧
    2022-09-09

最新評論

大宁县| 开阳县| 永和县| 隆德县| 长葛市| 广州市| 习水县| 景德镇市| 孟村| 乃东县| 崇信县| 金川县| 镇巴县| 甘孜县| 霍山县| 外汇| 马鞍山市| 诸城市| 安庆市| 恭城| 甘泉县| 年辖:市辖区| 香港 | 明光市| 垣曲县| 横峰县| 清新县| 射阳县| 贡觉县| 常德市| 巴彦县| 岗巴县| 枣强县| 九台市| 甘孜| 溧水县| 庐江县| 临沭县| 兴安县| 喜德县| 宁夏|