SpringBoot分布式
點(diǎn)擊上方藍(lán)色字體,選擇“標(biāo)星公眾號(hào)”
優(yōu)質(zhì)文章,第一時(shí)間送達(dá)
66套java從入門(mén)到精通實(shí)戰(zhàn)課程分享
一、zookeeper使用
1、進(jìn)入linux系統(tǒng)使用docker安裝zookeeper
docker?pull?zookeeper

2、運(yùn)行zookeepe
查看zookeeper的docker鏡像的id
docker?images

官方給出的docker啟動(dòng)命令為:$ docker run --name some-zookeeper --restart always -d zookeeper
此鏡像暴露端口:2181(client port:客戶(hù)端交互) 、2888(follower port:集群)、 3888(election port:選舉)
docker?run?--name?zk01?-p?2181:2181?--restart?always?-d?e1763fd3a0e3

此處我們指定name為zko1,-p選擇暴露linux的端口2181映射到docker容器的2181端口,-d指定需要后臺(tái)運(yùn)行的zookeeper的id
3、查看啟動(dòng)運(yùn)行狀況
docker?ps

3、Idea快速創(chuàng)建一個(gè)服務(wù)的提供者,一個(gè)服務(wù)的消費(fèi)者
(1)在空工程里創(chuàng)建服務(wù)提供者的Module(springboot初始化向?qū)?chuàng)建并引入web模塊)
并在服務(wù)提供者M(jìn)odule中定義一個(gè)簡(jiǎn)單的方法
(2)再在工程里創(chuàng)建服務(wù)消費(fèi)者的Module(springboot初始化向?qū)?chuàng)建并引入web模塊)

(3)Dubbo實(shí)現(xiàn)消費(fèi)者使用生產(chǎn)者的功能A、將服務(wù)的提供者注冊(cè)到注冊(cè)中心里去
在pom.xml文件中加入Dubbo的springboot依賴(lài)
???????
????????
????????????com.alibaba.boot
????????????dubbo-spring-boot-starter
????????????0.1.0
????????
????????
????????
????????????com.github.sgroschupf
????????????zkclient
????????????0.1
????????
在application.properties中配置Dubbo的相關(guān)屬性
dubbo.application.name=provider-ticket
#注冊(cè)中心地址
dubbo.registry.address=zookeeper://虛擬機(jī)ip:2181
#服務(wù)所在包
dubbo.scan.base-packages=com.atguigu.ticket.service
在需要發(fā)布服務(wù)的實(shí)現(xiàn)類(lèi)上添加注解(需要注意@Service引入的包):
import?com.alibaba.dubbo.config.annotation.Service;
import?org.springframework.stereotype.Component;
@Component
@Service?//將服務(wù)發(fā)布出去
public?class?TicketServiceImpl?implements?TicketService?{
????@Override
????public?String?getTicket()?{
????????return?"這是一張電影票";
????}
}
B、消費(fèi)者去注冊(cè)中心中尋找服務(wù)
引入依賴(lài)
在pom.xml文件中加入Dubbo的springboot依賴(lài)
???????
????????
????????????com.alibaba.boot
????????????dubbo-spring-boot-starter
????????????0.1.0
????????
????????
????????
????????????com.github.sgroschupf
????????????zkclient
????????????0.1
????????
在application.properties中配置Dubbo的相關(guān)屬性
dubbo.application.name=provider-ticket
#注冊(cè)中心地址
dubbo.registry.address=zookeeper://虛擬機(jī)ip:2181
在工程中引入接口類(lèi):
在UserService消費(fèi)者類(lèi)中遠(yuǎn)程調(diào)用服務(wù)提供者所實(shí)現(xiàn)的方法即可實(shí)現(xiàn)對(duì)TicketServiceImpl實(shí)現(xiàn)類(lèi)方法的調(diào)用:
import?com.alibaba.dubbo.config.annotation.Reference;
import?com.atguigu.ticket.service.TicketService;
import?org.springframework.stereotype.Service;
@Service
public?class?UserService?{
????@Reference
????TicketService?ticketService;
????public?void?test(){
????????String?str?=?ticketService.getTicket();
????????System.out.println("消費(fèi)者買(mǎi)票:"+str);
????}
}
版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接和本聲明。
本文鏈接:
https://blog.csdn.net/weixin_42453582/article/details/111490752
粉絲福利:Java從入門(mén)到入土學(xué)習(xí)路線圖
???

?長(zhǎng)按上方微信二維碼?2 秒
感謝點(diǎn)贊支持下哈?
