- FastStream - фреймворк для работы с брокерами сообщений
- Redis - in-memory база данных и брокер сообщений
-
Клонируем проект
git clone https://github.com/IldarGaleevSkyProHomeworks/fast_stream_example.git cd .\fast_stream_example\
-
Ставим зависимости для
Service1
cd .\Service1\ python -m venv venv .\venv\Scripts\activate pip install -r requirements.txt deactivate cd ..
-
Ставим зависимости для
Service2
cd .\Service2\ python -m venv venv .\venv\Scripts\activate pip install -r requirements.txt deactivate cd ..
-
Ставим и запускаем
Redis
Note
Каждый сервис в своем окне терминала
-
Запуск первого сервиса:
.\Service1\venv\Scripts\faststream.exe run Service1\service1:app
или
cd .\Service1\ .\venv\Scripts\activate faststream run service1:app
-
Запуск второго сервиса
.\Service2\venv\Scripts\python.exe .\Service2\service2.py
или
cd .\Service2\ .\venv\Scripts\activate python .\service2.py
Теперь, после запуска обоих сервисов, можно из браузера сделать запрос:
http://localhost:8000/hello
Теперь в браузере мы должны увидеть страницу с текстом:
Hello, hello
В окне терминала service2.py
2024-02-18 03:15:56,115 INFO - service2 | 9637ad9b-afdd-4 - Received
service1 accept message: hello
2024-02-18 03:15:56,116 INFO - service2 | 9637ad9b-afdd-4 - Processed
А в окне терминала service1.py
2024-02-18 03:15:56,109 INFO - service1 | 10d2e613-adf1-4 - Received
received: hello
2024-02-18 03:15:56,115 INFO - service1 | 10d2e613-adf1-4 - Processed
sequenceDiagram
Browser ->> Service2: http GET: /hello
Service2 ->> Service1: msg: 'hello'
Service2 ->> Browser: http response: 'Hello, hello'
Service1 ->> Service2: msg: 'service1 accept message: hello'