现有一个生产集群,由于数据量太大,遇到性能瓶颈,而且未来数据量还会继续扩大,打算将数据分集群拆开,尽量保证已部署的几十个 spark 服务不做修改或少量修改。
其中,spark 读写 ES 采用的是 ES 9200 端口,写多读少,ip 是写死的内网 ip,已上生产。
所以,目前的想法是,将现有的 ES 集群拆分为多个,假定为 5 ( ES-cluster1 、ES-cluster2 、ES-cluster3 、ES-cluster4 、ES-cluster5 ) 个新集群。
那么,拆完以后,不同的 index pattern 会落到不同集群上,拆分过程可能会很繁琐,估计会使用迁移工具完成。
于是需要一个 API gatway 之类的服务来分发 spark 发来的 http 请求,使得相应的请求映射到正确的新集群上。
接着,我调研了市面上可用的方案如下:
1.https://opster.com/configuration/multi-cluster-load-balancer-configuration/
为 ES 量身定制的负载均衡工具,闭源产品,而且文档基本没有,沟通全靠邮件,放弃。
2.Kong https://github.com/kong/kong
3.https://github.com/traefik/traefik
2 3 之间同类产品对比如下:
微服务五种开源 API 网关实现组件对比 - 知乎
https://zhuanlan.zhihu.com/p/61014955
8 款开源的 Kubernetes Ingress Controller/API Gateway 推荐 · Service Mesh|服务网格中文社区
https://www.servicemesher.com/blog/nginx-ingress-vs-kong-vs-traefik-vs-haproxy-vs-voyager-vs-contour-vs-ambassador/
ingress 控制器那么多,到底该选哪一个?累觉不爱。 - 知乎
https://zhuanlan.zhihu.com/p/302452502
初步结论,暂定选择 kong 或者 traefix 来实现,但还在纠结选哪个。
请各位大佬指点迷津。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.