欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mina开发领悟

程序员文章站 2022-06-30 09:16:30
...
使用Mina作为通信层框架是不错的选择.
1. 使用长连接,不需要每一次通信都要重新建立连接,这样速度更快.
2. java对象序列化传输,不需要进行转化,使用方便.
3. Mina集成Spring后,可以像一般的接口方法调用,对于模块化集成很方便,管理也很清晰.

一个大项目进行模块化拆分后,代码结构清晰,维护方便,模块间通过接口调用.

服务端开放接口服务,通过接口的JDK代理的反射机制调用该服务的实现类,并得到返回值,返回给调用方,通过hsf-service返回到客户端.
[服务端采用mina的事件驱动机制,多线程非阻塞,提供高性能服务]

客户端通过接口调用接口方法,根据路由规则找到目标机器,建立连接,如果有很多台机器,各业务方都是不同的机器,那么可以根据ip:port建立连接缓存.第一次连接的时候,建立连接池(比如5个池对象),每一次使用的时候获取一个,用完放回去.此连接作为复用,不关闭。

Mina建立长连接的服务调用是不错的选择,不过使用长连接,连接的复用很重要,否则性能全在建立和断开连接上了.

以下是例子:
服务配置
<beans default-autowire="byName">
	<bean id="exp" class="test.org.frame.hsf.usecase.ExpImpl"/>
	<bean id="expService" class="org.frame.hsf.service.ProviderService" init-method="init">
		<property name="serviceInterface">
			<value>test.org.frame.hsf.usecase.Exp</value>
		</property>
		<property name="target">
			 <ref bean="exp" />
		</property>
</bean>
</beans>


客户端配置

<beans default-autowire="byName">
	<bean id="exp" class="org.frame.hsf.service.ClientService" init-method="init" singleton="true">
		<property name="serviceInterface">
			<value>test.org.frame.hsf.usecase.Exp</value>
		</property>
		<property name="target">
			 <value>localhost:8901</value>
		</property>
	</bean>
</beans>



以上是具体的实现思路