Recently there was quite a lot of questions related to thick clients connectivity issues when the clients are deployed in a k8s pod . The general issue here is clients reporting network address which are not reachable from server nodes. At the same time, the clients can connect to server nodes.
An idea of how to fix this is as follows:
- Make sure that think clients discovery SPI always maintains a connection to a server node (this should be already implemented)
- (Optionally) detect when a client has only one-way connectivity with the server nodes. This part should be investigated. We need this to avoid server nodes attempt to connect to a client and send communication request to the client node faster
- When a server attempts to establish a connection with a client, check if client is unreachable or the previous connection attempt failed. If so, send a discovery message to the client to force a client-server connection. In this case, server will be able to send the original message via the newly established connection.