更新時間:2020-06-23 13:06:18 來源:動力節點 瀏覽2254次
Dubbo是一個分布式服務框架,致力于提供高性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案。以下是一個簡單的dubbo架構圖。
小編從刀耕火種的原始web開發時代一直走到現在,感慨良多。從單體應用,到mvc模型,再到使用webservice,企業服務總線,一直到dubbo,每一次理念的升級,都是帶來開發工作的解放。互聯網技術日新月異,活到老學到老是必須的。
Zookeeper搭建
從官網下載zookeeper作為服務注冊中心。解壓后進入conf目錄,重命名zoo_simple.cfg為zoo.cfg.根據是windows還是linux其中zkServer.cmd或zkServer.sh。這樣服務就啟動起來了。注意clientPort=2181,客戶端使用這個端口和zookeeper通信。現在假設zookeeper所在機器域名為zooregistry.com。后文將會用到。
dubbo monitor安裝
下載
dubbo-monitor-simple-2.4.1-assembly.tar.gz解壓。打開conf/dubbo.properties,啟用配置
dubbo.registry.address=
zookeeper://zooregistry.com:2181。使用bin/start.bat或bin/start.sh其中dubbo monitor。monitor可以用來監控分布式系統的運行狀態,并提供上線或下線服務等功能。
dubbo admin安裝
下載dubbo-admin-2.5.8這個war包解壓。修改WEB-INF/dubbo.properties。修改配置為
dubbo.registry.address=
zookeeper://zooregistry.com:2181.這里可以修改用戶名和密碼。將修改后的包放到tomcat/webapp/ROOT/目錄并啟動既可以。
dubbo admin可以簡單理解dubbo admin的加強版,兩者各有所長。這個步驟是非必須的,小編建議還是配置下。
Spring開發環境搭建
Api provider
以上配置的注冊中心和監控中心后,就可以進行系統開發了。我們使用maven管理項目。
服務提供者和消費者需要一套接口,那么我們使用maven創建一個jar項目.例如我們在定義一個接口。
package io.kuaibao.provider.service;
import java.io.Serializable;
public interface ServerTimeService extends Serializable{
String getTime();
}
然后使用maven創建消費者web項目,和一個提供者jar項目。
Provider開發
定義提供者bean文件
applicationProvider20883.xml。以下只列出核心代碼,有需求的話可以在github上下載源代碼試用。
<!--提供方應用信息,用于計算依賴關系-->
<dubbo:application name="dubbo_provider3"/>
<!--使用zookeeper注冊中心暴露服務地址-->
<dubbo:registry address="zookeeper://zooregistry:2181"/>
<!--用dubbo協議在20883端口暴露服務-->
<dubbo:protocol name="dubbo"port="20883"/>
<dubbo:monitor protocol="registry"/>
<!--聲明需要暴露的服務接口-->
<dubbo:annotation package="io.kuaibao.provider.service"/>
實現服務:
package io.kuaibao.provider.service.impl;
import i.kuaibao.provider.service.ServerTimeService;
import java.text.SimpleDateFormat;
import java.util.Date;
?com.alibaba.dubbo.config.annotation.Service
public class TimeServiceImpl implements ServerTimeService{
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
?Override
public String getTime(){
System.out.println("invoke");
return simpleDateFormat.format(new Date());
}
}
啟動服務者:
public class Main{
public static void main(String[]args)throws IOException{
ClassPathXmlApplicationContext classPathXmlApplicationContext=new ClassPathXmlApplicationContext("classpath*:applicationProvider20883.xml");
System.in.read();
}
}
如果要啟動多個服務提供者只需要修改<dubbo:protocol name="dubbo"port="20883"/>并執行即可。
Consumer開發
在spirngmvc.xml文件中進行一下配置:
<dubbo:application name="dubbo_consumer222"/>
<!--使用multicast廣播注冊中心暴露發現服務地址-->
<dubbo:registry address="zookeeper://zooregistry:2181"/>
<dubbo:annotation package="io.kuaibao.consumer.controller"/>
<dubbo:consumer timeout="30000"/>
<dubbo:monitor protocol="registry"/>
<!--自動掃描 Controller-->
<context:component-scan base-package="io.kuaibao.consumer.controller"/>
注意服務在什么地方使用,就將dubbo配置放在什么容器中。我們這里直接在controller中使用,所以講dubbo放在mvc容器中。
此時我們可以在controller中使用
com.alibaba.dubbo.config.annotation.Reference注解注入需要的service。
Java視頻下載
Dubbo:http://m.dabaquan.cn/javavideo/129.html
以上就是動力節點java培訓機構的小編針對“Java dubbo框架視頻教程之分布式框架搭建”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習