【后端面经】【NoSQL】ElasticSearch - 1 -5 消息队列

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 【6月更文挑战第20天】

利用消息队列

在一些对数据实时性要求不高的场景下,完全可以考虑在业务方和Elasticsearch中加入一个消息队列。可以抓住关键字 削峰和限流来回答。

之前优化过我们业务的架构,在数据同步到Elasticsearch之前,加入一个消息队列来削峰。在早期的时候,我们都是双写,一方面写数据库,一方面写Elasticsearch,在业务高峰期,Elasticsearch就会有性能瓶颈。

而实际上,我们业务对实时性的要求不高,在这种情况下,引入了消息队列。业务方只是写入数据库就返回,监听binlog并生成消息丢到kafka上。在这种情况下,如果Elasticsearch空闲的话,消费速率就高;如果Elasticsearch性能比较差,消费就比较慢,这样起到削峰和限流的效果


2024-06-25-20-19-33-image.png

在这个架构的基础上,还可以考虑引入降级,也就是在 Elasticsearch 真的有性能问题的时候,关闭一部分消费者。

在这个架构的基础上,还做了一个简单的降级。如果有两类消费者写入数据到Elasticsearch,一类是核心数据消费者,一类是非核心数据消费者。

如果我监控到Elasticsearch性能已经比较差了,比如说写入的时候会遇到超时问题,就会把非核心数据消费者停下来。等Elasticsearch恢复过来再启动。
2024-06-25-20-25-01-image.png

如果在大促或秒杀这种活动中,可以把整个数据同步都停掉,让Elasticsearch只支持查询操作。如果业务是电商类的,可以考虑这个策略。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
7月前
|
NoSQL
|
7月前
|
NoSQL 大数据 微服务
【后端面经】【NoSQL】ElasticSearch - 1 -4 削峰 扩容
【6月更文挑战第19天】面试中,限流阈值设定、触发及恢复策略是关键点。熔断即停止新请求,降级需优先保障核心业务。可通过研发插件或使用网关(如极限网关)实现熔断、限流、降级,但网关可能引入性能损耗。客户端限流也是有效手段,尤其对高压力业务。然而,最佳解决方案仍是针对高并发需求进行扩容。
43 0
【后端面经】【NoSQL】ElasticSearch - 1 -4 削峰 扩容
|
6月前
|
负载均衡 NoSQL 中间件
|
7月前
|
消息中间件 Java Spring
JavaWeb后端开发Spring框架之消息 消息队列案例--订单短信通知
JavaWeb后端开发Spring框架之消息 消息队列案例--订单短信通知
67 0
|
27天前
|
存储 缓存 负载均衡
后端开发中的性能优化策略
本文将探讨几种常见的后端性能优化策略,包括代码层面的优化、数据库查询优化、缓存机制的应用以及负载均衡的实现。通过这些方法,开发者可以显著提升系统的响应速度和处理能力,从而提供更好的用户体验。
53 4
|
6天前
|
开发框架 小程序 前端开发
圈子社交app前端+后端源码,uniapp社交兴趣圈子开发,框架php圈子小程序安装搭建
本文介绍了圈子社交APP的源码获取、分析与定制,PHP实现的圈子框架设计及代码编写,以及圈子小程序的安装搭建。涵盖环境配置、数据库设计、前后端开发与接口对接等内容,确保平台的安全性、性能和功能完整性。通过详细指导,帮助开发者快速搭建稳定可靠的圈子社交平台。
66 17
|
18天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
58 3
|
1月前
|
存储 前端开发 Java
深入理解后端开发:从基础到高级
本文将带你走进后端开发的神秘世界,从基础概念到高级应用,一步步揭示后端开发的全貌。我们将通过代码示例,让你更好地理解和掌握后端开发的核心技能。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的信息和启示。
|
2月前
|
存储 缓存 监控
后端开发中的缓存机制:深度解析与最佳实践####
本文深入探讨了后端开发中不可或缺的一环——缓存机制,旨在为读者提供一份详尽的指南,涵盖缓存的基本原理、常见类型(如内存缓存、磁盘缓存、分布式缓存等)、主流技术选型(Redis、Memcached、Ehcache等),以及在实际项目中如何根据业务需求设计并实施高效的缓存策略。不同于常规摘要的概述性质,本摘要直接点明文章将围绕“深度解析”与“最佳实践”两大核心展开,既适合初学者构建基础认知框架,也为有经验的开发者提供优化建议与实战技巧。 ####
|
1月前
|
运维 监控 Java
后端开发中的微服务架构实践与挑战####
在数字化转型加速的今天,微服务架构凭借其高度的灵活性、可扩展性和可维护性,成为众多企业后端系统构建的首选方案。本文深入探讨了微服务架构的核心概念、实施步骤、关键技术考量以及面临的主要挑战,旨在为开发者提供一份实用的实践指南。通过案例分析,揭示微服务在实际项目中的应用效果,并针对常见问题提出解决策略,帮助读者更好地理解和应对微服务架构带来的复杂性与机遇。 ####