日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Nacos(十二)之Java SDK

發(fā)布時間:2023/12/3 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nacos(十二)之Java SDK 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(zhuǎn)載自??Java SDK

概述部分

Maven 坐標

<dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifactId> <version>${version}</version> </dependency>

配置管理

獲取配置

描述

用于服務(wù)啟動的時候從 Nacos 獲取配置。

public String getConfig(String dataId, String group, long timeoutMs) throws NacosException

請求參數(shù)

參數(shù)名參數(shù)類型描述
dataIdstring配置 ID,采用類似 package.class(如com.taobao.tc.refund.log.level)的命名規(guī)則保證全局唯一性,class 部分建議是配置的業(yè)務(wù)含義。全部字符小寫。只允許英文字符和 4 種特殊字符("."、":"、"-"、"_"),不超過 256 字節(jié)。
groupstring配置分組,建議填寫產(chǎn)品名:模塊名(Nacos:Test)保證唯一性,只允許英文字符和4種特殊字符("."、":"、"-"、"_"),不超過128字節(jié)。
timeoutlong讀取配置超時時間,單位 ms,推薦值 3000。

返回值

參數(shù)類型描述
string配置值

請求示例

try {String serverAddr = "{serverAddr}";String dataId = "{dataId}";String group = "{group}";Properties properties = new Properties();properties.put("serverAddr", serverAddr);ConfigService configService = NacosFactory.createConfigService(properties);String content = configService.getConfig(dataId, group, 5000);System.out.println(content); } catch (NacosException e) {// TODO Auto-generated catch blocke.printStackTrace(); }

異常說明

讀取配置超時或網(wǎng)絡(luò)異常,拋出 NacosException 異常。

監(jiān)聽配置

描述

如果希望 Nacos 推送配置變更,可以使用 Nacos 動態(tài)監(jiān)聽配置接口來實現(xiàn)。

public void addListener(String dataId, String group, Listener listener)

請求參數(shù)

參數(shù)名

參數(shù)類型

描述

dataId

string

配置 ID,采用類似 package.class(如com.taobao.tc.refund.log.level)的命名規(guī)則保證全局唯一性,class 部分建議是配置的業(yè)務(wù)含義。 全部字符小寫。只允許英文字符和 4 種特殊字符("."、":"、"-"、"_")。不超過 256 字節(jié)。

group

string

配置分組,建議填寫產(chǎn)品名:模塊名(如 Nacos:Test)保證唯一性。 只允許英文字符和4種特殊字符("."、":"、"-"、"_"),不超過128字節(jié)。

listener

Listener

監(jiān)聽器,配置變更進入監(jiān)聽器的回調(diào)函數(shù)。

返回值

參數(shù)類型描述
string配置值,初始化或者配置變更的時候通過回調(diào)函數(shù)返回該值。

請求示例

String serverAddr = "{serverAddr}"; String dataId = "{dataId}"; String group = "{group}"; Properties properties = new Properties(); properties.put("serverAddr", serverAddr); ConfigService configService = NacosFactory.createConfigService(properties); String content = configService.getConfig(dataId, group, 5000); System.out.println(content); configService.addListener(dataId, group, new Listener() {@Overridepublic void receiveConfigInfo(String configInfo) {System.out.println("recieve1:" + configInfo);}@Overridepublic Executor getExecutor() {return null;} });// 測試讓主線程不退出,因為訂閱配置是守護線程,主線程退出守護線程就會退出。 正式代碼中無需下面代碼 while (true) {try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();} }

刪除監(jiān)聽

描述

取消監(jiān)聽配置,取消監(jiān)聽后配置不會再推送。

public void removeListener(String dataId, String group, Listener listener)

請求參數(shù)

參數(shù)名參數(shù)類型描述
dataIdstring配置 ID,采用類似 package.class(如com.taobao.tc.refund.log.level)的命名規(guī)則保證全局唯一性,class 部分建議是配置的業(yè)務(wù)含義。全部字符小寫。只允許英文字符和 4 種特殊字符("."、":"、"-"、"_"),不超過 256 字節(jié)。
groupstring配置分組
listenerConfigChangeListenerAdapter監(jiān)聽器,配置變更進入監(jiān)聽器的回調(diào)函數(shù)。

使用示例

String serverAddr = "{serverAddr}"; String dataId = "{dataId}"; String group = "{group}"; Properties properties = new Properties(); properties.put("serverAddr", serverAddr); ConfigService configService = NacosFactory.createConfigService(properties); configService.removeListener(dataId, group, yourListener);

發(fā)布配置

描述

用于通過程序自動發(fā)布 Nacos 配置,以便通過自動化手段降低運維成本。

__注意:__創(chuàng)建和修改配置時使用的同一個發(fā)布接口,當配置不存在時會創(chuàng)建配置,當配置已存在時會更新配置。

public boolean publishConfig(String dataId, String group, String content) throws NacosException;@Since 1.4.1 public boolean publishConfig(String dataId, String group, String content, String type) throws NacosException;

請求參數(shù)

參數(shù)名參數(shù)類型描述
dataIdstring配置 ID,采用類似?package.class(如?com.taobao.tc.refund.log.level)的命名規(guī)則保證全局唯一性。建議根據(jù)配置的業(yè)務(wù)含義來定義 class 部分。全部字符均為小寫。只允許英文字符和 4 種特殊字符(“.”、“:”、“-”、“_”),不超過 256 字節(jié)。
groupstring配置分組,建議填寫產(chǎn)品名:模塊名(如 Nacos:Test)來保證唯一性。只允許英文字符和 4 種特殊字符(“.”、“:”、“-”、“_”),不超過 128 字節(jié)。
contentstring配置內(nèi)容,不超過 100K 字節(jié)。
typestring@Since 1.4.1. 配置類型,見?com.alibaba.nacos.api.config.ConfigType,默認為TEXT

返回參數(shù)

參數(shù)類型描述
boolean是否發(fā)布成功

請求示例

try {// 初始化配置服務(wù),控制臺通過示例代碼自動獲取下面參數(shù)String serverAddr = "{serverAddr}";String dataId = "{dataId}";String group = "{group}";Properties properties = new Properties();properties.put("serverAddr", serverAddr);ConfigService configService = NacosFactory.createConfigService(properties);boolean isPublishOk = configService.publishConfig(dataId, group, "content");System.out.println(isPublishOk); } catch (NacosException e) {// TODO Auto-generated catch blocke.printStackTrace(); }

異常說明

讀取配置超時或網(wǎng)絡(luò)異常,拋出 NacosException 異常。

刪除配置

描述

用于通過程序自動刪除 Nacos 配置,以便通過自動化手段降低運維成本。

注意:?當配置已存在時會刪除該配置,當配置不存在時會直接返回成功消息。

public boolean removeConfig(String dataId, String group) throws NacosException

請求參數(shù)

參數(shù)名參數(shù)類型描述
dataIdstring配置 ID
groupstring配置分組

返回參數(shù)

參數(shù)類型描述
boolean是否刪除成功

請求示例

try {// 初始化配置服務(wù),控制臺通過示例代碼自動獲取下面參數(shù)String serverAddr = "{serverAddr}";String dataId = "{dataId}";String group = "{group}";Properties properties = new Properties();properties.put("serverAddr", serverAddr);ConfigService configService = NacosFactory.createConfigService(properties);boolean isRemoveOk = configService.removeConfig(dataId, group);System.out.println(isRemoveOk); } catch (NacosException e) {// TODO Auto-generated catch blocke.printStackTrace(); }

異常說明

讀取配置超時或網(wǎng)絡(luò)異常,拋出 NacosException 異常。

服務(wù)發(fā)現(xiàn)SDK

注冊實例

描述注冊一個實例到服務(wù)。

void registerInstance(String serviceName, String ip, int port) throws NacosException;void registerInstance(String serviceName, String ip, int port, String clusterName) throws NacosException;void registerInstance(String serviceName, Instance instance) throws NacosException;

請求參數(shù)

名稱類型描述
serviceName字符串服務(wù)名
ip字符串服務(wù)實例IP
portint服務(wù)實例port
clusterName字符串集群名
instance參見代碼注釋實例屬性

返回參數(shù)

請求示例

NamingService naming = NamingFactory.createNamingService(System.getProperty("serveAddr")); naming.registerInstance("nacos.test.3", "11.11.11.11", 8888, "TEST1");Instance instance = new Instance(); instance.setIp("55.55.55.55"); instance.setPort(9999); instance.setHealthy(false); instance.setWeight(2.0); Map<String, String> instanceMeta = new HashMap<>(); instanceMeta.put("site", "et2"); instance.setMetadata(instanceMeta);Service service = new Service("nacos.test.4"); service.setApp("nacos-naming"); service.sethealthCheckMode("server"); service.setEnableHealthCheck(true); service.setProtectThreshold(0.8F); service.setGroup("CNCF"); Map<String, String> serviceMeta = new HashMap<>(); serviceMeta.put("symmetricCall", "true"); service.setMetadata(serviceMeta); instance.setService(service);Cluster cluster = new Cluster(); cluster.setName("TEST5"); AbstractHealthChecker.Http healthChecker = new AbstractHealthChecker.Http(); healthChecker.setExpectedResponseCode(400); healthChecker.setCurlHost("USer-Agent|Nacos"); healthChecker.setCurlPath("/xxx.html"); cluster.setHealthChecker(healthChecker); Map<String, String> clusterMeta = new HashMap<>(); clusterMeta.put("xxx", "yyyy"); cluster.setMetadata(clusterMeta);instance.setCluster(cluster);naming.registerInstance("nacos.test.4", instance);

注銷實例

描述

刪除服務(wù)下的一個實例。

void deregisterInstance(String serviceName, String ip, int port) throws NacosException;void deregisterInstance(String serviceName, String ip, int port, String clusterName) throws NacosException;

請求參數(shù)

名稱類型描述
serviceName字符串服務(wù)名
ip字符串服務(wù)實例IP
portint服務(wù)實例port
clusterName字符串集群名

返回參數(shù)

請求示例

NamingService naming = NamingFactory.createNamingService(System.getProperty("serveAddr")); naming.deregisterInstance("nacos.test.3", "11.11.11.11", 8888, "DEFAULT");

獲取全部實例

描述

獲取服務(wù)下的所有實例。

List<Instance> getAllInstances(String serviceName) throws NacosException;List<Instance> getAllInstances(String serviceName, List<String> clusters) throws NacosException;

請求參數(shù)

名稱類型描述
serviceName字符串服務(wù)名
clustersList集群列表

返回參數(shù)

List?實例列表。

請求示例

NamingService naming = NamingFactory.createNamingService(System.getProperty("serveAddr")); System.out.println(naming.getAllInstances("nacos.test.3"));

獲取健康或不健康實例列表

描述

根據(jù)條件獲取過濾后的實例列表。

List<Instance> selectInstances(String serviceName, boolean healthy) throws NacosException;List<Instance> selectInstances(String serviceName, List<String> clusters, boolean healthy) throws NacosException;

請求參數(shù)

名稱類型描述
serviceName字符串服務(wù)名
clustersList集群列表
healthyboolean是否健康

返回參數(shù)

List?實例列表。

請求示例

NamingService naming = NamingFactory.createNamingService(System.getProperty("serveAddr")); System.out.println(naming.selectInstances("nacos.test.3", true));

獲取一個健康實例

描述

根據(jù)負載均衡算法隨機獲取一個健康實例。

Instance selectOneHealthyInstance(String serviceName) throws NacosException;Instance selectOneHealthyInstance(String serviceName, List<String> clusters) throws NacosException;

請求參數(shù)

名稱類型描述
serviceName字符串服務(wù)名
clustersList集群列表

返回參數(shù)

Instance 實例。

請求示例

NamingService naming = NamingFactory.createNamingService(System.getProperty("serveAddr")); System.out.println(naming.selectOneHealthyInstance("nacos.test.3"));

監(jiān)聽服務(wù)

描述

監(jiān)聽服務(wù)下的實例列表變化。

void subscribe(String serviceName, EventListener listener) throws NacosException;void subscribe(String serviceName, List<String> clusters, EventListener listener) throws NacosException;

請求參數(shù)

名稱類型描述
serviceName字符串服務(wù)名
clustersList集群列表
listenerEventListener回調(diào)listener

返回參數(shù)

請求示例

NamingService naming = NamingFactory.createNamingService(System.getProperty("serveAddr")); naming.subscribe("nacos.test.3", event -> {if (event instanceof NamingEvent) {System.out.println(((NamingEvent) event).getServceName());System.out.println(((NamingEvent) event).getInstances());} });

取消監(jiān)聽服務(wù)

描述

取消監(jiān)聽服務(wù)下的實例列表變化。

void unsubscribe(String serviceName, EventListener listener) throws NacosException;void unsubscribe(String serviceName, List<String> clusters, EventListener listener) throws NacosException;

請求參數(shù)

名稱類型描述
serviceName字符串服務(wù)名
clustersList集群列表
listenerEventListener回調(diào)listener

返回參數(shù)

請求示例

NamingService naming = NamingFactory.createNamingService(System.getProperty("serveAddr")); naming.unsubscribe("nacos.test.3", event -> {});

總結(jié)

以上是生活随笔為你收集整理的Nacos(十二)之Java SDK的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。