Ответ
Сервисы в SOA общаются через стандартные протоколы, чаще всего HTTP/HTTPS с REST или SOAP, либо через брокеры сообщений (RabbitMQ, Kafka).
Пример REST API:
# Клиентский запрос к сервису пользователей
import requests
response = requests.get("https://user-service/api/users/123")
if response.status_code == 200:
user_data = response.json()
Пример сообщения через RabbitMQ:
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='orders')
channel.basic_publish(exchange='', routing_key='orders', body='New order created')
Ключевые принципы:
- Независимость сервисов
- Стандартизированные интерфейсы
- Асинхронная коммуникация (если нужна отказоустойчивость)
- Возможность использования API-шлюзов для маршрутизации