消息队列堆积太多,下游处理不过来怎么办呢?官网介绍
原文链接:https://MP。微信。QQ。com/s/BhhiUrQECX-ks 57 rrbrrzq
作为后端程序员,在日常工作中不可避免地要处理消息队列,而在当前的微服务场景中,许多服务的性能超出了我们的控制范围。
这不是阿粉最近遇到的场景。由于上游服务流量的增加和发送到消息队列的消息的增加,A Pink在处理消息时需要依赖下游服务,但谁能想到下游服务效率太差,太多消息无法处理,CPU居高不下。
昨天看过我们文章的朋友应该知道,此时我们需要限制电流。为了避免挤压下游服务,让我们限制单台机器上的电流。下面,我们来模拟一下操作过程。首先,我们通过一段伪代码模拟一个大流程。
然后通过配置sentinel的控制台来配置规则,从而实现单机版QPS 20的限制。
创建SpringBoot服务首先,我们创建一个SpringBoot服务并在pom.xml文件中添加以下配置。
org。spring框架。启动弹簧。阿里巴巴CSP哨兵-核心1。8。四然后我们提供一个对外的超文本传送协议(超文本传输协议的缩写)接口,
代码如下:
package com.example.demo.controller;import com.alibaba.csp.sentinel.SphO;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;/** *
* Function:
* Author: @ Author Ziyou
* Date: May 8, 2023 at 12: 56.
* Desc:无
*/@ RestControllerpublic类登录控制器{ @ get mapping(value=‘/log in‘)公共void登录(字符串用户名,字符串密码){ system。出去。println(‘log in‘);//模拟一百万条消息for(int I=0;我1000000;I ){布尔输入=假;请尝试{ entry=spho。entry(“hello world”);而(!条目){ try { thread。睡眠(50);系统。出去。println(‘entry false‘);入口=spho。entry(“hello world”);} catch(中断的异常e){ } }系统。出去。println(‘entry true’);} catch(Exception e){ } finally { if(entry){ spho。exit();} } } }}调用接口过后,
spho . entry(‘hello world‘):它是sentinel的资源控制器,HelloWord是资源的名称,资源是Sentinel的一个非常重要的概念。
所有电流限制都是针对资源操作的;SphO.entry()的返回值是一个布尔值。如果为真,则意味着资源可用且不受限制。如果为false,则意味着资源受到限制。这里的模拟是在被限制后,程序等待一段时间。
然后判断是否限制流量,只有在资源不受限时才继续处理;最终需要spho . exit();操作,当电流受限时,
即在spho . entry()==true之后,必须执行spho . exit();否则代码会创建多个Entry对象,在程序长时间运行后会导致内存泄漏和FullGC。
这时候我们启动一个服务,调用接口,可以看到效果如下,很快就会运行,但是没有达到限流的效果。那是因为我们此时还没有配置限流规则,所以还没有触发限流逻辑。
配置sentinel控制台接下来,我们将安装sentinel控制台,并通过控制台配置限流规则以达到限流的目的。控制台的构建非常简单。
我们可以从官方地址下载指定版本的jar并在本地运行。
通过地址https://github。com/阿里巴巴/Sentinel/releases/下载/1。8 .4/哨兵仪表板1。8 .4 .冲突进行下载。
然后通过命令Java-dserver。port=8081-dcsp。哨兵报。仪表板。server=localhost:8081-d项目。name=哨兵-仪表板-罐子哨兵-仪表板-1。8 .4 .冲突运行即可,
这里我们使用端口8081来访问sentinel。成功启动后,我们可以通过浏览器登录。默认的初始帐户和密码是sentinel。
因为我们在上面的命令中指定了sentinel-dashboard项目,所以默认情况下我们只能看到sentinel-dashboard项目。此时,我们需要修改代码并在pom.xml中添加以下配置
Com. Alibaba. CSP sentinel-transport-simple-http 1。 8。 4 Then add-dcsp.sentinel.dashboard.server=localhost: 8081 to the startup parameters of the virtual machine (abbreviation of Java Virtual Machine) to indicate the address and port number of the sentry.
按照上图配置后,我们再次调用该接口,可以看到此时我们的处理速度明显变慢了,每秒只有20个QPS可以获取资源。到目前为止,我们基于sentinel的单机限流QPS 20的目标已经实现。
版权声明
1、本文内容转载自消息队列堆积太多,下游处理不过来怎么办呢?(),或有会员发布,版权归原网站/法人所有。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、文章仅代表作者个人观点,不代表本站立场,未经作者许可,不得转载。
4、若侵犯您的版权或隐私,请联系本站管理员删除。
口碑点评
警告:请理性点评、打分,请文明用语!请给“消息队列堆积太多,下游处理不过来怎么办呢?”打分并给出您的宝贵点评意见
消息队列堆积太多,下游处理不过来怎么办呢?收录查询
消息队列堆积太多,下游处理不过来怎么办呢?SEO综合查询
-
搜索引擎百度PC百度移动头条搜狗360pPC360移动神马
-
权重
-
关键词
-
IP来路
推荐网站
-
Java项目:并发队列中的任务堆积导致队列溢出
当Java项目中的并发队列中的任务堆积过多时,可能会导致队列溢出,引发一系列问题。下面将详细解释这个问题,并提供一些解决方案。首先,让我们了解一下什么是并发队列。并发队列是在多线程环境下使用的数据结构,它可以安全地处理并发访问和操作。常见的
更新时间:2024-01-26 03:26:08 -
数仓/数开面试题真题总结(四)
四.Kafka1.Kafka名词解释和工作方式Producer :消息生产者,就是向kafka broker发消息的客户端。Consumer :消息消费者,向kafka broker取消息的客户端Topic :咱们可以理解为一个队列。Con
更新时间:2024-01-26 03:26:08 -
阴阳师万事屋怎么升级快?阴阳师万事屋快速升级攻略技巧
阴阳师万事屋怎么升级快呢 下面小编为大家带来阴阳师万事屋快速升级攻略,快一起来看看吧。阴阳师万事屋快速升级攻略一句话总结:白天主要卖产品,保持风水玉接近上限,消耗全部火玉;睡觉时主要制作风水产品,火玉自然恢复,只用挂两个委派雷2水2;雷三级
更新时间:2024-01-26 03:26:08 -
消息队列大量积压怎么办?,消息队列积压了大量消息怎么处理
Q:刚开始是对这个疑问抱有质疑态度的,因为使用消息队列的其中目的就是削峰填谷,来避免高流量时,对下游服务的冲击,所以使用消息队列进行缓冲,下游根据自己的消费能力去消费,我感觉这就是消息积压本就是使用消息队列的功能,怎么会是问题呢?A:首先
更新时间:2024-01-26 03:26:08 -
阴阳师京都万事屋详解:小纸人高强度打工,活动剧情又放“卫星”
本周阴阳师体验服上线了新活动——京都万事屋,不同于之前需要阴阳师来肝活动,这次则是让小纸人承担起了“爆肝”的义务,阴阳师只需要设定好需要生产的物资就好,顶多再打打每日限定次数的材料本,小纸人惨……在详解活动玩法之前,先来看看在剧情中,官方“
更新时间:2024-01-26 03:26:08 -
京都万事屋傻瓜式攻略,活动看不懂没关系,做完这几项就可以
经过了漫长的种草期之后,最近阴阳师终于迎来了新的大型活动——京都万事屋,本次活动对于萌新玩家非常友好,肝度也并不高,只需要定期上号收菜就可以拿到奖励。但最近有很多玩家表示玩不懂这个活动,不知道自己能干什么,该干什么,不用担心,今天就给大家分
更新时间:2024-01-26 03:26:08 -
阴阳师万事屋活动核心打手及阵容推荐 万金油级别的PVE顶级配置
对于这次阴阳师万事屋主题活动,不管你是否了解活动本身的机制和玩法,核心副本的打法是不变的,每天30次的副本一样要打,之类带来活动核心打手以及阵容推荐,方便玩家结合自身持有的式神来进行速刷。本次活动有一个特色就是副本不会记录上次攻略的阵容,也
更新时间:2024-01-26 03:26:08 -
阴阳师:(简化)万事屋攻略(阴阳师万事屋事件)
(简化)万事屋攻略活动介绍非常复杂,但是玩法极其简单,给大家白话的讲解一下!这个活动 可以理解为 买菜 做饭 然后赚钱 的养成玩法,你自己开了个小饭店,开局4个人,目标做成上市企业度假村一:活动主界面6个按钮,3个别管,3个核心介绍:商店:
更新时间:2024-01-26 03:26:08 -
阴阳师:平安京收菜活动万事屋攻略详解 5分钟玩转最难懂的新活动
阴阳师这次开启的万事屋大型活动,估计不少玩家都给整懵了,这里带来具体的攻略思路和简单容易理解和上手的攻略流程,方便玩家明白和轻松的参与这次活动。从简单到复杂挨个说,一开始搬商店大家都懂吧,你的目的就是一个,收集资金然后搬商店就OK。第二个是
更新时间:2024-01-26 03:26:08 -
《阴阳师》正式服第3天,3级万事屋:给上班族的日程安排建议
作者:NGA-joker3254300 2022.04.17,万事屋上线的第三天,相信经过两天摸爬滚打,部分玩家不说玩透,至少已经有了一点了解了 比如知道自己无法解雇 (持续码字中)首先直接来一句话概况:早上起来,8个纸人全部挂生产:3风符
更新时间:2024-01-26 03:26:08