アプリケーション電流制限アクセスマニュアル

第 1 章             概要

1。概要

2. 機能説明

3. 電流制限ポリシーを適用する

第 2 章             ビジネス電流制限の構成

1. 説明

2. コンテキスト管理

3. トークンプール管理

4. 優先キュー管理

第 3 章             アプリケーションへのアクセス

1. 依存関係を導入する

2. スプリング構成

3.業務電流制限API

4. 例外処理

 

 

 

 

 

 

 

 

 

 

 

第 1 章     概要

1。概要

1.1. 用語の説明:

名前

説明する

述べる

サーバ

独自に導入された電流制限アプリケーション サーバーは、優先ポリシーの設定やアラーム スナップショットの受信などの機能を提供します。

 

クライアント

アクセス電流制限機能を利用する業務アプリケーションにjarパッケージで提供

 

ビジネスアプリケーション

特定の即金商品用途に対応

 

 

 

 

 

2. 機能説明

2.1. 電流制限クライアント

  1. 1. トークンの割り当て:設定されたトークン容量とタイムアウト時間に従って、トークンの発行、解放、タイムアウト解放が管理されます。                                                                                                                      
  2. 2. 同期トークン優先戦略: クライアントはサーバーからポリシー設定情報の変更をロードし、対応するトークン プールにリアルタイムでポリシーを適用します。
  3. トークン キューイング キューのメンテナンス: ビジネス優先度に応じたキューの挿入やタイムアウト後のキックアウトなど、優先度ポリシーに従ってキューイング キューをメンテナンスします。
  4. 電流制限パラメータサービス:http経由で電流制限パラメータを提供します。
  5. 1. 電流制限パラメータの設定とメンテナンス。

2.2. 電流制限サーバー

2.3. ウェブサイトの運営および保守

 

 

3. 電流制限ポリシーを適用する

l トークンを割り当てるときは、リクエストの優先度に従って、対応するトークン プール キューにアイドル状態のトークンがあるかどうかを確認し、存在する場合はそれを返し、そうでない場合は空を返します。

l 業務処理が完了すると、トークンは解放され、トークンが属する優先度のトークンプールに戻されます。

 

 

 

 

第 2 章     ビジネス電流制限の構成

1. 説明

運用保守監視システムにおける電流制限構成管理の選択

 

2. コンテキスト管理

新規、削除、および変更されたコンテキストは、現在の制限設定管理インターフェイス上で維持できます。

 

コンテキスト名は任意の文字列です

スナップショット送信時間が0の場合、スナップショットは送信されません。

一時停止ボタンを使用すると、コンテキストの現在の制限を無効にできます。このとき、すべてのビジネス リクエストは通過できます。

コンテキスト名をクリックして、そのコンテキストの下のトークン プール インターフェイスに入ります。

3. トークンプール管理

複数のトークン プールを 1 つのコンテキストで構成できます

 

トークン プール名には任意の文字列を使用できます

一時停止ボタンを使用すると、トークン プールの現在の制限を無効にすることができます。このとき、ビジネス リクエストは通過できます。

「変更」をクリックして、トークン・プールの数やタイムアウト時間などのパラメータを変更します。

 

 

トークン プール名をクリックして、トークン プールの下の優先設定インターフェイスに入ります。

 

4. 優先キュー管理

 

 

 

 

 

一致する値: 通常の文字列または正規表現を使用できます。正規表現は /.*/ のように / で囲む必要があります。その他の形式は通常の文字列として扱われ、複数の一致する値はスペースで区切られます。/.*/ を除いて、パフォーマンスへの影響を避けるために、正規表現はできるだけ避ける必要があります。

同時リクエストの最大数: リクエスト トークンは非同期で実装され、このパラメータは非同期リクエスト キュー内のタスクの最大数を指定します。

 

 

 

 

第 3 章     アプリケーションへのアクセス

1. 依存関係を導入する

<dependency org="com.99bill" name="if-flowcontrol" rev="1" conf="zip->default"/>

<dependency org="com.sun" name="javaee-api" rev="5" conf="compile->default"/>

<dependency org="com.ibm" name="wsdl4j" rev="1.6.1" conf="compile->default"/>

<dependency org="javax.xml" name="jaxrpc-api" rev="1.1" conf="compile->default"/>

<dependency org="org.slf4j" name="slf4j-api" rev="1.5.8" conf="compile->default"/>

<dependency org="org.spring" name="spring" rev="2.5.5" conf="zip->default"/>      

 

2. スプリング構成

<bean id= "tokenPoolManager"

 クラス = "com.bill99.fc.service.token.TokenPoolManagerFactoryBean" >

        <プロパティ名= "contextName"値= "myContext" />

        <プロパティ名= "serverUrl"値= "${inf.fc.server.url}" />

 

        <!-- 次のパラメータはオプションです -->

        <!-- トークン取得の最大タイムアウト、デフォルトは 10000 -->

        <プロパティ名= "tokenGettingTaskTimeOut"値= "3000" />

        <!-- 起動後の設定ロードの遅延時間、デフォルトは 60000 -->

        <プロパティ名= "configReloadDelay"値= "10000" />

        <!-- 構成を更新する間隔、デフォルトは 30000 -->

        <プロパティ名= "configReloadInterval"値= "60000" />

    </豆>      

ここで、myContext は自分で設定したコンテキスト名です。

${inf.fc.server.url} はサーバー アドレスです。ACMS に接続する場合は、このプレースホルダーを直接導入できます。

3.業務電流制限API

软件包 com.bill99.fc.service.token

类摘要

Token

令牌对象

TokenPoolManager

限流控制主入口

TokenPoolManagerFactoryBean

 

 

com.bill99.fc.service.token 
类 TokenPoolManager

java.lang.Object
 
 
com.bill99.fc.service.token.TokenPoolManager

public class TokenPoolManager
extends java.lang.Object

限流控制主入口

方法摘要

 void

active() 
          激活限流功能

 void

deactive() 
          暂停令牌功能

 Token

getToken(java.lang.String poolName, java.lang.String in) 
          从令牌池中获取令牌

参数:

poolName - 令牌池名称,与服务端配置的令牌池名称对应

in - 业务参数,用于确定优先级

返回:

成功时为Token实例,无可用令牌时返回null

static TokenPoolManager

getTokenPoolManager() 
          获取 TokenPoolManager唯一入口

 boolean

isActive() 
           判断是否激活

 

com.bill99.fc.service.token 
类 Token

java.lang.Object
  
 
com.bill99.fc.service.token.Token

public class Token
extends java.lang.Object

令牌对象

方法摘要

 long

getHeldDuration() 
          获得保持时长

 java.lang.String

getId() 
          获得令牌标识 

 long

getIssueTime() 
           获得颁发时间

 java.lang.String

getPoolName() 
           获得所属令牌池名称

 java.lang.Integer

getPriority() 
           获得优先级

 boolean

isExpired() 
           是否过期

 void

release() 
          释放令牌

 

使用示例:

//…..
//获得令牌
Token t = TokenPoolManager.getTokenPoolManager.getToken(“/internal/txn”,
999451145110001 &PUR”);
//业务处理
//….
//业务处理完毕,归还令牌
t.releaseToken();

 


4.  异常处理

异常情况

处理方式

客户端请求服务端同步策略配置失败

此种场景为客户端首次启动时发生,此时由于客户端无优先策略配置,对于所有请求都按同一优先级进行限流控制。当达到配置的轮询间隔时期后,客户端再次尝试向服务端请求策略配置信息。

 

 

おすすめ

転載: blog.csdn.net/wo240/article/details/47266803