不適切な使用によって引き起こされるスレッド流血は、変数を共有しました

私はビジネスについてお話しましょう

事前受注は、トークンやその他のリスク管理レビューにいくつかの情報を送信する必要があります。注文は、物理と仮想の二つの独立したAPIインタフェースのオーダーです。

ThreadLocalのスレッドトークン情報、共有変数である背景に達しダボ尋のRpcContext暗黙の移動によって。トークン送ら舞台裏リスク管理レビューを取得します。

問題についての講演、そこに注文のトークンの種類を送信するために多くの仮想オンライン注文をして、と繰り返し率は比較的高いいます。

理由:仮想受注誤っては、ThreadLocalのスレッド共有変数にトークンを設定しないでください。バックトークンの取得の結果が、受注のスレッドトークン-種類セットで左に連れて行くとき。Tomcatのスレッドプール多重化するので、高繰り返し率の場合はそれが表示されます。

プロセスは、実質的に次のように

難しさの分析

トークンは機密情報であるため、生産環境が頻繁な再起動へのログ、テスト環境に印刷することはできません、スレッド変数の初期化順序の多くは物理的ではない、トークンが空で取得する仮想ためです。生産には問題を再現することはできません。

関連する問題、またはそれ以上の知識:

1、Tomcatのスレッドモデル

2、スレッドの共有変数

3、ダボ間サービス質量参加

 

おすすめ

転載: www.cnblogs.com/daghai/p/10966712.html