(二)dubbo xml方式

具體參考我的gitee: springbootdubbo

spring-dubbo-provider.xml:

<?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:p="http://www.springframework.org/schema/p"
	xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="
		http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
		http://www.springframework.org/schema/context
		http://www.springframework.org/schema/context/spring-context-4.0.xsd
		http://www.springframework.org/schema/tx
		http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
		http://code.alibabatech.com/schema/dubbo 
		http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
	
	
	
   <!-- 提供方應用名稱信息,這個相當於起一個名字,我們dubbo管理頁面比較清晰是哪個應用暴露出來的,保持唯一性 -->  
    <!-- java.net.BindException: Address already in use: bind-->
    <dubbo:application name="Dubbo-springboot">
        <dubbo:parameter key="qos.enable" value="true"/>
        <dubbo:parameter key="qos.accept.foreign.ip" value="false"/>
        <dubbo:parameter key="qos.port" value="22222"/>
    </dubbo:application>

    <!--開啓註解掃描,使dubbo的註解生效-->
    <dubbo:annotation package="com.jk.*"/>
   
   <!-- 使用zookeeper註冊中心暴露服務地址 -->    
   <dubbo:registry address="zookeeper://127.0.0.1:2181" register="" check="false" subscribe="false" />

    <!-- 多協議dubbo協議和rmi協議在20880端口暴露服務 -->
    <!-- 如果你想記錄每一次請求信息,可開啓訪問日誌,類似於apache的訪問日誌。注意:此日誌量比較大,請注意磁盤容量-->
   <dubbo:protocol name="dubbo" port="20881" accesslog="E:\oilrichfit\dubboAsk.log"/>
    <!-- rmi consumer還得帶着token 訪問-->
   <dubbo:protocol name="rmi" port="1099" accesslog="E:\oilrichfit\dubboAsk.log"/>
    <!-- 和本地bean一樣實現服務 -->
   <bean id="testService" class="com.jk.service.TestServiceImpl"></bean>
    <!-- 聲明需要暴露的服務接口 -->
   <dubbo:service interface="com.jk.service.TestService" ref="testService"  timeout="30000"/>

    <!-- 同一個接口多個實現類用group區分-->
    <bean id="mysqlServiceA" class="com.jk.service.MysqlServiceImpl"></bean>
    <!-- 令牌驗證防止消費者繞過註冊中心訪問提供者,消費者不需要做任何操作,如果直連直接被拒絕了 token="123456"-->
    <!-- 用不同的協議-->
    <dubbo:service interface="com.jk.service.MysqlService" protocol="dubbo" token="123456" group="ced" ref="mysqlServiceA"  timeout="30000"/>
    <bean id="mysqlServiceB" class="com.jk.service.MysqlServiceImpl2"></bean>
    <!-- 多個實現類時有一個寫token就行,不然訪問其他接口時報錯-->
    <dubbo:service interface="com.jk.service.MysqlService" protocol="rmi" group="fed" ref="mysqlServiceB"  timeout="30000"/>
</beans>

spring-dubbo-consumer.xml:

<?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:p="http://www.springframework.org/schema/p"
	xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
	xmlns:context="http://www.springframework.org/schema/context" 
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="
		http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
		http://www.springframework.org/schema/context
		http://www.springframework.org/schema/context/spring-context-4.0.xsd
		http://www.springframework.org/schema/tx
		http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
		http://code.alibabatech.com/schema/dubbo 
		http://code.alibabatech.com/schema/dubbo/dubbo.xsd 
		http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-4.0.xsd"  default-autowire="byName">
	<!-- 消費方應用名稱信息,這個相當於起一個名字,我們dubbo管理頁面比較清晰是哪個應用調用的,保持唯一性 -->
	<dubbo:application name="consumer-of-helloworld-app">
		<dubbo:parameter key="qos.enable" value="true"/>
		<dubbo:parameter key="qos.accept.foreign.ip" value="false"/>
		<dubbo:parameter key="qos.port" value="33333"/>
	</dubbo:application>

	<!-- 使用zookeeper註冊中心發現暴露的服務地址 -->
	<dubbo:registry address="zookeeper://127.0.0.1:2181"/>

	<!-- 關閉所有服務的啓動時檢查 (沒有提供者時報錯)-->
	<dubbo:consumer check="false"/>

	<!-- 生成遠程服務代理,可以和本地bean一樣使用demoService,該interface需要與服務端暴露的服務interface保持一致,該id已注入Spring -->
	<!-- 關閉某個服務的啓動時檢查 (沒有提供者時報錯)<dubbo:reference interface="com.foo.BarService" check="false" /> 提供者不錯操作-->
	<!-- 增加對緩存的支持 cache="lru" 直接去緩存中取減少服務調用次數 提供者不做操作-->
	<dubbo:reference id="testService"  cache="lru" interface="com.jk.service.TestService" timeout="30000"></dubbo:reference>
	<!-- 同一個接口多個實現類用group區分 其實就是當時兩個serviceImpl 兩個Controller 一個接口-->
	<dubbo:reference id="mysqlServiceA" group="ced" cache="lru" interface="com.jk.service.MysqlService" timeout="30000"></dubbo:reference>
	<dubbo:reference id="mysqlServiceB" group="fed" cache="lru" interface="com.jk.service.MysqlService" timeout="30000"></dubbo:reference>
</beans>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章