写点什么

360 私有云平台 Elasticsearch 服务初探

  • 2019 年 11 月 28 日
  • 本文字数:1537 字

    阅读完需:约 5 分钟

360私有云平台Elasticsearch服务初探

Elasticsearch

Elasticsearch 是一款基于 Apache Lucene 框架构建的开源的、分布式的、可扩展的、(准)实时的文档存储和搜索引擎。在提供搜索服务以及日志分析方面已经日趋成熟,尤其是在 Elasticsearch 5.x 发布之后,在规范性、功能、性能等方面都有了极大的改进,并且进入了迅速迭代的过程,版本发布之快令人乍舌。


360Hulk 云平台,作为业界首屈一指的私有云平台,绝不甘落寞,也在 Elasticsearch 上做了很多尝试,推出了面向搜索的 Elasticsearch 服务和面向日志分析的 ELK 服务。目前已经在公司内部大范围应用,承载数据量 200+TB,日访问量超 1000 亿次。今天小编就为大家带来 Elasticsearch 在 360 私有云平台的实践。


Elasticsearch 服务架构


Master 节点独立

因为 master 承担着集群元数据管理的职责,例如 indices、sharding 等信息的维护,如果 master 节点和 data 节点混用的话,master 相关功能的性能没法保证,而且一旦发生故障,集群恢复时间将被大大拉长。因此我们的 Elasticsearch 集群采用 3 个独立的 master 方案(有且只有唯一的一个节点真正承担着 master 的角色),一方面保证 master 相关功能的稳定,另一方面通过配置 discovery.zen.minimum_master_nodes: 2 降低了 master 选举时出现脑裂的几率。


负载均衡

我们使用 data 节点承接访问,但是为了业务使用的便捷性,集群使用了 LVS 将请求均衡的分担到各个 data 节点;同时提供了 RS 的动态监测机制,当 data 节点失联的时候,LVS 会自动过滤掉该节点的请求。


业务独享集群

结合 360 业务的特点,为了尽量适配不同业务的需求场景,同时尽量降低各个业务线之间的相互影响,每个业务线可以申请自己独享的集群。同时,这种方案还大大降低了 Elasticsearch 集群不可用(当然这种情况出现几率极低,但不能保证不发生)的时候影响业务的范围。


用户认证和权限隔离

集群集成了 SearchGuard(不要问我为啥不用 X-Pack,因为穷,且懒),实现了用户认证和访问权限控制,做到了集群内部更细粒度的隔离,实现了各个子业务线内部应用之间的访问隔离。


分词支持

集群默认集成了 ik 分词(小编在这给各位看官一点提示:因为 Elasticsearch 5.x 之后关闭了 Site Plugins 的支持,所以需要自己编译然后拷贝相应文件到 Elasticsearch Plugin 目录),并且支持扩展分词词典和 stopword 扩展词典的动态更新。


用户端功能

基于 Hulk 私有云平台的自助功能

集群申请

状态查看

常用性能监控图表

indices 展示

权限申请等自助服务


新建集群



提供多种类型配置的套餐

提供多种类型配置的套餐可供业务选择,兼顾空间、成本和性能的考量。


界面化展示

默认提供配置好的 Kibana 服务,用户可以开箱即用,不用自己搭建和维护。


管理员功能

基于 Hulk 私有云平台的管理功能

群集的配置

集群初始化

节点启停管理

资源回收等功能


Zabbix 监控

基于 FromDual 框架的自定义监控指标,全面监控集群运行状态,及时告警;并且实现了简单场景的故障自动恢复(例如由节点存活报警自动触发的进程自启动等)



WebAdmin 管理功能扩展

Elasticsearch 5.x 之后关闭了对 Site Plugins 的支持,直接导致了诸如 head、kopf 等一批插件死翘翘。不过作者对 kopf 功能进行了彻底的重构(using Scala, Play Framework, AngularJS and Bootstrap),推出和 Elasticsearch 完全解耦的 Cerebro,不仅外观看起来更加高大上,支持独立部署,而且在易用性以及对 Elasticsearch 更高版本特性的支持上都有了很大提升。



总结

怎么样,看了上面的介绍,各位看官是不是都想跃跃欲试了呢。欢迎大家积极留言探讨。


