Kong的折腾笔记之相关技术清单

持续维护地址:http://jaylin.wang/2016/kong-...

背景

公司准备更好的实现微服务架构,我前期的任务主要是 API 开发相关的技术学习,微服务会随着业务的增加不断增加,客户端调用微服务的 API 也随着增加,这时,一个统一 API 的中间件就有必要了。瞄准了 Kong 这个解决方案,接下来的几天时间就来折腾这个东西。

Kong的基本概念

Kong 是 Mashape 开源的一个 API 中间件项目,基于 Nginx 构建,支持 PostgreSQL 和 Apache Cassandra 存储。支持通过集群实现性能扩展,支持通过插件实现功能扩展,并且可以运行于现在主流的运行环境。

我们可以用 Kong 官方提供的一张图来表述客户端 - Kong - API 之间的请求关系:

client - kong - api

Kong 会代理来自不同地方的 API, 并且转发所有来自客户端的 API 请求。

捣腾进行时...

准备依靠阿里云 RDS for PostgreSQL 方便对 API 存储的管理,所以本地搭建 Kong 服务的时候也是选择在 Centos7 上安装 PostgreSQL。

Kong 本身的安装并不复杂,但所依赖的技术需要仔细学习一番,我也是被周围的东西秀了一脸~,列出一个自己在搭建过程中用到的相关技术,有一些仔细看了一番,也有一些浅尝而止,从此篇慢慢发散、完善补吧~

血的教训

因为忽略的一个之前没注意的 warning 导致自己花一天时间去解决一个错误,浪费一大把陪媳妇儿的时间,不开森~~~

warning 是这样的:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

相信大家也是遇到过,之前貌似没造成什么影响,这次就栽了... 解决方案是在 profile/.bashrc 中指定 LC_ALL:

echo "export LC_ALL=en_US.UTF-8"  >>  /etc/profile
source /etc/profile

最后留下一句小林名言:

Warning is error,not ok,let‘s kill it


小林小记
看看,读读,写写

程序员,淘宝FED前端工程师

583 声望
65 粉丝
0 条评论
推荐阅读
前端开发值得拥有的 VSCode 插件
VSCode 拥有庞大的插件市场,开始使用 VSCode 进行前端开发的过程中,众多的插件选择可能会让我们难以抉择。结合社区和插件市场推荐以及自己使用的情况,将开发过程中感觉有明显收益的插件分享一波,供大家参考。

继林4阅读 2.2k

Golang如何优雅接入多个远程配置中心?
本地配置文件的接入能很快速的完成,那么对于远程apollo配置中心的接入,是否也能很快速完成呢?如果有多个apollo实例都需要接入,是否能支持呢?以及apollo远程配置变更后,是否能支持热加载,实时更新呢?

王中阳Go1阅读 999

封面图
WGCLOUD的指令下发和自定义监控项有什么区别
WGCLOUD监控系统有两个功能模块:指令下发和自定义监控项话说,WGCLOUD确实一款非常优秀的运维监控软件,轻量且性能好言归正传,那么它们两个有什么区别呢1、指令下发指令下发可以执行任何指令或者脚本,由agent...

一往情深1阅读 593

从汽车之家效能平台建设看汽车行业研发数字化之路
在促消费优惠政策、新能源汽车产品日臻成熟等多方利好下,国内汽车行业正处于持续增长:截至2022年9月底,全国机动车保有量达4.12亿辆,其中汽车3.15亿辆,连续三个月新增量超200万辆,每月汽车产销量亦同比增长...

之家技术1阅读 3.8k评论 1

封面图
写给go开发者的gRPC教程-通信模式
本篇为【写给go开发者的gRPC教程系列】第二篇第一篇:protobuf基础第二篇:通信模式上一篇介绍了如何编写 protobuf 的 idl,并使用 idl 生成了 gRPC 的代码,现在来看看如何编写客户端和服务端的代码Simple RPC (...

liangwt2阅读 1k

封面图
写给go开发者的gRPC教程-protobuf基础
序列化协议。gRPC使用protobuf,首先使用protobuf定义服务,然后使用这个文件来生成客户端和服务端的代码。因为pb是跨语言的,因此即使服务端和客户端语言并不一致也是可以互相序列化和反序列化的

liangwt1阅读 991评论 1

封面图
基于Seata探寻分布式事务的实现方案
随着业务的快速发展、业务复杂度越来越高,几乎每个公司的系统都会从单体走向分布式,特别是转向微服务架构。随之而来就必然遇到分布式事务这个难题,这篇文章通过seata框架总结了分布式事务的几种解决方案

京东云开发者2阅读 394

封面图

程序员,淘宝FED前端工程师

583 声望
65 粉丝
宣传栏