Microservice gateway using Nats
Project description
Metropolis (Python Microservice Gateway with NATS)
Can we make
simple
,scalable
,observable
,operable
service gateway?
Architecture Concept
+- Node-1 --+ +- Node-2 -+ +- Node-3 --+ +- Node-4 -+
| | | | | | | |
| Worker-a | | | | | | Worker-d |
| Worker-b | | Worker-c | | Worker-a | | Worker-c |
| | | | | | | | | | | |
| NATS ========= NATS ======================= NATS |
| | | | | | | | | |
| Gateway | | | | Gateway | | |
| | | | | | | | | |
+--- | -----+ +----------+ +--- | -----+ +----------+
| |
+--------------+-------------+
|
Ingress
Components
Nats
Message bus
Worker
Business Logic worker
Gateway
Service gateway
Example
Install metropolis
$ pip install metropolis
Define Worker task
from metropolis import Worker
worker = Worker(nats='nats://localhost:4222')
@worker.task(subject='foo.bar', queue='worker')
def mytask(data, *args, **kwargs):
"""Simple task which returns reverse string
"""
return data[0][::-1]
worker.run()
Define Gateway
from metropolis import Gateway
import settings
gateway = Gateway(nats='nats://nats:4222')
gateway.app.run(host='0.0.0.0')
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
metropolis-0.1.4.dev1.tar.gz
(5.7 kB
view hashes)
Built Distribution
Close
Hashes for metropolis-0.1.4.dev1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f1daecdfc342d5219e04620d8a27aa8f5f55061337fadab17b063f3ae2d9f889 |
|
MD5 | c6a949ac65d0391b1984011882de2ee7 |
|
BLAKE2b-256 | 54bf8ef5880e21f720a4e3d5a9ed897a8118a8b2316cce7f8e11b96ab5ea4e6f |