I have app with 3 components.
Used language is Python. The library for comunication (messaging) is ZMQ.
I can’t send a request from one component to another.
Client code
zmq_context = zmq.Context()
socket = zmq_context.socket(zmq.REQ)
socket.connect("tcp://c-3-worker:55555")
socket.send_string("test")
message = socket.recv_string()
c-3-worker is name of server component.
Server code
context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://*:55555")
message = socket.recv_string()
socket.send_string("Pass")
App setting I tried to set internal ports however it was possible only for service (not for worker). Uploaded file was not accepted.
internal_ports:
- 55555
What I do wrong?
Thank you for answer.
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
👋 @shadowcodecz
Great question, Workers cannot expose any ports, in this case you’d be better off using services for both components. If the worker (
c-3-worker
) only needs to be accesible internally it can be made an internal service by only specifying internal ports.Here’s more details on how to create an internal service.
Thanks for asking, I think this is a confusing area and going to bring it up with the team on how we can make this type of scenario more obvious.