TCP/HTTP Keepalive

Содержание

Основная концепция

  1. ALB поддерживает конфигурацию keepalive на уровне порта. Она может быть настроена на frontend.

  2. Keepalive работает между клиентом и ALB, а не между ALB и backend.

  3. Реализуется через конфигурацию Nginx, и Nginx требует и автоматически перезагружается при изменении конфигурации.

  4. TCP keepalive и HTTP keepalive — это два разных понятия:

    1. TCP keepalive — это функция TCP-протокола, которая периодически отправляет probe-пакеты для проверки, жива ли связь, когда нет передачи данных. Это помогает обнаруживать и очищать мертвые соединения.
    2. HTTP keepalive (также известный как persistent connections) позволяет нескольким HTTP-запросам использовать одно и то же TCP-соединение, избегая накладных расходов на установку новых соединений. Это улучшает производительность за счёт снижения задержек и использования ресурсов.

CRD

keepalive:
  properties:
    http:
      description: Downstream L7 keepalive
      properties:
        header_timeout:
          description: Keepalive header timeout. Default is not set.
          type: string
        requests:
          description: Keepalive requests. Default is 1000.
          type: integer
        timeout:
          description: Keepalive timeout. Default is 75s.
          type: string
      type: object
    tcp:
      description: TCPKeepAlive defines TCP keepalive parameters (SO_KEEPALIVE)
      properties:
        count:
          description: The TCP_KEEPCNT socket option.
          type: integer
        idle:
          description: The TCP_KEEPIDLE socket option.
          type: string
        interval:
          description: The TCP_KEEPINTVL socket option.
          type: string
      type: object
  type: object

Её можно настроить только на Frontend в .spec.config.keepalive.