对SOA的一些认识

请教我们架构师总结的。
.SOA最重要的作用:
1.对数据库资源的控制,防止数据库资源被很多客户端耗尽。如:DAL服务。
2.性能。如可在SOA服务里做缓存。
3.并发。如在SOA里插入数据的时候可以放入队列再插入数据库。
4.部分解耦,但不能完全真正解耦。
二.SOA的缺点
1.事务不能保证,可能会造成事务不一致。
如:暴力上线(kill -9),cpu 100%,bug等。互联网可能会容忍数据丢失,但有的项目对数据一致性要求非常高。
三.SOA服务的要点
服务的粒度。粒度不宜太细,太细一定有问题。
如:A项目划分为一些不同的模块,模块内还是采用数据库直连。模块间是采用服务的方式;
B项目的服务粒度划分非常细,现在面临很多数据不一致的问题,很头疼。
四.客户端调用SOA的方法
1.异步化。可以保证事务的最终一致性。
2.同步调用。重要的数据需要数据比对程序进行校验。
3.同步异步相结合。还是需要数据比对程序。
五:其他
1.SOA中抛异常,异常会被序列化,反序列化,性能很差。建议是状态码的方式。
2.SOA中catch 异常的时候最好catch Throwable的。防范有的异常Exception捕获不到。
2.对数程序要保证一方的数据是准确的,如果对数的双方数据都不准确很麻烦。比如服务过多很可能会导致对数的双方数据都不准确。

猜你喜欢

转载自magicyang919.iteye.com/blog/1880217