天天看點

SpringBoot整合Zookeepr+Dubbo實作服務注冊和發現

關于​​Zookeeper和Dubbo​​的原理在此略,請參考連結。預設已在本地安裝了Zookeeper

1)建立一個SpringBoot的項目,導入依賴

2)在yml配置dubbo相關資訊

由于dubbo是用于遠端調用的,故需配置服務注冊中心的相關資訊

3)建立User實體類

注意:若要在dubbo中傳遞對象,那麼此對象必須進行序列化,否則會報錯。

4)建立service類,用于業務邏輯的接口類

這裡以模拟查詢使用者資訊為例。

5)建立實作類,實作業務接口類

需要注意是的,這裡用了兩個@Service注解,但各自有作用。重要的是要引入dubbo的@service注解。隻有使用此注解的類,才會被注冊到zk中。是以需要使用遠端調用的類再加上dubbo的@service注解即可,不需要遠端調用的直接使用原來的@Service注解。

6)建立controller層,測試業務接口

這個controller的作用除了測試業務接口外,還可與服務消費者端的controller進行對比。

7)給啟動類添加注解@EnableDubbo

SpringBoot整合Zookeepr+Dubbo實作服務注冊和發現

這裡隻需要配置zk的位址和dubbo的應用名稱。

3)建立service類

此類必須和服務提供者中添加dubbo的@Service注解的接口類一緻,包名也要一緻,要調用的方法也需保持一緻。這些服務都會注冊到zk中,dubbo通過名稱去查找并調用。

5)建立controller層,測試服務接口

在注入服務時使用的是dubbo的@Reference注解,隻有通過這個注解才能調用到服務。

5)給啟動類添加注解@EnableDubbo

SpringBoot整合Zookeepr+Dubbo實作服務注冊和發現

6)先啟動zk服務,再啟動服提供者,最後啟動服務消費者,先通路http://localhost:8001/get,傳回正确資訊:

SpringBoot整合Zookeepr+Dubbo實作服務注冊和發現

 調用http://localhost/test也會傳回正确的資訊,至此服務注冊與調用已完成。