稳定模式在restful架构中的应用-java开发java经验技巧

稳定模式在restful架构中的应用-java开发java经验技巧

ID:30919764

大小:160.34 KB

页数:20页

时间:2019-01-04

稳定模式在restful架构中的应用-java开发java经验技巧_第1页
稳定模式在restful架构中的应用-java开发java经验技巧_第2页
稳定模式在restful架构中的应用-java开发java经验技巧_第3页
稳定模式在restful架构中的应用-java开发java经验技巧_第4页
稳定模式在restful架构中的应用-java开发java经验技巧_第5页
资源描述:

《稳定模式在restful架构中的应用-java开发java经验技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、稳疋模式在RESTful架构中的应用-编程开发技术稳定模式在RESTful架构中的应用木文由ImportNew・乔永琪翻译自javaworldo欢迎加入翻译小组。转载请见文末要求。分布式系统中保持网络稳定的五种方式1.重试模式2.超时模式3.断路器模式4.握手模式5.隔离壁模式倘若分布式系统的可靠性由一个极弱的控件决定,那么一个很小的内部功能都可能导致整个系统不稳定。了解稳定模式如何预知分布式网络热点,进而了解应用于Jersey和RESTEasyRESTFUL事务中的五种模式。要实现高可用、高可靠分布式系统,需要预测一些可不预测的状况。假设你运行规模更大的软件系统,产品发布Z后迟早

2、会面临的各种突发状况,一般你会发现两个重要的漏洞。第一个和功能相关,比如计算错误、或者处理和解释数据的错误。这类漏洞很容易产牛,通常产品上线前这些bug都会被检测到并得到处理。第二类漏洞更具挑战性,只有在特定的底层框架下这些漏洞才会显现。因此这些漏洞很难检测和重现,通常情况下不易在测试中发现。相反的,在产品上线运行时几乎总会遇到这些漏洞。更好的测试以及软件质量控制可以提高漏洞移除的机率,然而这并不能确保你的代码没有漏洞。最坏的情况下,代码中的漏洞会触发系统级联错误,进而导致系统致命的失败。特别是在分布式系统屮,其服务位于其它服务与客户端之间。稳定分布式操作系统的网络行为系统致命失败

3、热点首要是网络通信。不幸的是,分布式系统的架构师和设计者常常以错误的方式假设网络行为。二十年前,L.PeterDeutsch和其他Sim公司同事就撰文分布式错误,一直到今天依然普遍存在。1.网络是可靠的2.零延迟3.无限宽带4.网络是安全1.不变的拓扑结构2.只有一个管理员3.传输成木为零4.同质化的网络今天的多数开发人员依赖RESTFUL系统解决分布式系统网络通信带来的诸多挑战。REST最重要的特点是,它不会隐藏存在高层的RPC桩(Stub)后面的网络通信限制。但RESTful接口和终端不能单独确保系统内在的稳定性,述需要做一些额外的工作。本文介绍了四种稳定模式来解决分布式系统中

4、常见的失败。本文关注REStful终端,不过这些模式也能应用于其他通信终端。木文应用的模式来自MichaelNygeird的书,http://www.importnew.com/ReleaseTt!DesignandDeployProduction-ReadySoftwareo示例代码和demo是口己的。卜载本文源代码,GregorRoth在2014年10月JavaWorld大会上关于稳定模式在RESTful架构中的应用的源代码。应用稳定模式稳定模式(StabilityPattern)用来提升分布式系统的弹性,利用我们熟知的网络行为热点去保护系统免遭失败。本文所引用的模式用来保护分

5、布式系统在网络通信中常见的失败,网络通信中的集成点比如Socket、远程方法调用、数据库调用(数据库驱动隐藏了远程调用)是第一个系统稳定风险。用这些模式能避免一个分布式系统仅仅因为系统的一部分失败而宕机。网店demo在线电子支付系统通常没有新的客户数据。相反,这些系统常常基于新用户住址信息为外部在线信用评分检查。基于用户信用得分,网店demo应用决定采用哪种支付手段(信用卡、PayPal账户、预付款或者发票)。这个dem。解决了一个关键场景:如果信用检测失败会发生什么?订单应该被拒绝么?多数情况卜,支付系统回退接收一个更加可靠的支付方式。处理这种外部控件失败即是一种技术也是一种业务

6、决策,它需要在失去订单和一个爽约支付可能之间做出权衡。图1显示了网店系统蓝图图1电了支付系统流程图网店应用采用内部支付服务决定选用何种支付方式,即支付服务提供针对某个用户支付信息以及采用何种支付方式。本例中服务采用RESTful方式实现,意味着诸如GET或者POST的HTTP方法会被显示调用,进而由URI对服务资源进行处理。此方法在JAX-RS2.0特殊注解所在代码样品屮同样冇体现。JAX-RS2.0文档实现了REST与Java的绑定,并作为Java企业版本平台。列表1、采用何种支付手段@Singleton@Path("/〃)publicclassPaymentService{〃…

7、privatefinalPaymenlDaopaymentDao;privatefinalURIcreditScoreURI;privatcfinalstaticFunction〈Scorc,ImmutablcSct〈PaymcntMcthod>>SCORE_TO_PAYMENTMETHOD=score->{switch(score){caseScore.POSITIVE:returnImmutableSet.of(CREDITCARD,PAYPAL,PREPAYME

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。