随便说说

      这两天给系统加了一个基于hessian的远程服务,本来很简单的一个东西,却因为种种原因,发布过程颇为坎坷,确实系统业务和流程非常庞大复杂,我刚开始来,也确实对系统不熟悉,但是不管怎样,我应该反思。

       和rmi,ejb等等分布式计算框架一样,hessian也是为了分布式计算。简单来说,一个基本的分布式计算应该解决如下的基本问题:

1:远程服务的透明调用

2:对象传输的序列化

3:通讯协议

与rmi不同的是,hessian的通讯是基于java servlet来做的,而不是像rmi那样有自己的独有通讯协议,要启动rmi服务,需要在web容器之外再指定端口,而hessian直接用web容器的http端口,因为它是一个servlet,同样,它也不能脱离于web容器单独存在,这是一个很取巧但是很聪明的地方,我认为1和2才是最重要的,至于用什么通讯的,那个谁关心?只要数据正常发送和响应就好了。关于数据的序列化和反序列化,hessian是有自己的私有协议的,而不是java的序列化格式。至于hessian怎么使用,这个相当简单,网上有很多例子。

       这次的发布测试,经过辛苦的排查,发现问题出在mod_jk的转发上,最终发现是因为apahce由于种种原因,没有正常的停止并启动,导致mod_jk.conf新加入的关于hessian服务的转发规则没有生效,hessian客户端调用时,老是报file not found,这是因为这个调用的url,不在apache的转发规则里,apache自己在服务器内部寻找,但url是个serlvet地址,apache当然找不到了。

     一句话,是我太相信了apache的控制脚本了。本来想写很多的,就先写到这里吧。

相关推荐