實現DUBBO服務環境隔離
阿新 • • 發佈:2019-02-19
通過服務分組或者版本號來隔離
熟悉DUBBO的童鞋應該知道DUBBO對每個介面都支援分組和版本號,然後服務消費方指定呼叫哪個分組或者哪個版本號就可以呼叫對應的介面。那麼通過這個來描述一下怎麼通過它們來隔離。在談這些之前還是先上一個各個子系統和註冊中心的關係圖:
通過給每個子環境分配一個分組來實現各個子環境在一個組裡面,從而實現各個環境的隔離。具體操作如下:
服務消費方
<!--lang:xml--> <dubbo:reference interface="com.alibaba.dubbo.demo.HelloWorldService" check="false" id="helloWorldService"/>
針對上面的介面只能呼叫指定的分組,可以在dubbo.properties中新增dubbo.reference.helloWorldService.group=test
,那麼該介面只會從test
分組中發現對應介面的服務了。也可以將所有服務都指向某個分組dubbo.reference.group=test
。
也可以用xml配置檔案代替dubbo.properties中的配置:
<dubbo:application name="authcenter" /> <dubbo:registry address="192.168.0.1:2181" protocol="zookeeper" group="bigdatacenter"/> <dubbo:reference interface="com.dubbo.test.QueryFacade" id="1ueryFacade"></dubbo:reference>
服務提供方
<!--lang:xml-->
<dubbo:service interface="com.alibaba.dubbo.demo.HelloWorldService" id="helloWorldRemote" ref="helloWorld"/>
針對上面的介面釋出到指定的分組,也是在dubbo.properties中新增dubbo.service.helloWorldRemote.group=test
,那麼該服務就釋出到了test
分組,同樣也可以將當前系統所有服務釋出到指定分組dubbo.service.group=test
。
而通過版本號也是類似的方案,只是配置的屬性不是group
version
,這裡就不贅述了。