1. 源碼拉取
從官方倉(cāng)庫(kù) https://github.com/alibaba/dubbo Fork
出屬于自己的倉(cāng)庫(kù)恩商。
接下來(lái)就從idea clone出自己的項(xiàng)目 逗概,下載dubbo所需的依賴包 ,這個(gè)過程需要點(diǎn)時(shí)間
2.啟動(dòng)本地zookeeper服務(wù)
盡管dubbo 支持的注冊(cè)中心有很多殃姓, 但生產(chǎn)環(huán)境基本都是用zookeeper 作為注冊(cè)中心。 由于在本地調(diào)試,直接在windows環(huán)境下啟動(dòng)zookeeper就好
3.修改默認(rèn)配置鹿榜,改為zookeeper 作為配置中心
修改demo模塊下的的Provider 和Consumer dubbo-demo-provider.xml ,dubbo-demo-provider.xml 啟動(dòng) Provider 。
##<!--使用本地zookeeper 作為配置中心-->
<dubbo:registry address="zookeeper://localhost:2181"/>
4. 運(yùn)行consumer 模塊下的Cosumer 類主函數(shù)
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"META-INF/spring/dubbo-demo-consumer.xml"});
context.start();
DemoService demoService = (DemoService) context.getBean("demoService"); // get remote service proxy
while (true) {
try {
Thread.sleep(1000);
String hello = demoService.sayHello("world"); // call remote method
System.out.println(hello); // get result
} catch (Throwable throwable) {
throwable.printStackTrace();
}
}
}
通過一個(gè)死循環(huán)不斷調(diào)用服務(wù)提供者
Hello world, response from provider: 192.168.31.119:20880
Hello world, response from provider: 192.168.31.119:20880
Hello world, response from provider: 192.168.31.119:20880
Hello world, response from provider: 192.168.31.119:20880
Hello world, response from provider: 192.168.31.119:20880
Hello world, response from provider: 192.168.31.119:20880
Hello world, response from provider: 192.168.31.119:20880
Hello world, response from provider: 192.168.31.119:20880
Hello world, response from provider: 192.168.31.119:20880
服務(wù)端的控制臺(tái)則打印
[14:51:08] Hello world, request from consumer: /192.168.31.119:52476
[14:51:09] Hello world, request from consumer: /192.168.31.119:52476
[14:51:10] Hello world, request from consumer: /192.168.31.119:52476
[14:51:11] Hello world, request from consumer: /192.168.31.119:52476
[14:51:12] Hello world, request from consumer: /192.168.31.119:52476
[14:51:13] Hello world, request from consumer: /192.168.31.119:52476
[14:51:14] Hello world, request from consumer: /192.168.31.119:52476
[14:51:15] Hello world, request from consumer: /192.168.31.119:52476
5.dubbo 架構(gòu)
至此 锦爵, 我們啟動(dòng)的一個(gè)用zookeeper作為配置中心最簡(jiǎn)單的dubbo 的demo 舱殿,
Registry :注冊(cè)中心,注冊(cè)中心险掀,用于服務(wù)的注冊(cè)與發(fā)現(xiàn)沪袭。
Provider : 服務(wù)提供者,通過向 Registry 注冊(cè)服務(wù) 樟氢。
Consumer : 服務(wù)消費(fèi)者冈绊,通過從 Registry 發(fā)現(xiàn)服務(wù)。
我們這是用zookeeper作為注冊(cè)中心, Provider 向zookeeper注冊(cè)服務(wù) 埠啃, Cosumer 向注冊(cè)中心訂閱服務(wù)死宣,將Provider的地址和端口號(hào)下載保存到本地 , 這樣Consumer 將直接發(fā)起對(duì)Provider 的調(diào)用碴开。如果Provider 有變動(dòng)毅该,注冊(cè)中心將會(huì)通知到Consumer及時(shí)進(jìn)行變動(dòng)。