微服务学习 kong网关的搭建

什么是网关:

    用户向我们发送请求时,往往需要知道我们的端口号和ip,这在单体式架构中没有问题。但是微服务的进程的离散的,是分布式的,IP地址和端口号是随意变化的,这就意味这如果不做任何配置,那么用户每次请求我们的服务都必须重新填写ip地址和端口号,这显然是不现实的。网关,从网络通信来看可以认为是一个网络通向其他网络的ip地址。举个例子,假设你从卧室走向其他的房间,中间必要经过卧室的门来通往其他房间,那这个门就可以看作网关,也可以看作一个关口。用户只需要向网关发送请求,网关就能自动将请求负载到我们的各个服务中

    上述网关的作用中,我们很明显可以看到网关获取到了用户的请求。这也就意味着我们可以在网关对其请求做任何限制。包括但不限于:鉴权、限流、熔断、负载均衡。

kong网关的搭建以及配置:

    这里搭建网关,我们使用第三方网关kong。kong是基于Nginx_Lua,具有易拓展、高可用的第三方网关,它能够水平拓展多个服务器,这也就意味着比起Nginx,它能够更好的实现负载均衡。

    使用docker配置kong网关:

         1 . 创建docker 虚拟网络

                   docker network create kong-net  //kong-net为网络名,可以自取

        2 . 运行postgresql 的数据库

                   docker run -d --name kong-database --network=kong-net -p 5432:5432 -e "POSTGRES_USER=kong" -e "POSTGRES_DB=kong" -e "POSTGRES_PASSWORD=kong" postgres:9.6 //network为虚拟网络名,这里docker容器会自动获取PGsql的环境

        3 . 初始化数据库(迁移数据)

                docker run -d --name kong --network=kong-net -e "KONG_DATABASE=postgres" -e "KONG_PG_HOST=kong-database" -e "KONG_PG_USER=kong" -e "KONG_PG_PASSWORD=kong" -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" -p 8000:8000 -p 8443:8443 -p 127.0.0.1:8001:8001 -p 127.0.0.1:8444:8444 kong:latest

            //这里会自动在PGsql中的kong数据库内配置好对应的表,以便kong能够使用,至此数据库的配置完成

       4.运行kong

              docker run -d --name kong \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_USER=kong" \
-e "KONG_PG_PASSWORD=kong" \
-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" \
-p 8000:8000 \
-p 8443:8443 \
-p 127.0.0.1:8001:8001 \
-p 127.0.0.1:8444:8444 \
kong:latest

            //可用curl -i http://localhost:8001/ 检查配置是否正确,返回ok(200)即为正确配置

       5.konga的配置

                 konga是kong的可视化操作界面,需要配置数据库

                       docker run --rm pantsel/konga:latest -c prepare -a postgres -u postgresql://kong:kong@192.168.1.102:5432/konga

       6.启动konga

                 docker run -p 1337:1337 \
--network kong-net \
--name konga \
-e "NODE_ENV=production" \
-e "DB_ADAPTER=postgres" \
-e "DB_URI=postgresql://kong:kong@192.168.1.102:5432/konga" \
pantsel/konga

                注意上述配置konga的过程中,存在着数据库url的配置,要把其ip地址改正为自己的ip地址

                至此,kong及konga的配置完成,可以通过localhost:1337来查看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值