摘要:客戶端鏈接鏈接初始化根據指定的配置名稱獲取對應的配置項根據指定的配置名稱獲取對應的配置項新增或者修改指定的配置刪除指定的配置配置初始化和監聽加載配置啟動監聽線程對某一個配置進行監聽獲取事件變化類型獲取發生變化的獲取變化后的
UTF-8 UTF-8 1.8 1.8 1.8 com.coreos jetcd-core 0.0.2 org.slf4j slf4j-log4j12 1.7.25 log4j log4j 1.2.17 org.slf4j slf4j-api 1.7.25 org.slf4j slf4j-nop 1.7.25 org.slf4j slf4j-simple 1.7.5 package com.gemdale.iot; import com.coreos.jetcd.Client; import com.coreos.jetcd.KV; import com.coreos.jetcd.Watch; import com.coreos.jetcd.data.ByteSequence; import com.coreos.jetcd.data.KeyValue; import java.util.List; public class EtcdUtil1 { // etcd客戶端鏈接 private static Client client = null; private static String IPPORT = null; static { IPPORT = System.getProperty("IPPORT", "http://127.0.0.1:11000"); getEtcdClient(); } // 鏈接初始化 public static Client getEtcdClient() { if (client == null) { synchronized (EtcdUtil1.class) { client = Client.builder().lazyInitialization(false).endpoints(IPPORT).build(); } } return client; } /** * 根據指定的配置名稱獲取對應的value * * @param key * 配置項 * @return * @throws Exception */ public static String getEtcdValueByKey(String key) throws Exception { KeyValue kv = getEtcdKeyValueByKey(key); if (kv != null) { return kv.getValue().toStringUtf8(); } else { return null; } } /** * 根據指定的配置名稱獲取對應的keyvalue * * @param key * 配置項 * @return * @throws Exception */ public static KeyValue getEtcdKeyValueByKey(String key) throws Exception { client.getKVClient().get(ByteSequence.fromString(key)).get().getKvs(); if (kvs.size() > 0) { return kvs.get(0); } else { return null; } } /** * 新增或者修改指定的配置 * * @param key * @param value * @return */ public static void putEtcdValueByKey(String key, String value) throws Exception { client.getKVClient().put(ByteSequence.fromString(key), ByteSequence.fromBytes(value.getBytes("utf-8"))); } /** * 刪除指定的配置 * * @param key * @return */ public static void deleteEtcdValueByKey(String key) { client.getKVClient().delete(ByteSequence.fromString(key)); } // V3 api配置初始化和監聽 public void init() { try { // 加載配置 getConfig(client.getKVClient().get(ByteSequence.fromString("test")).get().getKvs()); // 啟動監聽線程 new Thread(() -> { // 對某一個配置進行監聽 Watch.Watcher watcher = client.getWatchClient().watch(ByteSequence.fromString("etcd_key")); try { while (true) { watcher.listen().getEvents().stream().forEach(watchEvent -> { KeyValue kv = watchEvent.getKeyValue(); // 獲取事件變化類型 System.out.println(watchEvent.getEventType()); // 獲取發生變化的key System.out.println(kv.getKey().toStringUtf8()); // 獲取變化后的value String afterChangeValue = kv.getValue().toStringUtf8(); }); } } catch (InterruptedException e) { e.printStackTrace(); } }).start(); } catch (Exception e) { e.printStackTrace(); } } private String getConfig(List org.apache.maven.plugins maven-assembly-plugin 2.5.5 com.xxg.Main jar-with-dependencies kvs) { if (kvs.size() > 0) { String config = kvs.get(0).getValue().toStringUtf8(); System.out.println("etcd "s config "s configValue is :" + config); return config; } else { return null; } } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/74840.html
摘要:運行在上的微服務服務發現與注冊在上一節中,我們學習了如何在上構建一個風格的微服務。接下來,我們將學習如何把運行在上的微服務暴露在服務中心上,以便客戶端的調用。資源服務在關閉時需要將服務實例在服務中心進行注銷操作。響應用戶的終止。 運行在 Docker 上的微服務 - 服務發現與注冊 tags: Docker Microservice RESTful etcd Author: And...
摘要:的服務治理平臺發源于早期的個人項目。客戶端發現模式要求客戶端負責查詢注冊中心,獲取服務提供者的列表信息,使用負載均衡算法選擇一個合適的服務提供者,發起接口調用請求。系統和系統之間,少不了數據的互聯互通。隨著微服務的流行,一個系統內的不同應用進行互聯互通也是常態。 PowerDotNet的服務治理平臺發源于早期的個人項目Power.Apix。這個項目借鑒了工作過的公司的服務治理方案,站在...
摘要:是一個相對比較新的微服務框架,年才推出的版本雖然時間最短但是相比等框架提供的全套的分布式系統解決方案。提供線程池不同的服務走不同的線程池,實現了不同服務調用的隔離,避免了服務器雪崩的問題。通過互相注冊的方式來進行消息同步和保證高可用。 Spring Cloud 是一個相對比較新的微服務框架,...
摘要:容器云架構方案。容器云架構方案基于容器技術,運維技術團隊開發了五阿哥網站的容器云平臺。多云對接私有云和公有云進行統一托管,包含網絡區域配置,實例開通及的環境初始化配置等。技術選型及實踐鏡像標準眾所周知,的鏡像是分層的。 前言 五阿哥鋼鐵電商平臺(www.wuage.com)是由鋼鐵行業第一的中國五礦與互聯網第一的阿里巴巴聯手打造,并充分運用雙方股東優勢資源,即:阿里巴巴在大數據、電商運...
摘要:谷歌思科華為等等均是的貢獻成員。其中谷歌云平臺和等大型云提供商成功在生產環境中使用了。它為良好穩定的生產部署提供了一個良好的起點。預先準備在繼續之前,我們需要準備一個谷歌云平臺的賬號免費的應該足夠了。我們將為部署配置。 本文將帶你充分了解Etcd的工作原理,演示如何用Kubernetes建立并運行etcd集群,如何與Etcd交互,如何在Etcd中設置和檢索值,如何配置高可用等等。 sh...
閱讀 1689·2023-04-25 20:16
閱讀 3851·2021-10-09 09:54
閱讀 2702·2021-09-04 16:40
閱讀 2521·2019-08-30 15:55
閱讀 837·2019-08-29 12:37
閱讀 2741·2019-08-26 13:55
閱讀 2911·2019-08-26 11:42
閱讀 3152·2019-08-23 18:26