spring zbus rpc

ZBUS = MQ + RPC + PROXY
支持消息队列, 发布订阅, RPC, 代理(TCP/DMZ)
亿级消息堆积能力、支持HA高可用
单个Jar包无依赖 ~300K
服务代理 – 适配改造已有业务系统,使之具备跨平台与语言
丰富的API–JAVA/C/C++/C#/Python/Node.JS多语言接入
zbus-dist选择zbus.sh或者zbus.bat直接执行
在这里插入图片描述
总线默认占用 15555 端口, http://localhost:15555 可以直接进入监控,注意zbus因为原生兼容HTTP协议所以监控与消息队列使用同一个端口

引入依赖

 		<dependency>
			<groupId>org.zbus</groupId>
			<artifactId>zbus</artifactId>
			<version>7.2.0</version>
		</dependency>

无任何代码侵入使得你已有的业务接口接入到zbus,获得跨平台和多语言支持

Spring集成–服务端

<?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:context="http://www.springframework.org/schema/context"
	   xmlns:tx="http://www.springframework.org/schema/tx"
	   xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
		http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.1.xsd"
	   default-lazy-init="false">
	<bean
		class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" />


	<!-- 暴露的的接口实现示例 -->
	<bean id="userRpcService" class="com.thinkgem.jeesite.modules.sys.service.rpc.UserRpcServiceImpl"></bean>
	<bean id="systemRpcService" class="com.thinkgem.jeesite.modules.sys.service.rpc.SystemRpcServiceImpl"></bean>
	<bean id="serviceProcessor" class="org.zbus.rpc.RpcProcessor">
		<constructor-arg>
			<list>
				<!-- 放入你需要的暴露的的接口 -->
				<ref bean="userRpcService"/>
				<ref bean="systemRpcService"/>
			</list>
		</constructor-arg>
	</bean>
	
	<bean id="broker" class="org.zbus.broker.ZbusBroker">
		<constructor-arg>
			<bean class="org.zbus.broker.BrokerConfig">
				<property name="brokerAddress" value="${zbus.broker.address}" />
				<property name="maxTotal" value="${zbus.broker.max.total}"/>
				<!-- 这里可以增加连接池参数配置,不配置使用默认值(参考commons-pool2) -->
			</bean>
		</constructor-arg>
	</bean>

	<!-- 默认调用了start方法,由Spring容器直接带起来注册到zbus总线上 -->
	<bean id="myrpcService" class="org.zbus.rpc.mq.Service" init-method="start">
		<constructor-arg>
			<bean class="org.zbus.rpc.mq.ServiceConfig">
			    <!-- 支持多总线注册 -->
				<constructor-arg>
					<list>
						<ref bean="broker"/>
					</list>
				</constructor-arg>
				<property name="mq" value="SysRpc"/>
				<property name="messageProcessor" ref="serviceProcessor"/>
			</bean>
		</constructor-arg>
	</bean>
</beans>

Spring集成–客户端

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
	<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
							
 	<bean id="broker" class="org.zbus.broker.ZbusBroker">
		<constructor-arg>
			<bean class="org.zbus.broker.BrokerConfig">
				<property name="brokerAddress" value="172.16.1.195:15555"/> 
				<!-- 
				高可用HA只需要改变brokerAddress为trackServer地址列表  单个tracker地址要有分号 
				<property name="brokerAddress" value="127.0.0.1:16666;127.0.0.1:16667" /> 
				-->
			</bean>
		</constructor-arg>
	</bean>
				
	<bean id="myrpc" class="org.zbus.rpc.RpcFactory">
		<constructor-arg> 
			<bean class="org.zbus.rpc.mq.MqInvoker"> 
				<constructor-arg ref="broker"/>
				<constructor-arg value="MyRpc"/> 
			</bean>
		</constructor-arg>
	</bean>
	
	<bean id="userRpcService" factory-bean="myrpc" factory-method="getService">
		<constructor-arg type="java.lang.Class" value="com.thinkgem.jeesite.modules.sys.service.rpc.UserRpcServiceImpl"/> 
	</bean>
	<bean id="systemRpcService" factory-bean="myrpc" factory-method="getService">
		<constructor-arg type="java.lang.Class" value="com.thinkgem.jeesite.modules.sys.service.rpc.SystemRpcServiceImpl"/> 
	</bean>

</beans>

Spring完成zbus代理透明化,zbus设施从你的应用逻辑中彻底消失

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值