资讯专栏INFORMATION COLUMN

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

CoXie / 892人阅读

摘要:我们需要将业务或服务放置在网关背后,由网关统一处理请求入口,本身由多个入口的处理变成了一个入口,由网关进行统一调度。网关负责来搞这些事情,你只需要知道网关就好了。

构建完成 API 服务,配置中心之后,架构图大致如下:

我们为何需要网关

引用 别人 的一句话:

我们总是听到编排这个词,所以我喜欢这张幻灯片 – 它展示了一个乐队,然后有个指挥家,下面一堆人(微型服务)演奏自己的乐器。这个指挥家(API网关)可以以某种方式来协调我们的架构如何处理请求。

我们需要将业务或服务放置在网关背后,由网关统一处理请求入口,本身由多个入口的处理变成了一个入口,由网关进行统一调度。

有一个很nice的事情,就是API网关让我们的客户端不用再需要知道和关心模块的地址(address)了。网关负责来搞这些事情,你只需要知道网关就好了。你可以去改变实现而且还可以改变API接口。不过通常来说,你改变接口后,会增加客户端出问题的风险。

还有很多有趣的功能,有兴趣的朋友可以参考:

微服务与API 网关(上): 为什么需要API网关?

微服务与API 网关(下): Kong能为我们做什么?

构建

由于本人使用 ubuntu 虚拟机,所以此处只介绍 ubuntu 下的安装,其他安装方式可参考: kong installation

安装 postgresql
sudo add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main"
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install postgresql-9.6

安装 postgresql 完成后,初始化数据库:

su postgres
psql
CREATE USER kong; CREATE DATABASE kong OWNER kong;

ctrl + D 退出

安装 kong
$ sudo apt-get update
$ sudo apt-get install openssl libpcre3 procps perl
$ sudo dpkg -i kong-0.10.3.*.deb
$ kong start

# Kong is running
$ curl 127.0.0.1:8001

这个过程可能会出现: [postgres error] FATAL: password authentication failed for user "kong"

查看 pgsql 配置文件所在位置,因为我是 apt-get install 的,因此,存储位置在 /etc/postgresql/9.6/

修改 /etc/postgresql/9.6/main/pg_hba.conf 文件,找到IPv4 配置项,约92行,修改

host    all             all             127.0.0.1/32            md5

=>

host    all             all             127.0.0.1/32            trust

重新启动即可。

$ sudo kong start
整合 FastD API
1. 添加 API 到网关
curl -i -X POST 
  http://127.0.0.1:8001/apis/ 
  --data "name=example-fastd" 
  --data "hosts=fastd.com" 
  --data "upstream_url=http://127.0.0.1:9527"

添加 API Server 到网关,成果会返回 201 状态吗表示创建成功 (Created)

2. 检查 API 状态

获取列表: http://127.0.0.1:8001/apis/

发起请求.

curl -i -X GET 
  --url http://127.0.0.1:8000/ 
  --header "Host: fastd.com"

此时此刻你会发现已经成功使用 kong 对其进行代理,至此之外,已经完成了基本的网关接入。最终架构图如下:

插件

kong 提供的插件非常丰富,因为也是基于 lua 的,因此你可以使用 openresty 对其进行扩展,开发更加贴近业务的应用。

插件文档: 点击

更多可看 kong 官方文档。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/25657.html

相关文章

  • FastD 最佳实践四: 构建系统可视化监控

    摘要:的展示非常炫酷,绝对是运维提升逼格的一大利器。另外的可视化功能比强得多,而且以上版本将集成报警功能。它由写成,着力于高性能地查询与存储时序型数据。被广泛应用于存储系统的监控数据,行业的实时数据等场景。 原有监控系统 showImg(https://segmentfault.com/img/remote/1460000011082384); 整个系统以 Graphite (carbon ...

    khlbat 评论0 收藏0
  • FastD 最佳实践一: 构建 API

    摘要:最佳实践一构建是一个专门针对应用层而生的一个应用框架,提供良好的中间件,路由以及支持扩展运行,从而具体良好的性能条件。手动创建添加路由地址调用完成最第一个路由。缓存也是一个前置中间件,使用方式与日常操作保持一致。 FastD 最佳实践一: 构建 API FastD 是一个专门针对 API 应用层而生的一个 PHP 应用框架,提供良好的中间件,路由以及支持 swoole 扩展运行,从而具...

    WalkerXu 评论0 收藏0
  • FastD 最佳实践五: 构建ELK日志分析

    摘要:点击前往中文地址先决条件简单安装下载地址下载或者其他都可以。版本处理方案新建格式日志文件。配置日志会随着配置进行生成,结果如下忽略上述日志内容,程序看得懂即可配置推送到需要根据业务场景进行配置,现在显示最简单的配置。 过去咱们开发中,对日志这个环节其实并不太重视,直到有一天,应用出现异常,这个时候才想起来日志,但很可惜,为时已晚。 咱们做运维和开发,除了救火,还需要防火,因此一些防范的...

    djfml 评论0 收藏0
  • FastD 最佳实践二: 构建配置中心

    摘要:过去专门做了一篇文档来构建配置中心,基于的配置中心。环境要求及构建步骤可参考搭建配置中心随着业务增长,部署的机器可能会随着增长,增加配置难度和维护难度。最终架构图如下无论扩展多少个业务应用,仅需要一个配置中心即可完成多处配置修改。 过去专门做了一篇文档来构建配置中心,基于 zookeeper 的配置中心。 环境要求及构建步骤可参考: QConf搭建配置中心 随着业务增长,部署的机器可能...

    noONE 评论0 收藏0
  • FastD 最佳实践六: 为应用添加调用链监控 Zipkin

    摘要:调整配置文件在选项中,追加即可。有了以上系统常规监控日志集中分析应用调用链监控,我们的业务就可以变得更加透明,清晰,可控。相关文章最佳实践四构建系统可视化监控最佳实践五构建日志分析 zipkin是一个开放源代码分布式的跟踪系统,由Twitter公司开源,它致力于收集服务的定时数据,以解决微服务架构中的延迟问题,包括数据的收集、存储、查找和展现。它的理论模型来自于Google Dappe...

    jayce 评论0 收藏0

发表评论

0条评论

CoXie

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<