<?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://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <dubbo:application name="emax-paycenter-service" logger="log4j" version="${dubbo.service.version}" organization="emax-paycenter" environment="${dubbo.environment}"/> <dubbo:registry protocol="zookeeper" address="${dubbo.registry.address}" file="${catalina.home}/dubbo-registry/dubbo-registry.properties"/> <dubbo:protocol name="dubbo" accepts="${dubbo.protocol.accepts}"/> <dubbo:protocol name="jsonrpc" server="jetty"/> <dubbo:provider protocol="dubbo" loadbalance="${dubbo.loadbalance}" /> <bean class="com.emax.paycenter.dubbo.DynamicDubboPortReaderImpl" init-method="init"> <property name="protocolName" value="dubbo"/> <property name="ports" value="${dubbo.ports}"/> </bean> <bean class="com.emax.paycenter.dubbo.DynamicDubboPortReaderImpl" init-method="init"> <property name="protocolName" value="jsonrpc"/> <property name="ports" value="${dubbo.jsonrpc.ports}"/> </bean> <import resource="classpath:dubbo/dubbo-applicationContext-Service.xml" /> <dubbo:service protocol="dubbo" interface="com.emax.paycenter.api.service.IPayCenterFacade" ref="payCenterFacade" timeout="${dubbo.timeout}" retries="${dubbo.retries}"/> <dubbo:service protocol="dubbo,jsonrpc" interface="com.emax.paycenter.backend.service.PaycenterNotifyRetryService"
ref="notifyService" timeout="${dubbo.timeout}" retries="${dubbo.retries}" />
</beans>
dubbo.service.version=1.0.0
dubbo.environment=test
dubbo.registry.address(配置中心):127.0.0.1:2181 註冊中心地址。dubbo一般註冊到zookeeper上。zookeeper的默認端口是2181。Zookeeper監控管理工具ZkWeb,能夠用來管理節點,以及監控集羣狀態。
dubbo.protocol.accepts(配置中心):500 accepts:The accept connection size. 爲防止被大量鏈接撐掛,可在服務提供方限制大接收鏈接數,以實現服務提供方自我保護. optional
dubbo.loadbalance(配置中心):roundrobin loadbalance:dubbo負載模式。The method load balance. optional
dubbo.ports=28005,28006,28007,28008
dubbo.jsonrpc.ports=9995,9996,9997,9998
dubbo.timeout(配置中心):300000 dubbo超時時間
dubbo.retries(配置中心):0 重試次數
<?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://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <dubbo:application name="emax-merchant-web" logger="log4j" version="${dubbo.service.version}" organization="emax-merchant" environment="${dubbo.environment}"/> <dubbo:registry protocol="zookeeper" address="${dubbo.registry.address}" file="${catalina.home}/dubbo-registry/dubbo-registry.properties"/> <import resource="dubbo-applicationContext-Web.xml"/> <dubbo:reference id="payCenterFacade" protocol="dubbo" interface="com.emax.paycenter.api.service.IPayCenterFacade" timeout="${dubbo.timeout}" lazy="true" loadbalance="${dubbo.loadbalance}" retries="${dubbo.retries}" check="false"/> </beans>
上面provider裏的jsonrpc利用jetty提供了http調用,此時項目須要增長maven依賴jetty: 6.1.26(見dubbo官網3 依賴,另,參見詳解dubbo支持的協議)。例如http://192.168.40.240:9995/com.emax.paycenter.backend.service.PaycenterNotifyRetryService?method=notifyRetry。我在以前的一篇隨筆有提到,provider應用端的一些任務經過將這種url註冊到jobcenter裏,在jobcenter設置cron表達式觸發任務的執行。html