3. ● Вы слышали про идею микросервисов
● Вы знаете какой профит это принесёт
● Вы провели совещание на эту тему
● . . .
● . . .
● и что теперь делать?..
Краткое содержание предыдущих серий
11. Billing Service
Identity Service
Foo to Bar Service
UserPayment
Foo Access Source Pipeline
History User
Bar Access Destination
UserAuthentication Log
Bar to Foo Service
Bar Access Source Pipeline
History User
Foo Access Destination
12. Billing Service
Identity Service
Foo to Bar Service
UserPayment
Foo Access Source Pipeline
History User
Bar Access Destination
UserAuthentication Log
Bar to Foo Service
Bar Access Source Pipeline
History User
Foo Access Destination
13. Billing Service
Identity Service
Foo to Bar Service
UserPayment
Foo Access Source Pipeline
History User
Bar Access Destination
UserAuthentication Log
Bar to Foo Service
Bar Access Source Pipeline
History User
Foo Access Destination
14. Billing Service
Identity Service
Foo to Bar Service
UserPayment
Foo Access Source Pipeline
History User
Bar Access Destination
UserAuthentication Log
Bar to Foo Service
Bar Access Source Pipeline
History User
Foo Access Destination
15. Billing Service
Identity Service
Foo to Bar Service
UserPayment
Foo Access Source Pipeline
History User
Bar Access Destination
UserAuthentication Log
Bar to Foo Service
Bar Access Source Pipeline
History User
Foo Access Destination
18. ● Request headers
o Origin
o Access-Control-Request-Method
o Access-Control-Request-Headers
● Response headers
o Access-Control-Allow-Origin
o Access-Control-Allow-Credentials
o Access-Control-Expose-Headers
o Access-Control-Max-Age
o Access-Control-Allow-Methods
o Access-Control-Allow-Headers
CORS (Cross-origin resource sharing)
44. {
version: ...
body: {
...
}
}
Сообщение
● body – содержимое сообщения
● version – версия структуры body
● можно использовать JSON Schema для валидации body
● свойства именуем в under_score стиле
45. ● Команда – необходимо сделать
Пример канала: billing.register_usage_command
● Событие – уже произошло
Позволяют синхронизировать сущности между сервисами.
Пример канала: billing.overdue_payment_event
● Запрос – необходимо получить
Пример канала: some_component.whatever_query
● Ответ – получено при запросе
Пример канала: some_component.whatever_response
Типы сообщений
47. Push режим
Сервис получает сообщение сразу после его размещения.
Быстрая реакция на сообщение.
Pull режим
Cервис потребляет сообщение когда считает нужным.
Управление интенсивностью потребления.
Мы используем гибрид: push режим, но складываем во внутреннею
очередь из который получаем сообщения в pull режиме.
Потребитель сообщений
48. Примеры идемпотентных операций:
● сложение с нулём:
● умножение на единицу:
Идемпоте́нтность
Термин, означающий свойство математического объекта,
которое проявляется в том, что повторное действие над
объектом не изменяет его.