Я установил WSO2 APIM 3.0.0 с 2 узлами API-менеджера и 1 в качестве узла шлюза. Я сделал следующие конфигурации в моем файле deploy.toml:
[transport.thrift.agent]
queue_size = 65536
batch_size = 300
max_transport_pool_size = 250
secure_max_transport_pool_size = 250
[passthru_http]
worker_pool_queue_length = -1
http.max.connection.per.host.port = 32767
http.socket.timeout = 180000
[synapse_properties]
synapse.global_timeout_interval = 120000
[transport.https]
properties.port = 9443
properties.proxyPort = 443
maxThreads=""750""
minSpareThreads=""150""
disableUploadTimeout=""false""
enableLookups=""false""
connectionUploadTimeout=""120000""
maxKeepAliveRequests=""600""
acceptCount=""600""
Я провел нагрузочное тестирование с 2 примерами API и каждым API с 75 одновременными пользователями. После определенного периода нагрузочного тестирования, я наблюдаю EventQueueFullException на узле шлюза.
Ниже приведена трассировка стека ошибки:
org.wso2.carbon.databridge.agent.exception.EventQueueFullException: Cannot send events because the event queue is full
at org.wso2.carbon.databridge.agent.endpoint.DataEndpointGroup$EventQueue.tryPut(DataEndpointGroup.java:214)
at org.wso2.carbon.databridge.agent.endpoint.DataEndpointGroup$EventQueue.access$100(DataEndpointGroup.java:193)
at org.wso2.carbon.databridge.agent.endpoint.DataEndpointGroup.tryResendEvents(DataEndpointGroup.java:413)
at org.wso2.carbon.databridge.agent.endpoint.DataEndpoint.handleFailedEvents(DataEndpoint.java:348)
at org.wso2.carbon.databridge.agent.endpoint.DataEndpoint.access$100(DataEndpoint.java:47)
at org.wso2.carbon.databridge.agent.endpoint.DataEndpoint$EventPublisher.run(DataEndpoint.java:286)
at java.lang.Thread.run(Thread.java:745)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.lmax.disruptor.InsufficientCapacityException
Любая помощь очень ценится.