網(wǎng)站圖片做多大網(wǎng)站流量統(tǒng)計系統(tǒng)
本文內(nèi)容很容易理解,會闡述當dubbo使用zookeeper作為注冊中心時候,zookeeper節(jié)點是什么樣子的
本文的代碼使用的dubbo版本是2.7.x,幾年前的版本了,但是不影響探究
首先我們創(chuàng)建一個簡單的maven項目,然后寫出一段dubbo provider代碼(服務提供者),然后啟動服務,之后觀察zookeeper節(jié)點樣子
pom.xml文件需要引用2個依賴,如下
<!-- dubbo的依賴 -->
<dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo</artifactId><version>2.7.23</version>
</dependency><!-- 使用zookeeper作為注冊中心的時候,dubbo要通過zookeeper客戶端操作zookeeper,
這個curator就是zookeeper客戶端,zookeeper客戶端還有一個是zkClient,本文中我們
使用curator,不使用zkClient -->
<dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-remoting-zookeeper-curator5</artifactId><version>2.7.23</version>
</dependency>
創(chuàng)建服務接口
package aa.bb;
public interface User {String getUserName();
}
創(chuàng)建服務接口實現(xiàn)類
package aa.bb;public class UserImpl implements User {@Overridepublic String getUserName() {// 返回一段文本,陳述一段客觀事實return "HR is a little bitch";}
}
創(chuàng)建服務提供者代碼(provider)
public class Provider {public static void main(String[] args) throws IOException {ServiceConfig<User> service = new ServiceConfig<>();service.setApplication(new ApplicationConfig("service_provider"));service.setRegistry(new RegistryConfig("zookeeper://127.0.0.1:2181"));service.setInterface(User.class);service.setRef(new UserImpl());ProtocolConfig protocolConfig = new ProtocolConfig();protocolConfig.setTelnet("invoke");// 允許使用telnet命令調(diào)用dubbo服務protocolConfig.setHost("127.0.0.1");protocolConfig.setPort(20880);protocolConfig.setName("dubbo");// 這個協(xié)議名必填,而且不能亂寫service.setProtocol(protocolConfig);service.export();System.out.println("服務提供方啟動成功并且已經(jīng)注冊到zookeeper");System.in.read();}}
打開zookeeper,zookeeper初始節(jié)點是下面這樣子的
運行上述的main函數(shù),之后會發(fā)現(xiàn)zookeeper中節(jié)點的樣子如下
dubbo:本文中有個代碼是new RegistryConfig
,這個對象有一個setGroup()
方法,因為我們沒有調(diào)用該方法,所以根目錄是dubbo,如果我們setGroup("HR")
,那么根目錄就會變成HR
dubbo/aa/bb/user:表示本文中的public interface User
接口服務
dubbo/aa/bb/user/providers:服務提供者的目錄,你可以使用相同的代碼,再打開一個IDEA或者Eclipse,然后運行這段代碼,此時providers目錄下面就會有2條數(shù)據(jù)
dubbo/aa/bb/user/configurators:服務提供者動態(tài)配置相關的元數(shù)據(jù)信息,后續(xù)文章單獨討論
好了本文就到這里,其實非常的簡單,主要是想大概過一下dubbo注冊到zookeeper之后,節(jié)點是什么樣子的,要是你寫dubbo,也基本就是這樣設計節(jié)點,沒什么出彩的,但是必須要了解一下,方便后續(xù)讀dubbo注冊中心模塊源碼的時候,知道如何創(chuàng)建節(jié)點的
雖然本文沒有寫consumers的代碼,但是聰明的你應該能預見到,如果有consumers,那么應該會在dubbo/aa/bb/user/providers
同級目錄出現(xiàn)一個dubbo/aa/bb/user/consumers
的新目錄,沒錯,確實是這樣