Personal-Data-Linkage-Module / pxr-linkage

4 stars 1 forks source link

ユーザが多い状態だと、create-user-batchが正常に動作しない #89

Closed jou-imaizumi closed 4 months ago

jou-imaizumi commented 9 months ago

事象

性能の検証用に10000人程のユーザを作成し、検証を行っています。 create-user-batchを15分に一度実行しながら、10000人のユーザのbook開設を行いました。 その結果、7000人のユーザを作成したあたりから、create-user-batchでエラーになってしまい。連携ができませんでした。 登録しているユーザが多い状態だと、create-user-batch内部の処理(my-Condition-Book取得)の箇所でエラーになるようでした。 以下に詳細を記載するので、ご確認よろしくお願いします。

create-user-batchのログ

create-user-batch.log app1_book-operate-application.log app1_book-operate-http.log app1_book-operate-access.log

my-condition-book取得の解析

ユーザ1人の検索場合

実行コマンド

curl -v -k -X POST \
'https://<rootドメイン>/pxr-block-proxy/pxr-block-proxy/?path=%2Fbook-manage%2Fsearch' \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
-H 'x-xsrf-token:fGfBixEQ-juhj6LaoM-y86v2iRyVqnHM6S2Q' \
-b 'operator_type3_session=045c763488d7d180baca7ebb698f5a0a269c907b7165559ef489a676511caf8d;_csrf=EtQ6vrzrQr9OBuzmsuodDDAk' \
  -d'{"pxrId":null,"createdAt":null,"offset":5,"limit":1}'

レスポンス

[{"pxrId":"test_user5","status":0,"attributes":{},"cooperation":[{"actor":{"_value":1000785,"_ver":2},"region":{"_value":1000790,"_ver":5},"app":null,"wf":null,"userId":"308e385a-7705-42c1-9a2f-5b88f6e9d575","startAt":"2024-02-02T21:15:04.002+0900","status":1},{"actor":{"_value":1000787,"_ver":2},"region":null,"app":{"_value":1000800,"_ver":3},"wf":null,"userId":"test_user5app1","startAt":"2024-02-02T21:14:59.960+0900","status":1},{"actor":{"_value":1000802,"_ver":2},"region":null,"app":{"_value":1000810,"_ver":3},"wf":null,"userId":"test_user5app2","startAt":"2024-02-02T21:15:00.951+0900","status":1},{"actor":{"_value":1000812,"_ver":2},"region":null,"app":{"_value":1000829,"_ver":3},"wf":null,"userId":"test_user5app3","startAt":"2024-02-02T21:15:02.082+0900","status":1}],"userInformation":{"_code":{"_value":1000373,"_ver":1},"item-group":[{"title":"氏名","item":[{"title":"姓","type":{"_value":30019,"_ver":1},"content":" サンプル"},{"title":"名","type":{"_value":30020,"_ver":1},"content":"太郎"}]},{"title":"性別","item":[{"title":"性別","type":{"_value":30021,"_ver":1},"content":"男"}]},{"title":"生年(西暦)","item":[{"title":"生年(西暦)","type":{"_value":1000372,"_ver":1},"content":2000}]},{"title":"住所(行政区)","item":[{"title":"住所(行政区)","type":{"_value":1000371,"_ver":1},"content":"東京都港区"}]},{"title":"連絡先電話番号","item":[{"title":"連絡先電話番号","type":{"_value":30036,"_ver":1},"content":"080-0000-0000","changable-flag":true,"require-sms-verification":false}]}]}}]

ユーザ全員の検索の場合(create-user-batchと同じ処理)

実行コマンド

curl -v -k -X POST \
'https://<rootのドメイン名>/pxr-block-proxy/pxr-block-proxy/?path=%2Fbook-manage%2Fsearch' \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
-H 'x-xsrf-token:fGfBixEQ-juhj6LaoM-y86v2iRyVqnHM6S2Q' \
-b 'operator_type3_session=045c763488d7d180baca7ebb698f5a0a269c907b7165559ef489a676511caf8d;_csrf=EtQ6vrzrQr9OBuzmsuodDDAk' \
  -d'{"pxrId":null,"createdAt":null}'

レスポンス

{"status":500,"message":"宛先ブロックのリバースプロキシーAPIの呼び出しに失敗しました"}

ログ

root_book-manage-access.log root_book-manage-http.log root_pxr-block-proxy-access.log root_pxr-block-proxy-application.log root_pxr-block-proxy-http.log

yoshi-sakagami commented 7 months ago

ユーザ数が多くエラーになっているときの環境情報について共有しておきます。 (特段負荷がかかりすぎて落ちている印象はない)

■テスト環境情報(Azure) DBスペック:Azureフレキシブルサーバ Standard_D2ds v4(2コア 8GiBメモリ) ノードプールのスペック:Standard D4s v3 (4vpc、16GiBメモリ)  ■エラー時のメトリック ・DB DBメトリック ・ノード ノード負荷 ・コンテナごとのCPU、メモリ使用率(エラー発生時) コンテナごとのCPU、メモリ使用率

smit-akiyama commented 7 months ago

情報提供ありがとうございました。

ログを確認すると、book-manage-serviceのMy-Condition-Book一覧取得APIでリクエストは受け取っているが、その後の処理を確認できないため、途中で異常終了していると推測しています。 create-user-batch が呼び出している 利用者作成(バッチ)API (POST book-operate/user/batch) が My-Condition-Book一覧取得API (POST book-manage/search) を実行する処理を、offset/limitを利用したforループへ変更して分割取得するように変更することで事象解決を図ります。

修正概要

利用者作成バッチ create-user-batch

Book運用サービス.利用者作成(バッチ)API POST: /book-operate/user/batch

横展開(Book管理サービス.Book一覧取得API呼び出し箇所)

CToken台帳サービス.Local-CToken差分登録API POST: /ctoken-ledger/local