ОШИБКА — Ошибка DataEndpointConnectionWorker при попытке подключиться к конечной точке. Не удается заимствовать клиент для ssl://локальный хост:7712

#wso2-am

Вопрос:

В stackoverflow было два похожих вопроса, но они не помогли мне решить проблему. Я хочу использовать балансировку нагрузки для двух узлов wso2 api manager 3.2.0 с использованием Nginx. Я настроил менеджер api следующим образом : не могли бы вы, пожалуйста, направить меня?

 [transport.https.properties]
proxyPort = 443

[server]
hostname = "api.am.wso2.com"

node_ip = "127.0.0.1"
#offset=0
mode = "single" #single or ha

[super_admin]
username = "admin"
password = "admin"
create_admin_account = true

[user_store]
type = "database_unique_id"


[apim.throttling]
event_duplicate_url = ["tcp://172.24.64.115:5673"]

[[apim.throttling.url_group]]
traffic_manager_urls = ["tcp://172.24.64.114:9611"]
traffic_manager_auth_urls = ["ssl://172.24.64.114:9711"]
type = "loadbalance"

[[apim.throttling.url_group]]
traffic_manager_urls = ["tcp://172.24.64.115:9612"]
traffic_manager_auth_urls = ["ssl://172.24.64.115:9712"]
type = "loadbalance"
[apim.analytics]
enable = true
store_api_url = "https://localhost:7444"
#username = "$ref{super_admin.username}"
#password = "$ref{super_admin.password}"
event_publisher_type = "default"
event_publisher_impl = "org.wso2.carbon.apimgt.usage.publisher.APIMgtUsageDataBridgeDataPublisher"
publish_response_size = true

 [[apim.analytics.url_group]]
analytics_url =["tcp://172.25.129.69:7611","tcp://172.25.129.70:7611"]
analytics_auth_url =["ssl://172.25.129.69:7711","ssl://172.25.129.70:7711"]
type = "loadbalance"



#[[apim.analytics.url_group]]
#analytics_url =["tcp://analytics1:7612","tcp://analytics2:7612"]
#analytics_auth_url =["ssl://analytics1:7712","ssl://analytics2:7712"]
#type = "failover"
. 
 

Во время рунинга wso2server.sh столкнулся со следующим исключением :

     StandardEngine[Catalina].StandardHost[localhost].StandardContext[/keymanager-operations].File[/opt/v1/wso2am-3.2.0/repository/deployment/server/webapps/keymanager-operations.war]
    [2021-07-28 16:29:32,729]  WARN - DataEndpointGroup No receiver is reachable at reconnection, will try to reconnect every 30 sec
    [2021-07-28 16:29:32,732] ERROR - DataEndpointConnectionWorker Error while trying to connect to the endpoint. Cannot borrow client for ssl://localhost:7712
    org.wso2.carbon.databridge.agent.exception.DataEndpointAuthenticationException: Cannot borrow client for ssl://localhost:7712
            at org.wso2.carbon.databridge.agent.endpoint.DataEndpointConnectionWorker.connect(DataEndpointConnectionWorker.java:147) ~[org.wso2.carbon.databridge.agent_5.2.26.jar:?]
            at org.wso2.carbon.databridge.agent.endpoint.DataEndpointConnectionWorker.run(DataEndpointConnectionWorker.java:59) [org.wso2.carbon.databridge.agent_5.2.26.jar:?]
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_291]
            at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_291]
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_291]
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_291]
            at java.lang.Thread.run(Thread.java:748) [?:1.8.0_291]
    Caused by: org.wso2.carbon.databridge.agent.exception.DataEndpointSecurityException: Error while trying to connect to ssl://localhost:7712
            at org.wso2.carbon.databridge.agent.endpoint.thrift.ThriftSecureClientPoolFactory.createClient(ThriftSecureClientPoolFactory.java:81) ~[org.wso2.carbon.databridge.agent_5.2.26.jar:?]
            at org.wso2.carbon.databridge.agent.client.AbstractClientPoolFactory.makeObject(AbstractClientPoolFactory.java:39) ~[org.wso2.carbon.databridge.agent_5.2.26.jar:?]
            at org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:1212) ~[commons-pool_1.5.6.wso2v1.jar:?]
            at org.wso2.carbon.databridge.agent.endpoint.DataEndpointConnectionWorker.connect(DataEndpointConnectionWorker.java:137) ~[org.wso2.carbon.databridge.agent_5.2.26.jar:?]
            ... 6 more
    Caused by: org.apache.thrift.transport.TTransportException: Could not connect to localhost on port 7712
            at org.apache.thrift.transport.TSSLTransportFactory.createClient(TSSLTransportFactory.java:273) ~[libthrift_0.12.0.wso2v1.jar:?]
            at org.apache.thrift.transport.TSSLTransportFactory.getClientSocket(TSSLTransportFactory.java:173) ~[libthrift_0.12.0.wso2v1.jar:?]
            at org.wso2.carbon.databridge.agent.endpoint.thrift.ThriftSecureClientPoolFactory.createClient(ThriftSecureClientPoolFactory.java:64) ~[org.wso2.carbon.databridge.agent_5.2.26.jar:?]
            at org.wso2.carbon.databridge.agent.client.AbstractClientPoolFactory.makeObject(AbstractClientPoolFactory.java:39) ~[org.wso2.carbon.databridge.agent_5.2.26.jar:?]
            at org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:1212) ~[commons-pool_1.5.6.wso2v1.jar:?]
            at org.wso2.carbon.databridge.agent.endpoint.DataEndpointConnectionWorker.connect(DataEndpointConnectionWorker.java:137) ~[org.wso2.carbon.databridge.agent_5.2.26.jar:?]
            ... 6 more
    Caused by: java.net.ConnectException: Connection refused (Connection refused)
            at java.net.PlainSocketImpl.socketConnect(Native Method) ~[?:1.8.0_291]
            at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476) ~[?:1.8.0_291]
            at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218) ~[?:1.8.0_291]
            at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200) ~[?:1.8.0_291]
 

