關(guān)于Dubbo初始問題
Dubbo架構(gòu)
消費(fèi)者:調(diào)用提供者,但是不能直接調(diào),需要借助注冊中心
節(jié)點(diǎn)角色說明
Provider
:暴露服務(wù)的服務(wù)提供方Container
: 服務(wù)運(yùn)行容器Consumer
: 調(diào)用遠(yuǎn)程服務(wù)的服務(wù)消費(fèi)方Registry
:服務(wù)注冊與發(fā)現(xiàn)的注冊中心Monitor
:統(tǒng)計(jì)服務(wù)的調(diào)用次數(shù)和調(diào)用時(shí)間的監(jiān)控中心
過程
0start:服務(wù)的提供者要運(yùn)行在一個容器里面,比如運(yùn)行在tomcat里面,需要將tomcat啟動起來。
1注冊:啟動起來之后,該服務(wù)就會注冊到注冊中心里(將服務(wù)調(diào)用的ip、端口、服務(wù)發(fā)布url放到注冊中心里面去。)。
2.subscribe:我想調(diào)用提供者提供的服務(wù),我這時(shí)去找注冊中心去找(告訴服務(wù)中心將服務(wù)的相關(guān)信息給消費(fèi)者)
3.notify:消費(fèi)者要一次服務(wù),注冊中心給一次。
這時(shí)消費(fèi)者拿到服務(wù)的信息
4.invoke:就是rpc的過程,進(jìn)行調(diào)用。不用我們管,dubbo內(nèi)部自動實(shí)現(xiàn)。
5.Monitor:服務(wù)監(jiān)控。統(tǒng)計(jì)某個服務(wù)調(diào)用了多少次。
asyn:異步。sync:同步。只有rpc調(diào)用時(shí)同步的,其他的都是異步的。
Zookeeper安裝
先安裝java1.8
解壓,進(jìn)入配置文件夾,復(fù)制配置文件,并修改里面的配置使其生效。復(fù)制會話窗口,創(chuàng)建目錄,將該目錄復(fù)制修改到配置文件里面。啟動zk
zk默認(rèn)端口為2181
Mode:standalone(當(dāng)前沒有搭建集群,是單節(jié)點(diǎn)在運(yùn)行)
Dubbo快速入門
注意這里的controller調(diào)用service是遠(yuǎn)程調(diào)用,是兩個工程分別部署在兩臺機(jī)器上。
jar包依賴
<!--Dubbo的起步依賴,版本2.7之后統(tǒng)一為rg.apache.dubb --> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo</artifactId> <version>${dubbo.version}</version> </dependency> <!--ZooKeeper客戶端實(shí)現(xiàn) --> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>${zookeeper.version}</version> </dependency> <!--ZooKeeper客戶端實(shí)現(xiàn) --> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>${zookeeper.version}</version> </dependency>
開始配置dubbo
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!--spring包掃描--> <!--<context:component-scan base-package="com.itheima.service"/>--> <!--dubbo的配置--> <!--1、配置項(xiàng)目的名稱,唯一--> <dubbo:application name="dubbo-service"/> <!--2、配置注冊中心的地址--> <dubbo:registry address="zookeeper://101.42.248.44:2181"/> <!--3、配置dubbo包掃描--> <dubbo:annotation package="com.itheima.service.impl"/> </beans>
添加spring的配置,讓其掃描加載剛在配置dubbo的配置文件applicationContext.xml
配置zk
上面的掃描時(shí)掃面springmvc的注解
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!--打開注解驅(qū)動--> <mvc:annotation-driven/> <!--掃描包--> <context:component-scan base-package="com.itheima.controller"/> <!--dubbo的配置--> <!--1、配置項(xiàng)目的名稱,唯一--> <dubbo:application name="dubbo-web"> <dubbo:parameter key="qos.port" value="33333"/> </dubbo:application> <!--2、配置注冊中心的地址--> <dubbo:registry address="zookeeper://101.42.248.44:2181"/> <!--3、配置dubbo包掃描--> <dubbo:annotation package="com.itheima.controller"/> </beans>
創(chuàng)建一個公共接口模塊,減少重復(fù)代碼開發(fā),易于接口調(diào)用
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
mybatis plus in使用時(shí)傳數(shù)組、集合的注意點(diǎn)說明
這篇文章主要介紹了mybatis plus in使用時(shí)傳數(shù)組、集合的注意點(diǎn)說明,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11Java阻塞隊(duì)列必看類:BlockingQueue快速了解大體框架和實(shí)現(xiàn)思路
這篇文章主要介紹了Java阻塞隊(duì)列必看類:BlockingQueue快速了解大體框架和實(shí)現(xiàn)思路,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10Spring集成MyBatis?及Aop分頁的實(shí)現(xiàn)代碼
這篇文章主要介紹了Spring集成MyBatis?及Aop分頁的實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04SWT(JFace) Menu、Bar...體驗(yàn)代碼
SWT(JFace)體驗(yàn)之Menu、Bar實(shí)現(xiàn)代碼。2009-06-06JavaSE經(jīng)典小練習(xí)項(xiàng)目之拷貝文件夾
文件拷貝是一個常見的任務(wù),無論是備份文件,還是將文件從一個位置復(fù)制到另一個位置,文件拷貝都是必不可少的,這篇文章主要給大家介紹了關(guān)于JavaSE經(jīng)典小練習(xí)項(xiàng)目之拷貝文件夾的相關(guān)資料,需要的朋友可以參考下2023-10-10Java 代碼實(shí)例解析設(shè)計(jì)模式之監(jiān)聽者模式
所謂監(jiān)聽者模式,我理解的是構(gòu)建一個容器存放所有被監(jiān)聽的線程或?qū)ο?,監(jiān)聽每個線程或?qū)ο蟀l(fā)生的變化,若某個線程或?qū)ο笥|發(fā)指定規(guī)則,那么則對所有被監(jiān)聽的線程或?qū)ο蟾鶕?jù)業(yè)務(wù)需要做處理2021-10-10Java中的HashSet、LinkedHashSet集合解析
這篇文章主要介紹了Java中的HashSet、LinkedHashSet集合解析,與HashSet不同的是,LinkedHashSet在內(nèi)部使用了一個雙向鏈表來維護(hù)元素的順序,因此它可以保持元素的插入順序,這使得LinkedHashSet在需要保持元素順序的場景下非常有用,需要的朋友可以參考下2023-11-11Spring實(shí)戰(zhàn)之Bean定義中的SpEL表達(dá)式語言支持操作示例
這篇文章主要介紹了Spring實(shí)戰(zhàn)之Bean定義中的SpEL表達(dá)式語言支持操作,結(jié)合實(shí)例形式分析了Bean定義中的SpEL表達(dá)式語言操作步驟與實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-12-12Hibernate實(shí)現(xiàn)many-to-many的映射關(guān)系
今天小編就為大家分享一篇關(guān)于Hibernate實(shí)現(xiàn)many-to-many的映射關(guān)系,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03