微服务落地的难点解析
微服务开发是分布式架构,数据库是独立的,由此带来许多难题,下面加以讨论。
1.分布式事务。无论是基于DDD还是ODD,分布式事务是一个共同的难题。微服务的关键难点在于分
布式事务处理,根据CAP理论,微服务架构采用最终一致性Eventual Consistency实现数据的一致性,这需要采用基于Event process分布式事务处理完成。为此需要创新地设计新的方法来完成事务的处理。
结合目前事务处理的精华,我开发了太极分布式事务处理框架TJDTP,采用可靠消息服务和补偿处理机制,巧妙地运用数据库的事务处理能力,对服务操作结果进行判断,调用应用系统自身的事务处理功能,从而有效地解决微服务的分布式事务处理问题。通过使用缓存,解决服务调用的冥等性和消息的冥等性,在事务处理时,采用异步并行调用和消息调用对应的服务,提高了性能。TJDTP是一个非常优秀的框架,优势在于提高了应用的成功率,自动进行分布式事务处理,事务处理速度快,提高了数据的一致性,把对事务的处理由不可控变为可控,需要人工处理的故障可一键完成,简单快捷,实现事务处理的自动化,框架提供SDK,开发使用方便,高效实用,可以支持任何微服务架构的项目,而且可以运用于任何其他项目,是一个业界领先的世界级成果, 可以简单有效地实现CQRS+Event Sourcing领域模型DDD架构开发。
微服务项目技术架构
2.查询。
同样由于数据库独立,查询变得困难,一个好办法是建立一个汇总库,把各个微服务的数据库数据同步进来,查询在总库完成,从而可以轻松简单解决。对于oracle数据库,同步变得简单,使用rac、adg可以轻松完成。对于mysql数据库,有2个办法。
1
一是采用消息机制,当代码里数据库发生cud数据,则发送消息,然后调用线程把数据同步到总库。二是根据数据库的log,把变化的数据同步到总库。阿里的mysql同步技术天下第一,开发了oceanbase 分布式全球数据库,实现数据同步,为满足双11的天量访问并发提供了坚实的基础。
相比以上问题,微服务的分布式架构的优势是主要的,可以支持敏捷devops开发,保证系统的永远运行、动态修复,是一个革命性飞跃。
2
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论