Сервер (69) и сервер(70) следующим образом:

   # Carbon Configuration Parameters
wso2.carbon:
  type: wso2-apim-analytics
    # value to uniquely identify a server
  id: wso2-am-analytics
    # server name
  name: WSO2 API Manager Analytics Server
    # ports used by this server
  ports:
      # port offset
    offset: 1

wso2.transport.http:
  transportProperties:
    -
      name: "server.bootstrap.socket.timeout"
      value: 60
    -
      name: "client.bootstrap.socket.timeout"
      value: 60
    -
      name: "latency.metrics.enabled"
      value: true

  -
      # Data receiver configuration
    dataReceiver:
        # Data receiver type
        # THIS IS A MANDATORY FIELD
      type: Thrift
        # Data receiver properties
      properties:
        tcpPort: '7611'
        sslPort: '7711'

  -
      # Data receiver configuration
    dataReceiver:
        # Data receiver type
        # THIS IS A MANDATORY FIELD
      type: Binary
        # Data receiver properties
      properties:
        tcpPort: '9611'
        sslPort: '9711'
        tcpReceiverThreadPoolSize: '100'
        sslReceiverThreadPoolSize: '100'
        hostName: 0.0.0.0
 

Не могли бы вы, пожалуйста, помочь мне ?

Комментарии:

1. Не могли бы вы также поделиться своей конфигурацией, связанной с регулированием?

2. Я обновил вопрос и разделил конфигурацию, связанную с регулированием

3. Откройте api-manager.xml файл в каталоге репозитория/conf. Каково значение в конфигурациях EventHubConfigurations. Конфигурация EventPublisherConfiguration. Приемная группа?

4. Кроме того, настроили ли вы аналитику с серверами API Manager? Если это так, пожалуйста, обновите прилагаемые конфигурации TOML, отражающие сегмент аналитики.

5. Спасибо. api — менеджер<ReceiverUrlGroup>tcp://${углерод. локальный.ip}:${адрес получателя.url. порт}</ReceiverUrlGroup>

Ответ №1:

Если вы настроили узел аналитики со смещением, отличным от значения по умолчанию, необходимо настроить оба analytics_url узла и analytics_auth_url в разделе apim.analytics.url_group конфигурация указать правильное имя хоста и порты сервера аналитики.

Чтобы не сделать этого, мы можем наблюдать вышеупомянутую Connection Refused ошибку на стороне менеджера API, так как он пытался связаться с Аналитикой, и нет никаких портов, открытых для прослушивания канала связи. Поэтому, пожалуйста, убедитесь, что вы настроили analytics_url и analytics_auth_url указали на узел аналитики в обоих ваших узлах API Manager. Вы можете обратиться к следующим документам для получения инструкций.

Комментарии:

1. Спасибо, шлюз api работает в 172.24.64.114, а аналитика в 172.24.64.116, поэтому я должен настроить analytics_url для ссылки на 172.24.64.116? и что такое analytics1 и analytics2 в этой конфигурации?

2. Да, правильно. Вам необходимо настроить 172.24.64.116 в шлюзе для публикации событий на рабочем узле Analytics. Документ представляет конфигурации, когда у вас есть два узла аналитики (как analytics1 и analytics2). Поскольку у вас есть только один узел аналитики, вы можете настроить только один набор конфигураций и игнорировать набор конфигураций analytics2.