前面我们写了一大部分的kratos微服务实战,详见《kratos微服务实战》。后续的微服务我们都写完了,但是还缺少一块网关的模块。在spring cloud微服务体系里面有spring cloud gateway和spring cloud zuul的支撑。但是kratos这个微服务框架相对来说是没有现成的类似spring cloud gateway和spring cloud zuul这样现成的框架。目前在go语言的微服务里面使用到的网关框架主要是第三方的框架,比较流行的有:
1、apisix 2、kong 3、traefik
目前来说,根据群里的反馈,使用apisix的情况会多一点,因为他是基于openrestry的。当然群里也给出了有哪些公司使用apisix的列表,如下:
看上图国内大多数厂商都在使用apisix做网关,所以这里的话就以apisix为例了,来介绍下在go微服务框架中使用apisix作为服务网关。本文我们介绍下apisix微服务框架的部署安装。
一、下载源码
首先要部署apisix的话,需要下载源码,地址是:
https://github.com/apache/apisix-docker
当然我们主要使用它的example目录,所以下载之后,我们可以只把example目录拷贝到服务器上去。如下图:
在example下面会有很多现成的conf配置,我们根据自己的情况来配置对应conf的值即可。
备注:
1、源码中没有dashboard_conf,这是我自己写的,因为源码的docker实例全部启动之后没有dashboard,这里我添加了一个dashboard的conf,方便后面进行可视化配置网关。此文件在文末有提供下载。
二、docker-compose启动
在example目录下有现场的docker-copose.yml文件,我们打开这个文件,把dashboard给添加进去,加进去的配置如下:
apisix-dashboard: image: apache/apisix-dashboard:2.9.0 restart: always volumes: - ./dashboard_conf/conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml ports: - "9000:9000" networks: apisix:
然后使用docker-compose启动即可
docker-compose up -d
启动之后一共有7个docker实例,分别是:
备注:
1、上面所有的docker实例名称都可以在docker-compose.yml文件中进行修改,根据自己的要求来进行设置即可。
2、在实际环境中,可以吧docker-compose.yml里面的web1和web2给去掉
三、访问dashboard
到目前为止我们的apisix就部署好了,接下来打开9000端口的dashboard即可看到apisix的可视化配置界面,如下图:
备注:
1、dashboard默认的账号密码是:admin/admin
以上就是apisix部署的过程,是不是很简单?实际生产中一般我们都是直接部署在k8s集群或者Serverless里面的,所以相关的配置几乎直接可以参照这里的example进行调整即可。
最后附上本案例修改后的example文件夹,已经内置dashboard,下载下来直接启动即可。登录后即可下载。
发表评论