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

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: 【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只支持查询操作。如果业务是电商类的,可以考虑这个策略。

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
目录
相关文章
|
NoSQL 大数据 微服务
【后端面经】【NoSQL】ElasticSearch - 1 -4 削峰 扩容
【6月更文挑战第19天】面试中,限流阈值设定、触发及恢复策略是关键点。熔断即停止新请求,降级需优先保障核心业务。可通过研发插件或使用网关(如极限网关)实现熔断、限流、降级,但网关可能引入性能损耗。客户端限流也是有效手段,尤其对高压力业务。然而,最佳解决方案仍是针对高并发需求进行扩容。
113 0
【后端面经】【NoSQL】ElasticSearch - 1 -4 削峰 扩容
|
负载均衡 NoSQL 中间件
|
消息中间件 Java Spring
JavaWeb后端开发Spring框架之消息 消息队列案例--订单短信通知
JavaWeb后端开发Spring框架之消息 消息队列案例--订单短信通知
163 0
|
4月前
|
人工智能 Java API
后端开发必看:零代码实现存量服务改造成MCP服务
本文介绍如何通过 **Nacos** 和 **Higress** 实现存量 Spring Boot 服务的零代码改造,使其支持 MCP 协议,供 AI Agent 调用。全程无需修改业务代码,仅通过配置完成服务注册、协议转换与工具映射,显著降低改造成本,提升服务的可集成性与智能化能力。
1126 1
|
4月前
|
前端开发 Java 数据库连接
后端开发中的错误处理实践:原则与实战
在后端开发中,错误处理是保障系统稳定性的关键。本文介绍了错误分类、响应设计、统一处理机制及日志追踪等实践方法,帮助开发者提升系统的可维护性与排障效率,做到防患于未然。
|
6月前
|
存储 消息中间件 前端开发
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
校园圈子系统校园论坛小程序采用uni-app前端框架,支持多端运行,结合PHP后端(如ThinkPHP/Laravel),实现用户认证、社交关系管理、动态发布与实时聊天功能。前端通过组件化开发和uni.request与后端交互,后端提供RESTful API处理业务逻辑并存储数据于MySQL。同时引入Redis缓存热点数据,RabbitMQ处理异步任务,优化系统性能。核心功能包括JWT身份验证、好友系统、WebSocket实时聊天及活动管理,确保高效稳定的用户体验。
383 4
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
|
8月前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
398 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
11月前
|
存储 缓存 负载均衡
后端开发中的性能优化策略
本文将探讨几种常见的后端性能优化策略,包括代码层面的优化、数据库查询优化、缓存机制的应用以及负载均衡的实现。通过这些方法,开发者可以显著提升系统的响应速度和处理能力,从而提供更好的用户体验。
379 6
|
7月前
|
前端开发 JavaScript 关系型数据库
2025 年前端与后端开发方向的抉择与展望-优雅草卓伊凡
2025 年前端与后端开发方向的抉择与展望-优雅草卓伊凡
385 5
2025 年前端与后端开发方向的抉择与展望-优雅草卓伊凡

热门文章

最新文章