GNU gettext, 它是一套国际化(i18n)和本地化(i10n)工具,在类Unix系统中被大量采用, ubuntu , wordpress 都采用 gettext 实现多语言支持。 国际化标准 ISO 639-1
使用GNU text 的好处是, 它可以自动扫描提取源文件的待翻译内容, 源文件新增的待翻译片段也可以自动扫描提取。
GNU gettext, 它是一套国际化(i18n)和本地化(i10n)工具,在类Unix系统中被大量采用, ubuntu , wordpress 都采用 gettext 实现多语言支持。 国际化标准 ISO 639-1
使用GNU text 的好处是, 它可以自动扫描提取源文件的待翻译内容, 源文件新增的待翻译片段也可以自动扫描提取。
由于 Pod 可能在任何时刻出现在任何节点上, 所以Pod IP 肯定会动态变化。
那么如何把这个动态的 Pod IP 暴露出去? Kubernetes 的 Service 机制就是用于解决此问题,Service 以 label 的形式选定一组带有指定label的 Pod,并监控和自动负载它们的 Pod IP,那么向外只暴露 Service IP 即可.
Ingress 就是配置各种域名找到对应那个 Service。
参考: https://mritd.me/2017/03/04/how-to-use-nginx-ingress/
组件 | ingress-nginx(官方) | Kong Ingress | traefik | Voyager | istio ingress |
---|---|---|---|---|---|
最新版本 | v0.25 | v0.5 | v2.0 beta, v1.7.12 release | v10.0 | v1.2 |
动态服务发现 | static(有生成器) | static | dynamic | dynamic | dynamic |
支持协议 | http, https, tcp, udp, grpc | http, https | http, https, grpc | http, https, tcp | http,https, grpc |
base on | nginx | nginx + lua | traefik (Go) | haproxy+GO | envoy |
LB 策略 | rr, least_conn, ip_hash | rr | rr, wrr | rr | rr, least_conn, random |
组件名 | QPS | 平均响应时间 | 总请求数 | 连接数 | 持续时间 |
---|---|---|---|---|---|
traefik | 28392 | 91.72ms | 1705073 | 1000 | 1分钟 |
nginx | 33591 | 101.25ms | 2018427 | 1000 | 1分钟 |
traefik 性能达到 nginx 的85%
kong的代码运行于nginx的worker进程中。kong对数据的修改会在一个worker中进行,修改后需通知给本机其他worker进程和其他机器上的worker进程。
kong 会将数据库记录缓存起来,这里只是缓存kong自身数据比如插件, service, route 数据, 自定义插件的数据表数据并未缓存, 例如: rate limit 插件的数据也要自己通过kong.cache来缓存, 通过/etc/kong/kong.conf 配置db_update_frequency确定更新route, service, plugins等数据的缓存时间。
kong使用的进程间通信主要方式有:
被这个问题困扰了好一段时间, 期间拉取了traefik代码到本地编译(remark: 官网提供的文件做了优化编译,去掉了调试信息, 无法打断点), 并打断点调试。
完成traefik部署后, 检查日志发现traefik 在不断报错, 错误信息:Error while Peeking first byte: read tcp 172.16.2.102:80->100.xxx.xxx.xxx:xxxxx: read: connection reset by peer.
Kong 自行封装了一套基于Busted 的测试框架, Busted约定将测试放在 spec 文件夹中,命名为 xx_spec.lua.
网关项目的测试代码存放路径: spec/spec/custom-plugins, 运行单元测试后测试框架将生成一个Kong实例并对其执行测试, 具体查阅 spec/kong_tests.conf 配置文件。
注:Kong的单元测试依赖于测试框架 Busted, 具体详细查看Busted介绍部分
开源数据同步中间件: canal databus puma StreamSets SymmetricDS open-replicator
⼚商: 阿⾥巴巴 Linkedin ⼤众点评 StreamSets JumpMind whitesock