Microservice gateway using Nats
Project description
Metropolis (Python Microservice Gateway with NATS)
Can we make
simple,scalable,observable,operableservice gateway?
Purpose
Cloud Native
Single Workload Unit
Service Discovery
Service Mesh
Architecture Concept
+- Cluster --------------------------------------------------+
| |
| +- 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 |
+--------------------- | ------------------------------------+
V
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.dev4.tar.gz
(5.9 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file metropolis-0.1.4.dev4.tar.gz.
File metadata
- Download URL: metropolis-0.1.4.dev4.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.7.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f4dcff07cabda8424967c1c1d8fc9533828f7c61c301defaab63d69e2435aac2
|
|
| MD5 |
ad009ff40b0b6ca1c48f9190de32fbaf
|
|
| BLAKE2b-256 |
c8667673fdccd4f9238d9dcb757e1720de09c03ac6d8b1ef5ba8b07d62836f36
|
File details
Details for the file metropolis-0.1.4.dev4-py3-none-any.whl.
File metadata
- Download URL: metropolis-0.1.4.dev4-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.7.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a79f05905f7ec165ca168c3d9c23615dde9ef0ce648c46f520a3292ddf3c4081
|
|
| MD5 |
103a7d25731b10b0fc280069e54d00d5
|
|
| BLAKE2b-256 |
0e674284813602a710275372ca369e5fe8738176ffd69622190d94856817fd34
|