springboot怎么使用dubbo和zookeeper-創(chuàng)新互聯(lián)

小編給大家分享一下springboot怎么使用dubbo和zookeeper,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來(lái),先為安居等服務(wù)建站,安居等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(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)類(lèi),避免了在每個(gè)模塊中重復(fù)編寫(xiě)接口

在接口中引入依賴(lài)包

<dependency>      <groupId>org.projectlombok</groupId>      <artifactId>lombok</artifactId>      <optional>true</optional>    </dependency>

創(chuàng)建一個(gè)實(shí)體類(lèi),一定要實(shí)現(xiàn)Serializable接口,否則dubbo協(xié)議之間無(wú)法傳輸

@Data@AllArgsConstructorpublic class User implements Serializable {  private String name;}

創(chuàng)建接口

public interface UserService {  List<User> getAll();  List<User> getAll2();}

創(chuàng)建服務(wù)提供者

引入依賴(lài)

<!--引入創(chuàng)建的接口服務(wù)-->    <dependency>      <groupId>com.yls</groupId>      <artifactId>common-api</artifactId>      <version>1.0-SNAPSHOT</version>    </dependency>    <!--由于服務(wù)提供者不是web項(xiàng)目    ,只需引入spring-boot-starter,不用引入spring-boot-starter-web-->    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter</artifactId>    </dependency>    <!--dubbo-->    <dependency>      <groupId>com.alibaba.boot</groupId>      <artifactId>dubbo-spring-boot-starter</artifactId>      <version>0.2.0</version>    </dependency>

修改配置文件

#服務(wù)名稱(chēng)dubbo.application.name=provider1#注冊(cè)中心地址dubbo.registry.address=39.97.234.52:2181,39.97.234.52:2182,39.97.234.52:2183#注冊(cè)中心類(lèi)型dubbo.registry.protocol=zookeeper#版本號(hào)dubbo.application.version=3# Dubbo Protocol#協(xié)議名稱(chēng)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<User> getAll() {    User user1 = new User("張三");    User user2 = new User("lisi");    List<User> list = Arrays.asList(user1, user2);    return list;  }}

啟動(dòng)服務(wù)

//@EnableDubbo等價(jià)于在配置文件中配置dubbo.scan.base-packages//掃描實(shí)現(xiàn)類(lèi)所在的包,注冊(cè)Bean@EnableDubbo@SpringBootApplicationpublic class ProviderApplication {  public static void main(String[] args) {    SpringApplication.run(ProviderApplication.class,args);  }}

創(chuàng)建消費(fèi)者

引入依賴(lài)

<!--消費(fèi)者是web項(xiàng)目-->    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-web</artifactId>    </dependency>    <!--dubbo-->    <dependency>      <groupId>com.alibaba.boot</groupId>      <artifactId>dubbo-spring-boot-starter</artifactId>      <version>0.2.0</version>    </dependency>    <!--引入創(chuàng)建的接口服務(wù)-->    <dependency>      <groupId>com.yls</groupId>      <artifactId>common-api</artifactId>      <version>1.0-SNAPSHOT</version>    </dependency>

修改配置文件

#注冊(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)用名稱(chē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<User> init() {    List<User> list = userService.getAll();    list.forEach(item -> System.out.println(item.getName()));    return list;  }}

創(chuàng)建controller

@Controllerpublic class OrderController {  @Autowired  private OrderService orderService;  @ResponseBody  @RequestMapping("/init")  public List<User> init() {    return orderService.init();  }}

啟動(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è)資訊頻道,感謝各位的閱讀!

本文標(biāo)題:springboot怎么使用dubbo和zookeeper-創(chuàng)新互聯(lián)
分享路徑:http://bm7419.com/article18/cdiidp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶(hù)體驗(yàn)、自適應(yīng)網(wǎng)站、微信小程序、網(wǎng)站策劃、網(wǎng)站維護(hù)、搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司