教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

企业原生微服务平台技术方案建议书 - 图文(3)

来源:网络收集 时间:2026-01-26
导读: 阶段主要是对业务系统进行检测及资源预留CONFIRMING阶段是做业务提交,通过TRYING阶段执行成功后,再执行该阶段。默认如果TRYING阶段执行成功,CONFIRMING就一定能成功。CANCELING阶段是回对业务做回滚,在TRYING阶

阶段主要是对业务系统进行检测及资源预留CONFIRMING阶段是做业务提交,通过TRYING阶段执行成功后,再执行该阶段。默认如果TRYING阶段执行成功,CONFIRMING就一定能成功。CANCELING阶段是回对业务做回滚,在TRYING阶段中,如果存在分支事务TRYING失败,则需要调用CANCELING将已预留的资源进行释放。第三种方案:最大努力通知型,这种方案主要用在与第三方系统通讯时,比如:调用微信或支付宝支付后的支付结果通知。这种方案也是结合MQ进行实现,例如:通过MQ发送http请求,设置最大通知次数。达到通知次数后即不再通知。

微服务的关键难点在于分布式事务处理,根据CAP理论,微服务架构采用最终一致性Eventual Consistency实现数据的一致性,这需要采用基于Event process分布式事务处理完成。为此需要创新地设计新的方法来完成事务的处理。我设计并开发了基于EP的业务系统补偿事务处理框架—太极分布式事务处理框架(TJDTH),可以有效地解决这个问题,其优势在于提高了事务的成功率,故障一键恢复,开发方便,简单实用。现在的项目都是OOD架构,可以很简单地转换为微服务架构,也都可以采用TJDTH太极分布式事务处理框架处理事务。

当建立微服务时,我们被强迫面对状态的最终一致性问题,这是因为每个微服务都拥有自己的数据库资源,每个数据库都配置了不同的一致性和可用性权衡策略。 最终一致性是一种用于描述在分布式系统中数据的操作模型,在分布式系统中状态是被复制然后跨网络多节点保存,在关系数据库集群中,最终一致性被用来在集群多个节点之间协调数据复制的写操作,数据库集群中这种写操作挑战是:各个节点接受到的写操作必须严格按照复制的次序进行,这个次序是有时间损耗的,从这个角度看,数据库在集群节点之间的这种状态复制还是可以被认为是

一种最终一致性,所有节点状态在未来某个时刻最终汇聚到一个一致性状态,也就

11

是说,最终达成状态一致性。当构建微服务时,最终一致性是开发者DBA和架构师频繁打交道的问题,当开始在分布式系统中进行状态处理时,头疼问题更加严重。

结合目前事务处理的精华,开发了太极分布式事务处理框架TJDPH,采用可靠消息服务和补偿处理机制,巧妙地运用数据库的事务处理能力,对服务操作结果进行判断,调用应用系统自身的事务处理功能,从而有效地解决微服务的分布式事务处理问题。通过使用缓存,解决服务调用的冥等性和消息的冥等性,在事务处理时,采用异步并行调用和消息调用对应的服务,提高了性能。TJDPH是一个非常优秀的框架,优势在于提高了应用的成功率,自动进行分布式事务处理,事务处理速度快,提高了数据的一致性,把对事务的处理由不可控变为可控,需要人工处理的故障可一键完成,简单快捷,实现事务处理的自动化,框架提供SDK,开发使用方便,高效实用,可以支持任何微服务架构的项目,而且可以运用于任何其他项目,是一个业界领先的世界级成果。

3. 自动化测试框架

自动化测试可以一定程度上减轻测试人员负担,提高测试效率,并且通过自动化还可以实现可靠性测试和性能测试。微服务对devops、jenkins提供良好的支持,利于自动化测试和快速构建发布,支持故障的快速排出。自动化测试可以快速自动完成大量测试用例,节约巨大的人工测试成本;同时它需要拥有专业开发技能的人才能完成开发,且需要大量时间进行维护(在需求经常变化的情况下)。安全测试很重要,可以采用CAL9000等工具测试web安全。用Selenium +Cucumber来完成自动化测试,采用BDD方式进行微服务自动化测试,主要用到下面的软件: 语言: Java8

框架: SpringBoot 、cloud

12

构建工具: maven

WebDriver: Selenium、Cucumber 单元测试框架: Junit

3.1. 说明

Selenium 是目前用的最广泛的Web UI 自动化测试框架。

Selenium也是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、chorme等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建衰退测试检验软件功能和用户需求。支持自动录制动作和自动生成。Net、Java、Perl等不同语言的测试脚本。Selenium 是ThoughtWorks专门为Web应用程序编写的一个验收测试工具。 Selenium是一套完整的Web应用程序测试系统,它包含了测试的录制(Selenium IDE)、编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可运行于任何支持JavaScript的浏览器上。与WatiN相同,Selenium也是一款同样使用Apache License 2.0协议发布的开源框架。

Selenium 测试直接在浏览器中运行,就像真实用户所做的一样。Selenium 测试可以在 Windows、Linux 和 MacintoshAnd 上的 Internet Explorer、Mozilla 和 Firefox、chrome 中运行。其他测试工具都不能覆盖如此多的平台。

使用 Selenium 和在浏览器中运行测试还有很多其他好处。下面是主要的两大好处: 通过编写模仿用户操作的 Selenium 测试脚本,可以从终端用户的角度来测试应用

13

程序。

通过在不同浏览器中运行测试,更容易发现浏览器的不兼容性。

Selenium 的核心,也称 browser bot,是用 JavaScript 编写的。这使得测试脚本可以在受支持的浏览器中运行。browser bot 负责执行从测试脚本接收到的命令,测试脚本要么是用 HTML 的表布局编写的,要么是使用一种受支持的编程语言编写的。 使用junit对服务进行单元测试,再先使用Selenium写一个简单的行为级别的ui测试,然后再结合Cucumber完成测试,进行自动化测试。

Android测试.使用UI Automator 测试自动化框架 。 这款工具是谷歌最近发布的。它支持从4.1开始的安卓版本。这样就得再选择另一个安卓应用测试工具来做早期版本自动化测试。UI Automator能够与各种Android软件产品交互,包括系统中的应用。这使UI Automator可以锁定和解锁智能手机或平板电脑。

通过这个工具创建的脚本可以在许多不同的安卓平台上执行。它可以重现复杂的用户操作动作。 UI Automator也可以利用一个设备的外部按键,如回放键、音量调节键、开关键来控制。 它可以集成测试框架TestNG。在这种情况下,UI Automator可以生成丰富和详细的报告,类似于Ranorex生成报告。另外,这个工具搜索功能非常快。 软件测试专家发现UI Automator是一款适用于许多Android平台的移动应用测试。它是一款最适合安卓应用测试的工具之一,因为它是由谷歌专门为这个操作系统发布的。目前,安卓操作系统设备上约66%使用的是安卓4.1。这就是为什么许多自动化测试工程师决定UI Automator是最合适的解决方案。

自动化从冒烟测试做起,用例设计要尽可能简洁,多做封装,以便降低维护成本。同时实现自动化的持续集成,更早介入测试,更早发现问题。在此基础之上,我们还可以通过自动化配合获取性能数据的脚本来实现对应用程序的性能测试。这些工作可以使

14

得我们的测试覆盖更广,测试力度更深,更好的检测和监控产品质量。

3.2. 使用

info.cukes

cucu …… 此处隐藏:2009字,全部文档内容请下载后查看。喜欢就下载吧 ……

企业原生微服务平台技术方案建议书 - 图文(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/442319.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)