帮酷LOGO
0 0 评论
  • 显示原文与译文双语对照的内容
Spring-based library of components to improve application stability.

  • 源代码名称:kite
  • 源代码网址:http://www.github.com/williewheeler/kite
  • kite源代码文档
  • kite源代码下载
  • Git URL:
    git://www.github.com/williewheeler/kite.git
  • Git Clone代码到本地:
    git clone http://www.github.com/williewheeler/kite
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/williewheeler/kite
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • 风筝是一个基于spring的组件库,称为 guards,它实现了各种模式来管理应用程序/服务可用性。性能和容量。 它的一部分是基于它的释放模式 ! Michael Nygard书。

    在两个简单的步骤中,

    假设你想要保护一个带有三个保护点的集成点: 一种并发节流。一个速率限制器和一个断路器。 你当然可以用手动编码这个逻辑,你不需要这样做。 取而代之的只是两个简单的步骤。

    步骤 1,你将需要配置警卫:

    <beans:beansxmlns="http://zkybase.org/schema/kite"xmlns:beans="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://zkybase.org/schema/kite http://zkybase.org/schema/kite/kite-1.0-a3.xsd">
     <!-- Activate Kite annotations --> <annotation-config/>
     <!-- Guards --> <circuit-breakerid="messageServiceBreaker"exceptionThreshold="3"timeout="30000"/>
     <concurrency-throttleid="messageServiceThrottle"limit="50"/>
     <rate-limiting-throttleid="messageServiceRateLimiter"limit="5000"/>
     <!-- Export the guards as MBeans --> <context:mbean-export/>
    </beans:beans>

    步骤 2,你将需要注释服务方法。 我假设这里有事务性服务,但这不是必需的:

    @Service@TransactionalpublicclassMessageServiceImplimplementsMessageService {
     @GuardedBy({
     "messageServiceThrottle",
     "messageServiceRateLimiter",
     "messageServiceBreaker" })
     publicMessagegetMotd() { ... }
     @GuardedBy({
     "messageServiceThrottle",
     "messageServiceRateLimiter",
     "messageServiceBreaker" })
     publicList<Message>getMessages() { ... }
    }

    瞧:对服务方法的所有调用现在都被

    • 当保护中存在 50个并发请求时,并发节流会拒绝请求
    • 在给定时间内拒绝超过第 5,000个请求的限制的速率限制器
    • 在三个连续异常之后运行的断路器,在 30秒后重试

    风筝按指定顺序应用警卫。 另外,如果需要的话,保护人员都会被公开为手动停机。重置 等等的mbean。

    除了基于注释的方法,标准的template-和基于aop的方法也可用。

    可用保护

    这是一个新的ish项目,所以还没有太多,但是现在存在的内容是:

    按需的线路断路器:在可以配置的连续异常数量之后进行行程,并在可以配置超时之后重试。 最终可以基于失败率进行旅行,并且可以选择特定的异常类型。

    并发节流: 在达到可以配置并发限制的情况下失败的快速并发节流。 最终,throttles将能够拒绝基于sla的请求。

    按百分比限制节流:当主体在某个时间段内请求的请求数量达到可以配置的限制后,它将拒绝请求。 限制器使用 Spring Security 来确定所涉及的主体。

    我非常欢迎捐赠。 添加新的保护程序非常容易;只需看看 org.zkybase.kite.guard,看看如何做到这一点。




    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语