当前位置: 首页 > 后端技术 > PHP

FastD最佳实践三:搭建API网关

时间:2023-03-29 16:30:30 PHP

搭建好API服务并配置好中心后,架构图大致如下:为什么我们需要网关引用别人的话:我们总是听到编排这个词,所以我喜欢这个幻灯片——它展示了一个管弦乐队,然后是一个指挥,以及下面的一群人(微服务)演奏他们自己的乐器。这个指挥者(API网关)可以以某种方式协调我们的架构如何处理请求。我们需要把业务或者服务放在网关后面,由网关统一处理请求入口。多个表项的处理变成一个表项,由网关统一调度。有一个非常好的事情,就是API网关让我们的客户端不再需要知道和关心模块的地址。网关负责做这些事情,你只需要知道网关就可以了。您可以更改实现,也可以更改API接口。但是一般来说,你改了接口之后,会增加客户端出问题的风险。还有很多有趣的功能,感兴趣的朋友可以参考:微服务与API网关(上):为什么需要API网关?微服务和API网关(第2部分):Kong能为我们做什么?搭建由于我使用的是ubuntu虚拟机,这里只介绍ubuntu下的安装。其他安装方法参考:konginstallationpostgresqlsudoadd-apt-repository"debhttp://apt.postgresql.org/pub/repos/apt/xenial-pgdgmain"wget--quiet-O-https://www.postgresql.org/media/keys/ACCC4CF8.asc|sudoapt-keyadd-sudoapt-getupdatesudoapt-getinstallpostgresql-9.6installpostgresql完成后,初始化数据库:supostgrespsqlCREATEUSERkong;创建数据库kongOWNERkong;ctrl+D退出kong$sudoapt-getupdate$sudoapt-getinstallopenssllibpcre3procpsperl$sudodpkg-ikong-0.10.3.*.deb$kongstart#Kongisrunning$curl127.0.0.1:8001这个过程可能会出现:[postgreserror]FATAL:passwordauthenticationfailedforuser"kong"查看pgsql配置文件位置,因为我是apt-getinstall,所以存放位置在/etc/postgresql/9.6/修改/etc/postgresql/9.6/main/pg_hba.conf文件,找到IPv4配置项,大约92行,修改hostallall127.0.0.1/32md5=>hostallall127.0.0.1/32trust可以重启$sudokongstartIntegrateFastDAPI1.给网关添加APIcurl-i-XPOST\http://127.0.0.1:8001/apis/\--data'name=example-fastd'\--data'hosts=fastd.com'\--data'upstream_url=http://127.0.0.1:9527'将APIServer添加到网关,结果会返回201状态,表示创建成功(Created)2.查看API状态获取列表:http://127.0.0.1:8001/apis/发起请求.curl-i-XGET\--urlhttp://127.0.0.1:8000/\--header'Host:fastd.com'这时候你会发现你已经成功使用kong代理了,至此基本的网关访问就完成了。最终的架构图如下:插件kong提供了很多插件,因为它也是基于lua的,所以可以使用openresty对其进行扩展,开发更贴近业务的应用。插件文档:点击更多查看kong官方文档。