美文网首页
索引服务化的实践及思考

索引服务化的实践及思考

作者: Honlyc | 来源:发表于2019-08-22 20:03 被阅读0次

[TOC]

场景一

在新服务器上部署ES集群:

file

现在,对于给定服务器,部署ES集群的方式主要有几种:

原始方式:手动拷贝所需文件、配置及脚本到指定机器,进行手动配置及安装;

缺点:流程复杂;配置困难;后期维护不便;需要专人专事;

简便方式:使用以前的Jenkins方式,进行脚本编写以及运行;

优点:不需要手动拷贝;后期维护较为方便;

缺点:需要重新编写脚本;与Jenkins耦合高,不方便自定义;没有统一的可视化界面;依旧需要专人专事;

优化方式:使用DevOps进行可视化部署;

优点:一站式的可视化方案,包括部署、配置管理、监控、维护;无需专人专事,无门槛使用;

缺点:DevOps系统的开发、完善及维护;

可视化部署流程

可视化部署主要是用来快捷有效地部署集群,并能够很好地进行监控、维护。

能够在一站式的网页中,达到所需的业务要求。不仅能够大大提升响应能力,也能够更好地进行优化和维护。无需担心配置找不到、集群状态监控不便、启动麻烦等问题。

1. 添加集群

在创建索引集群时,需要先添加服务器集群,这样不仅能够方便管理,也能够清晰明了地知道当前有哪些服务器集群。

2. 添加服务器

有了服务器集群,就需要往里面添加机器,也就是创建索引集群所需要的服务器。

3. 创建集群

在创建集群的界面,通过选择前面所创建的服务器集群、索引集群名称、索引版本等参数,即可快速部署索引集群。

4. 集群的监控及管理

在创建完成后,就可以在监控列表看到所创建的集群信息及状态,并通过链接,可以看到更为详细的索引状态。

这里使用了一个开源的集群可视化界面 Cerebro

场景二

有了集群,就会有创建索引的需求。而这个在实际处理当中,往往需要多次确认字段类型、存储类型等等;以及,如果后期有字段修改、删除或添加等需求,同样需要通过专人才能操作,无法客户自行操作,很大程度上做不到快速响应。

这主要是因为,现有的大多数方法是使用Kibana进行创建,这就需要有哪些配置,怎么配置会更好等知识,门槛较高,并且所创建的方案往往没有保存、没有版本管理;如遇突发情况,就没法快速地恢复。

可视化索引管理

1. 添加索引

可以指定索引集群,进行索引的创建,只需要按照自己的需求,输入索引名称,添加指定字段及选择对应的字段类型,即可快速创建索引。

2. 管理集群内索引

索引集群内的索引管理,能够直观地看到每个索引集群内所对应的索引,并能够进行Schema的管理。

3. 管理索引字段

对于现有的索引,往往有一些针对字段的修改,也能够通过可视化的操作来进行添加或删除。

注意:如果是添加字段,则会重建索引,并进行数据迁移

场景三

现在,我们有了索引集群,也有了索引,就能够愉快地使用了。但优化和更新不会停止,索引我们就面临这重启索引集群。

通常的重启,就是登录到每台机器上去执行命令,而有了Jenkins后,就可以通过选择索引集群来进行启停,但这同样会面临一些问题:

  1. 集群有写入数据时,需要先将写入程序停掉,防止在重启时丢失数据;
  2. 在停止写入后,集群本身有一个缓存,需要调用集群的接口将之写入磁盘,防止重启后做多余的恢复操作;

这两个问题使用Jenkins依旧无法很好的解决。

在索引可视化管理中,则可以很好的解决此问题:

可视化索引重启

1. 刷新索引

刷新索引主要是将索引集群在内存中的数据写入到磁盘,加快重启后的启动速度。

2. 重启索引

通过界面,可以对索引进行一键重启,因为索引集群的特殊性,只能先停止,待全部停完后,再进行启动,索引重启操作是分两步的。

更好的,可以在停止时,对索引集群的写入程序做检测,如果写入程序没有停止,则提示并不能进行重启,需要停止写入后,才能停止索引。防止数据丢失和集群状态异常的情况;也很大程度上避免重启时忘记停写入程序的情况。

到这里,索引方面的可视化基本就完成了。当然,也还有很多需要完善的地方,另外,在有了对服务器的管理和服务器集群管理后,其实还有其他的玩法。

相关文章

网友评论

      本文标题:索引服务化的实践及思考

      本文链接:https://www.haomeiwen.com/subject/kybosctx.html