[英]How WSO2 APIM Gateway Worker gets published api artifacts when distributed setup get redeployed?
[英]WSO2 APIM doesnt update a published API in a cluster setup
設置:兩個WSO2 APIM指向相同的MYSQL。 這兩個WSO2實例位於LB后面,發布者會話是粘性的。 API會話不粘。 我發布了API“/public/1.0.0/abc”,之前指向“/ api / app / v1 / xyz”。 我更新了已發布的API,現在指向“/ api / app / v1 / abc”。
問題:現在更新后通過curl訪問已發布的API時,有時會返回預期結果,但有時會拋出403錯誤。 似乎一個實例中的更新沒有傳播到另一個實例? 以下步驟使其工作意味着停機時間,我們正在努力避免停機。
完成這項工作的唯一方法是執行以下操作:
1. Shutdown the wso2am app on the working instance (Instance1)
2. Update the API again on WSO2 publisher so Instance2 picks up the change
3. Start back the Instance1 wso2am app
WSO2 Instance1記錄呼叫的工作原理:
==> /usr/lib64/wso2/wso2am/2.6.0/repository/logs/http_access_.log <==
- <private-subnet-ip> - - [04/Jun/2019:20:02:00 +0000] "GET /services/Version HTTP/1.1" - - "-" "ELB-HealthChecker/2.0"
<my-ip> <private-subnet-ip> - - [04/Jun/2019:20:02:22 +0000] "GET /public/1.0.0/abc HTTP/1.1" - - "-" "curl/7.54.0"
<my-ip> <private-subnet-ip> - - [04/Jun/2019:20:02:22 +0000] "GET /api/app/v1/abc HTTP/1.1" - - "-" "Synapse-PT-HttpComponents-NIO"
- <private-subnet-ip> - [04/Jun/2019:20:02:00 +0000] "- - " 200 - "-" "-"
- <private-subnet-ip> - [04/Jun/2019:20:02:22 +0000] "- - " 200 - "-" "-"
- <private-subnet-ip> - [04/Jun/2019:20:02:22 +0000] "- - " 200 - "-" "-"
WSO2 Instance2記錄呼叫不起作用的地方:
==> /usr/lib64/wso2/wso2am/2.6.0/repository/logs/wso2carbon.log <==
TID: [-1234] [] [2019-06-04 20:01:24,511] WARN {org.apache.synapse.rest.API} - Trying to access API : admin--PublicAPI on restricted transport chanel [https] {org.apache.synapse.rest.API}
==> /usr/lib64/wso2/wso2am/2.6.0/repository/logs/wso2-apigw-errors.log <==
2019-06-04 20:01:24,511 [-] [PassThroughMessageProcessor-123] WARN API Trying to access API : admin--PublicAPI on restricted transport chanel [https]
==> /usr/lib64/wso2/wso2am/2.6.0/repository/logs/wso2carbon.log <==
TID: [-1234] [] [2019-06-04 20:01:24,511] INFO {org.apache.synapse.mediators.builtin.LogMediator} - STATUS = Message dispatched to the main sequence. Invalid URL., RESOURCE = /public/1.0.0/abc {org.apache.synapse.mediators.builtin.LogMediator}
==> /usr/lib64/wso2/wso2am/2.6.0/repository/logs/wso2-apigw-service.log <==
2019-06-04 20:01:24,511 [-] [PassThroughMessageProcessor-123] INFO __SynapseService STATUS = Message dispatched to the main sequence. Invalid URL., RESOURCE = /public/1.0.0/abc
如果您尚未共享兩個服務器之間的API工件,則會發生這種情況。 只有一台服務器具有更新的工件。 發布API時,它會創建存儲在服務器文件系統中的Synapse(API)工件。 位置是SERVER_HOME / repository / deployment / server / synapse / default / api位置。 如果您正在運行多個實例,則應該有一種機制來在服務器之間同步這些工件。 有幾種選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.