文章目录
1. 前言
本文主要讨论通过grpc-java开发的普通的java grpc工程,以多实例的方式部署在容器编排平台kubernetes(以下简称k8s)上,如何能够实现让同样部署在k8s
集群内的客户端请求流量均衡的分发到多个grpc应用部署实例上去。
2.实现方案要点
- grpc服务端程序在k8s内部署的多个实例通过headless service暴露服务
- grpc客户端程序显示指定负载均衡策略为round_robin
- grpc客户端程序在创建channel时显示在service名称前加上dns:///(比如 dns:///service.ns)
- grpc-java的版本要不低于1.38
3.具体实现步骤
3.1 编写一个grpc服务端程序(详细实现步骤在此忽略,网上很多例子)
package com.example.grpcserver;
import io.grpc.Server;
import io.grpc.ServerBuilder;
import java.io.IOException;
public class ProductInfoServer {
Server server;
public static void main(String[] args) {
ProductInfoServer productInfoServer = new ProductInfoServer();
productInfoServer.startServe