热门标签 | 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等数据库类型。
推荐阅读
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • MQTT技术周报:硬件连接与协议解析
    本周开发笔记重点介绍了在新项目中使用MQTT协议进行硬件连接的技术细节,涵盖其特性、原理及实现步骤。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 本文详细介绍如何使用Samba软件配置CIFS文件共享服务,涵盖安装、配置、权限管理及多用户挂载等关键步骤。通过具体示例和命令行操作,帮助读者快速搭建并优化Samba服务器。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本文探讨了 Spring Boot 应用程序在不同配置下支持的最大并发连接数,重点分析了内置服务器(如 Tomcat、Jetty 和 Undertow)的默认设置及其对性能的影响。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 深入解析 Spring Security 用户认证机制
    本文将详细介绍 Spring Security 中用户登录认证的核心流程,重点分析 AbstractAuthenticationProcessingFilter 和 AuthenticationManager 的工作原理。通过理解这些组件的实现,读者可以更好地掌握 Spring Security 的认证机制。 ... [详细]
  • 配置Windows操作系统以确保DAW(数字音频工作站)硬件和软件的高效运行可能是一个复杂且令人沮丧的过程。本文提供了一系列专业建议,帮助你优化Windows系统,确保录音和音频处理的流畅性。 ... [详细]
  • 本文详细介绍了在企业级项目中如何优化 Webpack 配置,特别是在 React 移动端项目中的最佳实践。涵盖资源压缩、代码分割、构建范围缩小、缓存机制以及性能优化等多个方面。 ... [详细]
  • 创建项目:Visual Studio Online 入门指南
    本文介绍如何使用微软的 Visual Studio Online(VSO)创建和管理开发项目。作为一款基于云计算的开发平台,VSO 提供了丰富的工具和服务,简化了项目的配置和部署流程。 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
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社区 版权所有