跨AZ高可用之Elasticsearch实践

本文探讨了Elasticsearch在不同云平台如AWS、阿里云上的跨可用区(AZ)部署策略,包括多AZ多活、数据均衡、数据损失保护等方案。详细介绍了AWS的区域感知(zone awareness)和专用主节点(Dedicated Master Nodes)实践,以及阿里云的跨地域备份和多副本使用。同时,文章分析了tribe节点作为多集群代理层的优缺点,以及当前业务单AZ部署的风险。

作者:SUNNY
时间:2018-01-04


AZ,AWS提出的,可用区(Availability Zone),在每个区域(Region)都有多个可用区。AZ之间物理隔离,独立供电,一个AZ故障,不会影响另外一个AZ,但AZ之间是连通,且网络耗时低。简单可以将AZ理解为独立机房或逻辑机房,这样可以利用AZ的隔离性,对业务进行跨AZ部署,实现高可用。

本文先是简单介绍了跨AZ服务部署的一些方案,之后介绍了调研的Elasticsearch跨AZ部署方案,最后介绍了在当前业务场景下,所采取的一个部署方案实战。

1. Elasticsearch介绍

Elasticsearch是一开源搜索引擎,可以为站点提供实时分析搜索服务;也可以与Logstash、Kibana一起进行日志分析展现(ELK)。 官方网址:https://www.elastic.co。 在我们业务使用中,主要是提供实时商品搜索服务,当前处于业务发展初期,有多个Elasticsearch集群,总体流量较小。

2. 跨AZ部署方案概览

在我理解,按照服务是否有数据,可以分为无状态服务、有状态服务。 无状态服务,像接入层,业务逻辑模块等。 有状态服务,像存储,缓存,消息队列,id分配等。 针对无状态服务,每个AZ按照集群方式部署即可,这是实现该类服务高可用的一个基本措施。 对于接入层,一般有2种方式: 1)购买ELB时,可以选择跨AZ。这样ELB可以将流量分配到不同的AZ; 2)通过DNS解析控制,比如针对某些地区用户可以解析到第一个AZ对应的公网IP,其他地区可以解析到第二个AZ对应的公网IP。 针对有状态服务,由于存在数据一致性、灾备等问题,一般会是主备方式进行部署,如果对性能要求较高,可能还会提供一个读的实例。 但针对id分配服务来说,是一个特例,虽然自己本身是有数据,但由于是预分配,因此可以采用类集群方式部署。

3.Elasticsearch跨AZ部署

AWS做法 AWS实现了Ela

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值