生产者 队列 消息 第二章

MQ消息中间件,面试能问写什么?

为什么使用消息队列 消息队列的常见使用场景有很多但是核心的有三个:解耦、异步、削峰 解耦:那种不需要直接同步调用接口的,可以考虑异步化解耦 异步:主业务执行结束后从属业务通过MQ,异步执行,减低业务的响应时间 削峰:高并发场景下,延缓用户请求,环节应用压力 消息队列的优点和缺点? 优点: 特殊场景下 ......
中间件 消息

消息队列

消息队列,顾名思义,就是传递消息的队列 消息队列有哪些应用 系统解耦 设计模式中有一个开闭原则,指的是软件实体应该对扩展开放、对修改关闭,尽量保持系统之间的独立,这里面蕴含的是解耦思想。而消息队列的使用,可以认为是在系统中隐含地加入了一个对外的扩展接口,能够方便地对业务进行解耦,调用方只需要发送消息 ......
队列 消息

RabbitMQ消息队列搭建以及迁移

一、RabbitMQ框架 rabbitmq系统架构图 通过路由将交换机和队列进行绑定,从而实现消息的发送和接收 rabbitmq基本概念 1、Message(消息) 消息是不具名的,它由消息头和消息体组成。消息体是不透明的,而消息头则由一系列的可选属性组成,这些属性包括routing-key(路由键 ......
队列 RabbitMQ 消息

Linux学习第二课-Linux常用命令

1. 远程连接Linux 工具:putty(https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)、xshell(https://www.xshellcn.com/xshell.html)等 ​ 个人喜欢使用putty,免安装, ......
Linux 命令 常用

太坑了,我竟然从RocketMQ源码中扒出了7种导致消息重复消费的原因

大家好,我是三友~~ 在众多关于MQ的面试八股文中有这么一道题,“如何保证MQ消息消费的幂等性”。 为什么需要保证幂等性呢?是因为消息会重复消费。 为什么消息会重复消费? 明明已经消费了,为什么消息会被再次被消费呢? 不同的MQ产生的原因可能不一样 本文就以RocketMQ为例,来扒一扒Rocket ......
源码 RocketMQ 原因 消息

穷人版生产力工具,好用得飞起 「GitHub 热点速览」

被 GPT 和 OpenAI 刷屏了一个多月,现在 GitHub Trending 已经没有什么和 gpt 无关的项目了,但是好在总有优秀的开源项目拯救我的项目疲惫。像是贴心好用的反向代理 pgrok,据说是穷人的 ngrok 替代品;拯救 SQL Boy 的 textSQL,现在你可以不写 SQL ......
生产力 穷人 热点 工具 GitHub

一文了解清楚kafka消息丢失问题和解决方案

前言 今天分享一下kafka的消息丢失问题,kafka的消息丢失是一个很值得关注的问题,根据消息的重要性,消息丢失的严重性也会进行放大,如何从最大程度上保证消息不丢失,要从生产者,消费者,broker几个端来说。 消息发送和接收流程 kafka生产者生产好消息后,会将消息发送到broker节点,br ......
解决方案 消息 方案 问题 kafka

Prometheus Alertmanager生产配置趟过的坑总结

简介 Alertmanager 处理由客户端应用程序(如 Prometheus server)发送的警报。它负责去重(deduplicating),分组(grouping),并将它们路由(routing)到正确的接收器(receiver)集成,如电子邮件,微信,或钉钉。它还负责处理警报的静默/屏蔽( ......
Alertmanager Prometheus

解放AI生产力——为什么要使用ComfyUI

最近状态不好,所以这几天基本没干什么,就分享一下和AI绘画有关的东西吧。 此前我都没有抱着一种教学的心态来写博客,因为我所掌握的东西实在太过简单,只要一说大家就会了,我害怕我在人群里失去自己的特征,但不得不承认,这是一种很丑陋的心态,重要的是我否定了自己所学的东西,如果不愿承认现在的软弱,我就始终看 ......
生产力 ComfyUI

消息队列简介

什么是消息队列 消息队列是一种异步的服务间通信方式,适用于无服务器和微服务架构。 消息在被处理和删除之前一直存储在队列上。每条消息仅可被一位用户处理一次。 消息队列可被用于分离重量级处理、缓冲或批处理工作以及缓解高峰期工作负载。 提供消息的我们称为生产者;接收消息的我们称为消费者。 为什么要用消息队 ......
队列 消息 简介

一种异步延迟队列的实现方式

目前系统中有很多需要用到延时处理的功能:支付超时取消、排队超时、短信、微信等提醒延迟发送、token刷新、会员卡过期等等。通过延时处理,极大的节省系统的资源,不必轮询数据库处理任务。 目前大部分功能通过定时任务完成,定时任务还分使用quartz及xxljob两种类型轮询时间短,每秒执行一次,对数据... ......
队列 方式

Redis使用ZSET实现消息队列使用总结一

转载请注明出处: 目录 1.zset为什么可以做消息队列 2.zset实现消息队列的步骤 3.使用jedis实现消息队列示例 4.+inf与-inf 5.redis使用list与zset做消息队列有什么区别 1.zset为什么可以做消息队列 zset做消息队列的特性有: 有序性:zset中所有元素都 ......
队列 消息 Redis ZSET

Redis使用ZSET实现消息队列使用总结二

转载请注明出处: 目录 1.redis 用zset做消息队列如何处理消息积压 2.redis分片并使用zset做消息队列 3. redis如何分片 4. redis使用java发送消息到zset队列并对消息进行分片处理 5. redis使用zset做消息队列时,有多个消费者同时消费消息怎么处理 6. ......
队列 消息 Redis ZSET

记一次生产频繁发生FullGC问题

问题发现 早上过来,饭都没来的及吃,运维就给我发来信息,说是某个接口调用大量超时。因为最近这个接口调用量是翻倍了,所以我就去检查了下慢SQL,发现确实是有较多的慢SQL,所以我就缩减了查询的时间范围,但是效果并不好。 过了一会发现,这个服务fullGC是有问题的,太频繁了,这个应该是导致接口超时的根 ......
FullGC 问题

消息队列中间件的选型与比较

消息队列是一种重要的分布式系统组件,可用于异步通信、削峰填谷、解耦系统、数据缓存等多个方面。在选择消息队列时,需要考虑诸多因素,包括性能、可靠性、可用性、扩展性、可维护性、社区支持等等。 一、MQ介绍 1. Kafka Kafka 是一种高吞吐量、分布式的消息队列系统。它以日志为基础,支持高吞吐量、 ......
队列 中间件 消息

微服务学习计划——消息队列

微服务学习计划——消息队列 我们在微服务中一个命令会逐渐调用各个微服务,但如果一一调用不仅需要微服务实时同步交互还会浪费效率 所以我们通常会采用MQ,也就是消息队列Message Queue来处理这个问题 下面我们会通过几个方法介绍消息队列: MQ RabbitMQ SpringAMQP MQ 首先 ......
队列 消息

Nodejs 发送 TCP 消息的正确姿势

最近使用 NODE-RED 跟 TCP 打交道。NODE-RED 里内建了一个节点叫“tcp-out”,看文档呢使用这个节点可以很方便的把 payload 用 TCP 协议发送出去,但是事实上事情没有这么简单。其实当我第一次看到这个节点用法的时候我就觉得会有问题,果不其然。既然节点有问题,那么就干脆 ......
姿势 消息 Nodejs TCP

延迟队列实现订单超时自动取消

在上一篇 Java 实现订单未支付超时自动取消,使用Java自带的定时任务TimeTask实现订单超时取消,但是有小伙伴提出这种实现,会有以下几个问题: 线上服务挂了,导致服务下所有的定时任务失效。 服务重启,定时任务也会失效。 服务上线需要发布新的服务,原来服务也会关闭。 针对上述服务挂了、或者服 ......
队列 订单

Java+Redis 通过Lua 完成库存扣减,创建消息队列,异步处理消息--实战

需要完成功能 借助redis Stream 数据结构实现消息队列,异步完成订单创建,其中涉及到了缓存(击穿,穿透,雪崩),锁(Redisson),并发处理,异步处理,Lua脚本 IDE:IDEA 2022 1、读取库存数据 【Lua】 2、判断库存 【Lua】 3、扣减库存 【Lua】 4、创建队列 ......
消息 队列 实战 库存 Redis

云原生时代顶流消息中间件Apache Pulsar部署实操之轻量级计算框架

本篇逐层递进了解Pulsar Functions的基本概念和理论,如工作原理、处理保证模式、窗口函数;进一步搭建Pulsar函数运行环境,一步步操作演示函数也包括窗口函数的示例使用,最后通过Java语言实现原生语言接口和Pulsar函数SDK两种方式的代码示例、打包、部署和结果验证。 ......
轻量 轻量级 中间件 框架 消息

云原生时代顶流消息中间件Apache Pulsar部署实操之Pulsar IO与Pulsar SQL

本篇重点了解Pulsar IO的基础,通过两个示例演示如何一步步实操安装Cassandra和JDBC PostgreSQL的年连接器,进而配置和创建Pulsar Sink 并验证结果,也进一步熟悉一些常见pulsar-admin命令,最后还演示Pulsar SQL简单使用。 ......
Pulsar 中间件 消息 时代 Apache

Kustomize 生产实战-注入监控 APM Agent

Kustomize 简介 Kubernetes 原生配置管理工具, 它自定义引入了一种无需模板的方式来定制应用程序配置,从而简化了对现成应用程序的使用。目前,在kubectl中内置了,通过 apply -k 即可使用。 Kustomize 遍历 Kubernetes 清单以添加、删除或更新配置选项, ......
实战 Kustomize Agent APM

Qt 学习笔记 - 第二章 - 添加图片、布局、界面切换

Qt 学习笔记全系列传送门: Qt 学习笔记 - 第一章 - 快速开始、信号与槽 【本章】Qt 学习笔记 - 第二章 - 添加图片、布局、界面切换 Qt 学习笔记 - 第三章 - Qt的三驾马车之一 - 串口编程 + 程序打包成Windows软件 Qt 学习笔记 - 第四章 - Qt的三驾马车之二 ......
布局 界面 第二章 笔记 图片

生产环境Java应用服务内存泄漏分析与解决

有个生产环境CRM业务应用服务,情况有些奇怪,监控数据显示内存异常。内存使用率99.%多。通过生产监控看板发现,CRM内存超配或内存泄漏的现象,下面分析一下这个问题过程记录。 1、服务器硬件配置部署情况 生产服务器采用阿里云ECS机器,配置是2HZ、8GB,单个应用服务独占,CRM应用独立部署,即单 ......
应用服务 内存 环境 Java

RabbitMQ真实生产故障问题还原与分析

RabbitMQ生产故障问题分析 由某一次真实生产环境rabbitMQ故障引发血案,下面复盘问题发生原因以及问题解决方法。 1、 问题引发 由某个服务BI-collector-xx队列出现阻塞,影响很整个rabbitMQ集群服务不可用,多个应用MQ生产者服务出现假死状态,系统影响面较广,业务影响很大 ......
RabbitMQ 故障 问题

阿里云 ACK@Edge 助力元戎启行加速进入自动驾驶规模化生产

本文将通过介绍元戎启行使用阿里云边缘容器服务 ACK@Edge 的实践,分享在自动驾驶网约车场景下,如何将云边一体的云原生能力快速覆盖到众多智能车载设备,有效降低自动驾驶车辆管理成本。 ......
元戎 规模 Edge ACK

玩转钉钉消息推送!

我是3y,一年CRUD经验用十年的markdown程序员👨🏻‍💻常年被誉为职业八股文选手 在前阵子我就已经接入了钉钉的群机器人和工作消息推送,一直没写文章同步到给大家。 像这种接入渠道的工作,虽然我没接入过,但可预见性地就是看看官方文档,然后对着文档一顿学习,复制下接入的代码,然后调试,最后就 ......
消息

用Redis实现延迟队列,我研究了两种方案,发现并不简单

大家好,我是三友~~ 背景 前段时间有个小项目需要使用延迟任务,谈到延迟任务,我脑子第一时间一闪而过的就是使用消息队列来做,比如RabbitMQ的死信队列又或者RocketMQ的延迟队列,但是奈何这是一个小项目,并没有引入MQ,我也不太想因为一个延迟任务就引入MQ,增加系统复杂度,所以这个方案直接就 ......
队列 方案 Redis

真·生产力「GitHub 热点速览」

这些工具真的能极大提高生产力,节约你的时间来自(摸)我(鱼)增(划)值(水)。先别提 style2paints,你给它随意画个草图,就能给你一个能交付给甲方爸爸的成品插画。如果提升 30%-40% 传输速度的 kcp 不够惊艳,还有想象力匮乏程序员的福音——rerun,直接让你带入计算机视角看待那些 ......
生产力 热点 GitHub 183

精华推荐 |【算法数据结构专题】「延时队列算法」史上非常详细分析和介绍如何通过时间轮(TimingWheel)实现延时队列的原理指南

时间轮的介绍 时间轮(TimeWheel)是一种实现延迟功能(定时器)的精妙的高级算法,其算法应用范围非常广泛,在Java开发过程中常用的Dubbo、Netty、Akka、Quartz、ZooKeeper 、Kafka等各种框架中,各种操作系统的定时任务crontab调度都有用到,甚至Linux内核 ......