热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

58同城的Elasticsearch应用与平台构建实践

本文由58同城高级架构师于伯伟分享,由陈树昌编辑整理,内容源自DataFunTalk。文章探讨了Elasticsearch作为分布式搜索和分析引擎的应用,特别是在58同城的实施案例,包括集群优化、典型应用实例及自动化平台建设等方面。
### 58同城Elasticsearch应用与平台构建
#### 分享概览
- **分享人**:于伯伟,58同城高级架构师
- **编辑整理**:陈树昌
- **来源**:DataFunTalk

#### 引言
Elasticsearch是一种强大的分布式搜索和分析引擎,适用于全文检索、结构化查询和数据分析等场景。它基于Lucene构建,是当前最受欢迎的开源搜索引擎之一。58同城不仅在其主要搜索引擎中使用Elasticsearch,还在内部创新搜索业务和大规模实时OLAP(在线分析处理)中广泛应用。

#### 集群优化与管理
- **背景**:初期,58同城各部门自行维护Elasticsearch,随着使用频率和重要性的提升,数据库团队接手了全公司的Elasticsearch管理,面临多种挑战,如复杂的使用场景、版本不统一、缺乏监控等问题。
- **常见问题**:
- **磁盘空间不足**:索引泛滥、缺乏生命周期管理、分片设置不当等。
- **写入性能下降**:索引设计不合理、分片过多、副本设置不当等。
- **应对措施**:
- 实施严格的索引管理和权限控制。
- 优化索引生命周期,及时清理不再需要的数据。
- 合理规划分片数量,避免单个分片过大。
- 日志类索引按天或更细粒度划分。
- 不同集群避免共享同一服务器节点。

#### 典型应用案例
- **ELKB日志管理方案**:利用Elasticsearch、Logstash、Kibana和Beats组成的日志管理框架,实现日志的收集、存储和可视化。
- **实时日志平台**:通过Flume和Filebeat收集日志,Kafka缓存,Logstash过滤,最终存储于Elasticsearch,并通过Kibana展示。
- **MySQL实时慢日志系统**:通过Filebeat收集MySQL慢日志,经Logstash处理后存储至Elasticsearch,支持实时查看和分析。

#### 平台化建设
- **用户端**:提供Elasticsearch的查询、统计和状态监控等功能。
- **管理端**:实现Elasticsearch集群的一键部署和索引治理。
- **监控与报警**:使用Zabbix + Grafana进行集群监控和报警。

#### 未来规划
- **版本升级**:计划升级至Elasticsearch 7.X,以利用其性能优化特性。
- **智能诊断**:开发自动化的故障检测和处理机制。
- **私有云探索**:优化资源配置,提高资源利用率。

#### 问答环节
- **数据同步**:Hadoop或Hive数据可通过官方组件或自定义程序同步至Elasticsearch。
- **日志格式定义**:使用Filebeat的多行合并功能和Logstash的过滤规则处理复杂日志。
- **MySQL数据同步**:通过业务层双写、DataX或Canal等工具实现MySQL数据的实时同步。
- **二级索引**:采用类似MySQL回表查询的方式,在Elasticsearch中存储相关记录ID,查询后再从MySQL或HBase中获取完整数据。

### 嘉宾介绍
- **姓名**:于伯伟
- **职位**:58同城高级架构师
- **职责**:负责58同城数据库部门,提供高可靠、高性能的数据库服务,涵盖MySQL、Redis、MongoDB、TiDB和Elasticsearch等数据库类型。
推荐阅读
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 本文深入探讨了 Redis 的两种持久化方式——RDB 快照和 AOF 日志。详细介绍了它们的工作原理、配置方法以及各自的优缺点,帮助读者根据具体需求选择合适的持久化方案。 ... [详细]
  • 科研单位信息系统中的DevOps实践与优化
    本文探讨了某科研单位通过引入云原生平台实现DevOps开发和运维一体化,显著提升了项目交付效率和产品质量。详细介绍了如何在实际项目中应用DevOps理念,解决了传统开发模式下的诸多痛点。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 深入探讨智能布线管理系统的电子配线架应用
    本文详细介绍了电子配线架智能布线系统的核心优势,包括实时监测网络连接、提高操作准确性、图形化显示连接架构、自动识别网络拓扑、增强安全性等功能。该系统不仅提升了网络管理的效率和准确性,还为资产管理、报告生成以及与其他智能系统的集成提供了强大的支持。 ... [详细]
  • 本文详细介绍了在企业级项目中如何优化 Webpack 配置,特别是在 React 移动端项目中的最佳实践。涵盖资源压缩、代码分割、构建范围缩小、缓存机制以及性能优化等多个方面。 ... [详细]
author-avatar
男人着责任
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有