Feature/reverse gateway (#416)

* Created reverse gateway

* Dispatched invoke message translations

* Added config receiver

* Provide a script to start rev-gateway
This commit is contained in:
cybermaggedon 2025-06-24 11:19:20 +01:00 committed by GitHub
parent fcab3aeb0e
commit f08e3c1b27
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 392 additions and 7 deletions

View file

@ -81,10 +81,11 @@ class DispatcherWrapper:
class DispatcherManager:
def __init__(self, pulsar_client, config_receiver):
def __init__(self, pulsar_client, config_receiver, prefix="api-gateway"):
self.pulsar_client = pulsar_client
self.config_receiver = config_receiver
self.config_receiver.add_handler(self)
self.prefix = prefix
self.flows = {}
self.dispatchers = {}
@ -133,8 +134,8 @@ class DispatcherManager:
dispatcher = global_dispatchers[kind](
pulsar_client = self.pulsar_client,
timeout = 120,
consumer = f"api-gateway-{kind}-request",
subscriber = f"api-gateway-{kind}-request",
consumer = f"{self.prefix}-{kind}-request",
subscriber = f"{self.prefix}-{kind}-request",
)
await dispatcher.start()
@ -226,8 +227,8 @@ class DispatcherManager:
ws = ws,
running = running,
queue = qconfig,
consumer = f"api-gateway-{id}",
subscriber = f"api-gateway-{id}",
consumer = f"{self.prefix}-{id}",
subscriber = f"{self.prefix}-{id}",
)
return dispatcher
@ -268,8 +269,8 @@ class DispatcherManager:
request_queue = qconfig["request"],
response_queue = qconfig["response"],
timeout = 120,
consumer = f"api-gateway-{flow}-{kind}-request",
subscriber = f"api-gateway-{flow}-{kind}-request",
consumer = f"{self.prefix}-{flow}-{kind}-request",
subscriber = f"{self.prefix}-{flow}-{kind}-request",
)
elif kind in sender_dispatchers:
dispatcher = sender_dispatchers[kind](

View file

@ -73,6 +73,7 @@ class Api:
self.dispatcher_manager = DispatcherManager(
pulsar_client = self.pulsar_client,
config_receiver = self.config_receiver,
prefix = "gateway",
)
self.endpoint_manager = EndpointManager(