Mina开发领悟

使用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>



以上是具体的实现思路

你可能感兴趣的:(spring,多线程,配置管理,Mina,UseCase)