对于kong的grpc使用目前官方还没有正式的文档说明,记得7月份时刚看KONG,那时还不支持grcp。当时一直想在网关上做grpc转发,恰巧月底KONG官方发布了一个1.3.0rc1版本。是第一个正式支持gRPC代理的版本!一个月后,又发布了1.3.0正式版本,可以放心使用了。

 

下面我来简单说下如何使用的,为了快速演示可以使用官方的docker镜像。

 

docker run -d --name kong-database \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
postgres:9.6

docker run --rm \
--link kong-database:kong-database \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
kong:1.3 kong migrations bootstrap


docker run -d --name kong \
--link kong-database:kong-database \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
-e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
-e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \
-e "KONG_PROXY_ERROR_LOG=/dev/stderr" \
-e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \
-e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \
-e "KONG_PROXY_LISTEN=0.0.0.0:8000,0.0.0.0:9080 http2" \
-p 8000:8000 \
-p 8001:8001 \
-p 9080:9080 \
kong:1.3

这样我们安装了数据库,数据库初始化,安装kong1.3

8001:API管理端口,

8000:http访问端口

9080:grpc访问端口

//1、添加api转发
curl -i -X POST --url http://127.0.0.1:8001/services --data 'name=free.ip' --data 'url=http://apis.juhe.cn/ip/ipNew'
curl -i -X POST --url http://127.0.0.1:8001/services/free.ip/routes --data 'paths[]=/ip'
//测试
curl -i -X GET --url http://127.0.0.1:8000/ip?ip=101.50.19.50&key=0e989a1f3b24a6b89f865554d4e7fe15


//2、添加grpc转发
//注:10.70.120.63:5000 是我的一个grpc服务

curl -i -X POST http://127.0.0.1:8001/services --data name=grpc.duzhenxun --data protocol=grpc --data host=10.70.120.63 --data port=5000

curl -i -X POST http://127.0.0.1:8001/services/grpc.duzhenxun/routes --data protocols=grpc --data hosts=ado

//测试GRPC服务,你也可以使用你go或php代码进测试
grpcurl -plaintext -authority ado 127.0.0.1:9080 list
grpcurl -plaintext -authority service1 127.0.0.1:9080 describe hello.HelloService

对于kong我也是在刚刚研究,如果有兴趣可以一起交流

微信:5552123(Ado)

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