cnblogs.com

扩展Email系统,成就分布式协同

最近项目关于分布式系统,本来使用Web Service处理,但是遇到了最大一个麻烦:

 

我们是租用虚拟主机,对方虚拟主机每1分钟就会清空进程,导致长事务处理失败,影响数据库稳定性。

 

后来我想到了经典的Email系统,简单的思路:

1.需要分布式协同的数据对象序列化,然后DES对称加密算法加密,最后进行GZip压缩,作为Email的正文。

2.对Email的标题进行特别处理

3.发送一封Email到邮箱。

4.发送一个信令到目标系统,通知他收Email

5.对方读取Email,寻找对应的Email,获取里面的正文进行处理,删除这份Email

6.对方返回一个信令,通知本地操作成功。

 

至于信令的发送用回经典的WebService方法。

 

这样,整个分布式架构就完全穿越防火墙,体现了WebService优点,又保证了分布式事务处理的安全。

 

后续:

这个思路和UDP很像,而且有效。关键点是:本地Smtp发送了Email之后,必须线程等待,然后再通知对方采用Pop3收邮件,否则由于延迟无法收。



[新闻]VMware加盟Linux基金会

Read the complete post at http://www.cnblogs.com/zc22/archive/2008/08/07/1262913.html