概述
使用輕量消息隊列(原 MNS)中的HttpEndpoint接口鑒權時,遠程請求公鑰證書比較耗時,本文主要介紹提高鑒權性能的方法。
問題原因
輕量消息隊列(原 MNS)的每個推送請求中都會攜帶公鑰證書地址,可根據公鑰證書地址,通過鍵值對(Key-Value)的方式緩存證書。之后只要證書沒有更新,就可以從內存中直接獲取證書,減少每次遠程請求的耗時。如果證書更換,證書名和地址可能會隨之更新。
解決方法
在處理推送請求時,根據x-mns-signing-cert-url
參數中的地址從緩存中直接獲取證書。如果獲取失敗,則通過遠程訪問證書并存儲到緩存,以便下次使用,可參考如下示例。
例如,公鑰證書地址為:https://mnstest.oss-cn-hangzhou.aliyuncs.com/x509_public_certificate.pem
,可使用如下方式緩存公鑰證書。
typedef map<string, string> cache;
cache["x509_public_certificate.pem"] = "$content";
cache["x509_public_certificate.pem.version2"] = "$content2";
文檔內容是否對您有幫助?