zookeeper和eureka一樣是為微服務框架提供服務註冊發現中心功能.
不過zk沒有預設ui介面, 啟動後需要用命令列檢視裡面的註冊資料
啟動zk:
docker run --privileged=true --name zookeeper --publish 2181:2181 -d zookeeper:latest
進入zk命令: 進入docker
zkcli.sh -> ls /
往zk中寫入資料:
/*泛化呼叫dubbo時, 無需匯入介面jar包, 也無需本地實現介面物件, 呼叫方法, 直接將介面名, 別名, 方法名和方法對應引數, 以引數的形式給到dubbo連線物件.這裡需要建立dubbo伺服器(zookeeper)的連線物件, 為了節約資源, 建議在configuration中統一建立,無需在每次傳送dubbo請求時單獨建立
*/
// 引用遠端服務
// 該例項很重量,裡面封裝了所有與註冊中心及服務提供方連線,請快取(建立連線後存入map,不要重複建立連線)
referenceconfig
reference =
newreferenceconfig
();reference.
(new
("dubbo-demo-api-consumer"))
;//設定zookeeper位址
reference.
setregistry
(new
registryconfig
("zookeeper:"))
;// 弱型別介面名
reference.
setinte***ce
("org.apache.dubbo.demo.demoservice");
// 宣告為泛化介面
reference.
setgeneric
("true");
//reference物件還可能有其他方法可以設定引數: timeout時間, version等
// 用org.apache.dubbo.rpc.service.genericservice可以替代所有介面引用
genericservice genericservice = reference.
get();
//.get()方法建立連線, 呼叫一次.get()就建立乙個連線, 同乙個屬性的連線不要多次呼叫, 將genericservice存入map就行了,
//用乙個map可以存多個被呼叫應用的genericservice,用的時候取出來就行了
/*invoke介面傳送方法的規則:
service.$invoke(methodname, arraystring,arrayobject);
methodname是呼叫的類中的方法名
arraystring是等待呼叫的方法的所有引數型別list(string型別)
arrayobject是等待呼叫的方法的所有引數具體的值list(object型別)
*///1.基本型別以及date,list,map等不需要轉換,直接呼叫
object result = genericservice.$invoke
("sayhello"
,new
string
,new
object
);//2.物件⽤map表示pojo引數,如果返回值為pojo也將自動轉成map
mapteacher =
newhashmap
(); teacher.
put(
"id"
,"1");
teacher.
put(
"name"
,"admin");
teacher.
put(
"age"
,"18");
teacher.
put(
"level"
,"3");
teacher.
put(
"remark"
,"測試");
// 如果返回pojo將自動轉成map
result = genericservice.$invoke
("justtest"
,new
string
,new
object
);system.out.
println
(result.
tostring()
);
zookeeper 和 dubbo的使用
專案最近做成了分布式的 用zookeeper 註冊管理服務,使用dubbo做分布式開發。1 使用zookeeper和dubbo需要引入的包 com.github.sgroschupf zkclient 0.1org.apache.zookeeper zookeeper 3.4.6 com.aliba...
zookeeper和dubbo的關係
在讀一下文字之前 可以先看一下這篇文章 dubbo建議使用zookeeper作為服務的註冊中心。1.zookeeper的作用 zookeeper用來註冊服務和進行負載均衡,哪乙個服務由哪乙個機器來提供必需讓呼叫者知道,簡單來說就是ip位址和服務名稱的對應關係。當然也可以通過硬編碼的方式把這種對應關係...
Dubbo和zookeeper簡單理解
dubbo由alibaba製造 後交給阿帕奇維護的 基於rpc 遠端過程呼叫 高效能的 分布式框架 埠號 20880 dubbo提供的協議 dubbo協議 官方推薦使用dubbo採用dubbo協議 rmi 遠端方法呼叫 hessian協議 工作原理 提供有中文文件 是一種類似於面向介面進行程式設計 ...