Konfigurasi LB gRPC Service dengan HAProxy 

2018-04-05 15.07.23

Kemaren diminta setting load balancer di HAProxy untuk gRPC Service.
Panduan ini saya nyomot dari https://grpc.io/blog/loadbalancing dan https://gist.github.com/thpham/114d20de8472b2cef966

Desain service kira-kira seperti ini:

Springboot-Service(API) <—> HAProxy <—-> gRPC Server 1 & gRPC Server 2

Kasusnya adalah:

  • Traditional setup – Many clients connecting to services behind a proxy
  • Need trust boundary between servers and clients
  • Metode pembagian beban adalah roundrobin
  • HAProxy dipasang dimesin yang sama dengan gRPC server 1.

Solusi yang diambil:

  • L3/L4 LB with haproxy.

Installasi dan Konfigurasi

$ sudo apt install haproxy

Berikut konfigurasi yang saya gunakan dengan perubahan seperlunya termasuk mengatur status load balancer (Dashboard HAProxy).

global
  tune.ssl.default-dh-param 1024

defaults
  timeout connect 10000ms
  timeout client 60000ms
  timeout server 60000ms

## Pengaturan Dashboard HAProxy
listen stats
  bind :1936
  mode http
  log  global

  stats enable
  stats uri /stats
  stats refresh 15s
  stats show-node
  stats hide-version
  stats realm Haproxy\ Statistics
  stats auth user:password

frontend fe_http2
  mode tcp
  ## alamat binding gRPC yg akan diakses oleh Springboot-Service
  bind 192.168.33.100:6668 npn spdy/2 alpn h2,http/1.1
  ## alamat routing backend
  default_backend be_grpc

backend be_grpc
  mode tcp
  balance roundrobin
  ## daftar gRPC service yang akan menerima LB dari HAProxy
  server prod-service-020 127.0.0.1:6667
  server prod-service-021 192.168.101:6667

Setelah konfigurasi dirasa cukup, lakukan testing konfigurasi HAPRoxy dengan perintah berikut.

$ sudo haproxy -c -f /etc/haproxy/haproxy.cfg

Jika udah ijo, lakukan restart haproxy.

$ sudo systemctl restart haproxy

Demikian.
Estu yg lagi dolanan Mattermost

Advertisements