目前我们ES连接全部是通过http端口,走的负载均衡,我感觉好处有这些:
1.后端节点可以灵活调节,client节点扩容缩容比较方便。
2.可以在负载均衡层面进行日志的记录。
3.可以进行一些访问控制,例如直接屏蔽9300端口连接、限制DELETE方法、对访问者设置ip白名单等等。
坏处是:
1.增加了负载均衡,多维护了一套东西,多占用了服务器资源。
2.对于写入和查询量非常大的情况,负载均衡可能变成瓶颈。
如果是为每个client节点配置一个域名,客户端配置多个连接地址的情况,感觉又有这些问题:
1.如果client节点的数量有增加或者减少,需要添加或减少相关域名解析,客户端连接配置还是需要修改。
2.对于某些不支持多地址连接的情况,存在单点的风险,当指向的节点重启或者停机维护时这些程序会无法访问。例如命令行下执行curl,另外cerebro配置文件里连接ES好像也只能写一个地址。
比较推荐的做法应该是什么样的呢?
1.后端节点可以灵活调节,client节点扩容缩容比较方便。
2.可以在负载均衡层面进行日志的记录。
3.可以进行一些访问控制,例如直接屏蔽9300端口连接、限制DELETE方法、对访问者设置ip白名单等等。
坏处是:
1.增加了负载均衡,多维护了一套东西,多占用了服务器资源。
2.对于写入和查询量非常大的情况,负载均衡可能变成瓶颈。
如果是为每个client节点配置一个域名,客户端配置多个连接地址的情况,感觉又有这些问题:
1.如果client节点的数量有增加或者减少,需要添加或减少相关域名解析,客户端连接配置还是需要修改。
2.对于某些不支持多地址连接的情况,存在单点的风险,当指向的节点重启或者停机维护时这些程序会无法访问。例如命令行下执行curl,另外cerebro配置文件里连接ES好像也只能写一个地址。
比较推荐的做法应该是什么样的呢?
3 个回复
byx313 - BLOG:https://www.jianshu.com/u/43fd06f9589c
赞同来自:
HelloClyde
赞同来自:
yj7778826 - 苦逼小运维
赞同来自: