小編給大家分享一下springboot怎么使用dubbo和zookeeper,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
成都創(chuàng)新互聯(lián)公司2013年開(kāi)創(chuàng)至今,先為龍泉等服務(wù)建站,龍泉等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為龍泉企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
創(chuàng)建服務(wù)接口模塊
接口工程只提供接口,不提供實(shí)現(xiàn),在后面的提供者和消費(fèi)者中使用
在使用接口的模塊中只需要寫(xiě)具體實(shí)現(xiàn)類,避免了在每個(gè)模塊中重復(fù)編寫(xiě)接口
在接口中引入依賴包
創(chuàng)建一個(gè)實(shí)體類,一定要實(shí)現(xiàn)Serializable接口,否則dubbo協(xié)議之間無(wú)法傳輸
@Data@AllArgsConstructorpublic class User implements Serializable { private String name;}
創(chuàng)建接口
public interface UserService { List
創(chuàng)建服務(wù)提供者
引入依賴
修改配置文件
#服務(wù)名稱dubbo.application.name=provider1#注冊(cè)中心地址dubbo.registry.address=39.97.234.52:2181,39.97.234.52:2182,39.97.234.52:2183#注冊(cè)中心類型dubbo.registry.protocol=zookeeper#版本號(hào)dubbo.application.version=3# Dubbo Protocol#協(xié)議名稱dubbo.protocol.name=dubbo#服務(wù)暴露端口dubbo.protocol.port=20880
實(shí)現(xiàn)服務(wù)接口
//暴露服務(wù)//這里的@Service是Dubbo提供的,不是spring中的//version必填@Service(version = "${dubbo.application.version}")@Componentpublic class UserImpl implements UserService { @Override public List
啟動(dòng)服務(wù)
//@EnableDubbo等價(jià)于在配置文件中配置dubbo.scan.base-packages//掃描實(shí)現(xiàn)類所在的包,注冊(cè)Bean@EnableDubbo@SpringBootApplicationpublic class ProviderApplication { public static void main(String[] args) { SpringApplication.run(ProviderApplication.class,args); }}
創(chuàng)建消費(fèi)者
引入依賴
修改配置文件
#注冊(cè)中心dubbo.registry.address=39.97.234.52:2181,39.97.234.52:2182,39.97.234.52:2183dubbo.registry.protocol=zookeeper#dubbo應(yīng)用名稱dubbo.application.name=consumer1
實(shí)現(xiàn)消費(fèi)接口
//服務(wù)消費(fèi)者的Service是spring的@Servicepublic class OrderImpl implements OrderService { //使用dubbo提供的@Reference訪問(wèn)遠(yuǎn)程服務(wù) //version對(duì)應(yīng)服務(wù)提供者的version @Reference(version = "3") private UserService userService; @Override public List
創(chuàng)建controller
@Controllerpublic class OrderController { @Autowired private OrderService orderService; @ResponseBody @RequestMapping("/init") public List
啟動(dòng)服務(wù)消費(fèi)者
@EnableDubbo@SpringBootApplicationpublic class ConsumerApplication { public static void main(String[] args) { SpringApplication.run(ConsumerApplication.class, args); }}
dubbo相關(guān)補(bǔ)充
dubbo使用本地緩存方式,如果注冊(cè)中心全部宕機(jī),dubbo也能正常工作,就算沒(méi)有注冊(cè)中心,dubbo也能通過(guò)dubbo直連通信
//使用dubbo提供的@Reference訪問(wèn)遠(yuǎn)程服務(wù) //version對(duì)應(yīng)服務(wù)提供者的version //url:如果沒(méi)有注冊(cè)中心,可以通過(guò)url配置服務(wù)提供者的dubbo協(xié)議端口,進(jìn)行dubbo直連 @Reference(version = "3",url ="127.0.0.1:20880" ) private UserService userService;
看完了這篇文章,相信你對(duì)“springboot怎么使用dubbo和zookeeper”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!