我们后续也会持续推出 Elasticsearch 服务在 360 私有云平台实践过程中的诸多技术点来跟大家分享,敬请期待吧。


本文转载自公众号 360 云计算(ID:hulktalk)。


原文链接:


https://mp.weixin.qq.com/s/h8TthWUfdP0L_7HiY9-hBw


2019 年 11 月 28 日 15:26745

评论

发布
暂无评论
发现更多内容

深入学习 SAP UI5 框架代码系列 | 内容合集

Jerry Wang

JavaScript 大前端 SAP 内容合集 签约计划第二季

云原生训练营作业--部署k8s集群

好吃不贵

畅聊分布式体系架构

DisonTangor

分布式架构

Redis持久化策略——RDB

蝉沐风

redis redis持久化 rdb RDB 快照

深入学习 SAP UI5 框架代码系列之五:SAP UI5 控件的实例数据修改和读取逻辑

Jerry Wang

JavaScript SAP SAP UI5 签约计划第二季 控件

CPU的流水线指令设计

JavaEdge

小程序电商微服务拆分和框架选择

云里雾花

新成就!OceanBase 入选 Forrester 首份分布式数据库报告

OceanBase 数据库

数据库 开源 新闻 oceanbase 荣誉

深入学习 SAP UI5 框架代码系列之二:UI5 控件的渲染器

Jerry Wang

SAP 签约计划第二季 ui5 控件 渲染器

深入学习 SAP UI5 框架代码系列之四:SAP UI5 控件的元数据实现

Jerry Wang

JavaScript SAP SAP UI5 签约计划第二季 WebIDE

Linux安装mysql

犟马骝

深入学习 SAP UI5 框架代码系列之六:SAP UI5 控件数据绑定的实现原理

Jerry Wang

JavaScript SAP SAP UI5 签约计划第二季 控件

Flutter 2.5 的新特性【Flutter专题12】

坚果

flutter 签约计划第二季

深入学习 SAP UI5 框架代码系列之一:UI5 Module 的懒加载机制

Jerry Wang

JavaScript 大前端 SAP 签约计划第二季 ui5

深入学习 SAP UI5 框架代码系列之三:HTML 原生事件 VS UI5 Semantic 事件

Jerry Wang

JavaScript SAP 事件 签约计划第二季 HTML原生事件

【死磕Java并发】-----J.U.C之Condition

chenssy

11月日更 死磕 Java 死磕 Java 并发

2021年大数据开发发展趋势

五分钟学大数据

11月日更

深入学习 SAP UI5 框架代码系列之七:控件数据绑定的三种模式 - One Way, Two Way 和 OneTime 实现原理比较

Jerry Wang

JavaScript 数据绑定 SAP SAP UI5 签约计划第二季

深入学习SAP UI5框架代码系列之八:谈谈 SAP UI5 的视图控件 ID,以及 SAP UI5 视图和 Angular 视图的异同

Jerry Wang

JavaScript 大前端 SAP SAP UI5 签约计划第二季

跟小师妹一起学JVM-系列文章

程序那些事

Java JVM JIT 内容合集 签约计划第二季

音视频理论(1)- 音频格式之 Monkeys Audio(APE)

liuzhen007

签约计划第二季

EasyRecovery,重新找寻丢失的文件

淋雨

EasyRecovery

JSON 数据格式

大数据技术指南

11月日更

Exchange漏洞分析:SSRF RCE

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

盘点Flutter领域的点点滴滴 【专题合集】

坚果

flutter 内容合集 签约计划第二季

CloudPosse 的 Terraform 最佳实践

大可不加冰

DevOps 基础设施即代码 IaC Terraform HashiCorp

会日语的开发工程师看过来~

CITEC赛伯尔

Java c++ php .net 日语

k8s statefulset controller源码分析

良凯尔

源码 Kubernetes 源码分析 #Kubernetes#

转型中的学习型组织 ——阅读《第五项修炼》有感

敏捷教练Jojo

系统性思考 企业转型

Flutter 中的手势【Flutter 专题10】

坚果

flutter 签约计划第二季

Flutter自定义日历【Flutter 专题 11】

坚果

flutter 签约计划第二季

360私有云平台Elasticsearch服务初探-InfoQ