Назад | Перейти на главную страницу

Какова оптимальная практика для внутреннего трафика между микросервисами?

У меня есть два микросервиса, написанные на PHP, A и B. Конечные точки - a.example.com и b.example.com. Обе службы должны быть общедоступными. Кроме того, во время обработки служба B делает много запросов curl к a.example.com.

Оба сервиса работают в одном AWS VPC (в одной частной сети). У меня также есть внешний CDN (например, Akamai) для каждой конечной точки.

Вариант 1:

Public and Service B make requests to A
                 |
                 V
           a.example.com
                 |
                 V
                CDN
                 |
                 V
        Public Load Balancer
                 |
                 V
      Web Servers for service A

Вариант 2:

     Public makes requests to A        Service B makes requests to A
                 |                                  |
                 V                                  V
           a.example.com                 a-internal.example.com
                 |                                  |
                 V                                  |
                CDN                                 |
                 |                                  |
                 V                                  V
        Public Load Balancer              Internal Load Balancer
                 |                                  |
                 V                                  V
              Web     servers       for      service   A

Вопрос, Это правильные конструкции для соединений микросервисов? Если нет, какова общая конструкция соединений микросервисов?

Бонусный вопрос, разделенный DNS (например, частная зона AWS Route 53) - хороший вариант использования, если я хочу поддерживать одну конечную точку a.example.com вместо двух (a. & a-internal.).