八股文 八股 队列 消息
【Java 并发】【十】【JUC数据结构】【三】LinkedBlockingQueue阻塞队列原理
1 前言 这节我们就来看看LinkedBlockingQueue内部实现的原理。 2 LinkedBlockingQueue的使用 在看原理之前我们先来用一用LinkedBlockingQueue,来体验一下: 2.1 插入数据 public class LinkedBlockingQueueTes ......
js异步——事件循环和消息队列
前言 上篇文章中介绍了多进程的浏览器基本架构,现在,我们来谈谈单线程的 JS 代码、消息队列、事件循环、微任务和宏任务。 单线程的 JavaScript 什么是单线程 js? 如果你已经仔细阅读过上一篇文章,那么答案是显而易见的:由于浏览器是由渲染进程的主线程来执行 js 代码的,换句话说,js的运 ......
【Java 并发】【十】【JUC数据结构】【二】BlockingQueue阻塞队列原理
1 前言 这节我们就来看看BlockingQueue阻塞队列是什么都有哪些具体实现。 2 BlockingQueue阻塞队列是什么 BlockingQueue阻塞队列,它是一个提供阻塞功能的队列容器。首先它是一个队列容器,能够存储东西,提供数据入队功能,进行数据存入;提供数据取出功能,进行出队,如下 ......
SAP ABAP 释放 TR 遇到错误消息 ended with return code 8 的含义和处理办法
我的知识星球里有朋友提问: se09释放请求号报错:ended with return code : >8< 这个问题该如何解决? 这是 ABAP Transport Request 释放时的一个 Generic 错误消息。熟悉 ABAP 编程的朋友都知道,很多 ABAP 关键字执行后,通过系统变量 ......
sip消息拆包原理及组包流程
操作系统 :CentOS 7.6_x64 freeswitch版本 :1.10.9 sofia-sip版本: sofia-sip-1.13.14 freeswitch使用sip协议进行通信,当sip消息超过mtu时,会出现拆包的情况,这里整理下sip消息拆包原理及组包流程。 一、拆包的原理 简单来说 ......
分布式消息系统RocketMQ
一、RocketMQ简介 Apache RocketMQ是一个采用Java语言开发的分布式的消息系统,由阿里巴巴团队开发,与2016年底贡献给Apache,成为了Apache的一个顶级项目。 在阿里内部,RocketMQ 很好地服务了 集 团大大小小上千个应用,在每年的双十一当天,更有不可思议的万亿 ......
笔记2. 堆(优先队列)
堆(优先队列) 堆的概念 堆是满二叉树:从左到右依次变满(一般用数组下标存储) 父节点和左右节点的位置 节点i位置对应的父子节点位置 父节点: (i - 1) / 2; 左子节点: 2 * i + 1 右子节点: 2 * i + 2 大根堆和小根堆 大根堆:每棵子树的头节点为当前树的最大值 小根堆: ......
【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(下)
承接上文 承接上一篇文章【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(上)】我们基本上对层级时间轮算法的基本原理有了一定的认识,本章节就从落地的角度进行分析和介绍如何通过Java进行实现一个属于我们自己的时间轮服务组件,最后,在 ......
ROS2-发布矩阵类消息
这个困扰我两个周的难题终于在翻阅官方文档之后得到了解答,简而言之就是对于相关头文件的理解(其实是我懒得自定义头文件),下面解释一下相关代码。 发布者代码 #include <chrono> #include <memory> #include "rclcpp/rclcpp.hpp" #include ......
MQ——消息积压如何处理
一、消息积压的原因 1、producer生产消息突然增多 比如大促期间,抢购,秒杀业务。 2、consumer消费性能突然下降 比如消费失败时重试,程序死锁,io阻塞。 3、消费系统本身出现瓶颈 这种情况很少,对于绝大多数使用消息队列的业务来说,消息队列本身的处理能力要远大于业务系统的处理能力。主流 ......
数组模拟单向队列的思路及代码
JAVA实现数组模拟单向队列的思路及代码 一、什么是队列? 队列是一种特殊的线性表 ,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。 进行插入操作的端称为队尾,进行删除操作的端称为队头。 队列中没有元素时,称为 ......
数组模拟环形队列的思路及代码
JAVA实现数组模拟环形队列的思路及代码 前言 在对Java实现数组模拟队列零了解的情况下,建议先去阅读《JAVA实现数组模拟单向队列的思路及代码》一文,可以辅助理解本文核心思想。 一、环形数组队列 实现:让数组达到复用的效果,即:当我们从数组队列中取出了数据,那取出数据后后这个空间可以再次使用。 ......
使用 MQTT 实现前端消息传递
MQTT 是一种轻量级的消息传递协议,广泛应用于物联网和分布式系统中。在前端应用中使用 MQTT 可以实现实时消息传递和数据同步。本文将介绍如何使用 MQTT 在前端应用中实现消息传递。 安装 MQTT.js 要使用 MQTT,在前端应用中,需要安装 MQTT.js。在终端中执行以下命令: npm ......
基于SqlSugar的开发框架循序渐进介绍(25)-- 基于SignalR实现多端的消息通讯
基于ASP.NET Core SignalR 可以实现客户端和服务器之间进行即时通信。本篇随笔介绍一些SignalR的基础知识,以及结合对SqlSugar的开发框架的支持,实现SignalR的多端处理整合,从而实现Winform客户端,基于Vue3+ElementPlus的BS端整合,后面也可以实现... ......
Websocket保证接收消息完整性
用springboot起了个websocket服务端,有时候客户端发来的消息过长,无法接收完整,需要进行额外的处理 下面是处理的例子: @ServerEndpoint("/websocket") public class WebSocket { @OnMessage public void onMe ......
【LeetCode剑指offer 01】数组中重复的数字、两个栈实现队列
数组中重复的数字 数组中重复的数字 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1: 输入: [2, 3, 1, 0, 2, ......
Redis 在消息队列中的应用
1.Redis 的 List 数据类型 1.1 List 数据类型的特点 List 列表是 Redis 提供的一种重要的数据类型。它是由若干个字符串元素组成的集合,并且每个字符串元素都是按照插入顺序排序的。也可以将列表理解为多个字符串组成的一个集合对象,并按照链表(Link List)的插入顺序排序 ......
Kafka消息与索引详解
前言 以kafka_2.13-2.8.0为例,分析Kafka消息在磁盘上的存储结构、配置以及如何通过索引找到具体的消息数据。 分区目录 一个分区(Partition)有1到多个副本(Replica),是主从结构,主(Leader)负责处理读写请求,从(Follower)只负责同步数据并在主宕机的时候 ......
Kafka保证消息可靠性配置
前言 这篇内容是保证 Kafka 消息可靠性的相关配置,内容主要来自《Kafka权威指南》这本书,再根据 Apache - Kafka文档2.8 总结出来的。文中每个配置项是个超链接,可以定位到配置的官方文档。代码例子可以访问 GitHub - fruitbasket-litchi-kafka Br ......
【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(上)
承接上文 承接之前的【精华推荐 |【算法数据结构专题】「延时队列算法」史上非常详细分析和介绍如何通过时间轮(TimingWheel)实现延时队列的原理指南】,让我们基本上已经知道了「时间轮算法」原理和核心算法机制,接下来我们需要面向于实战开发以及落地角度进行分析如何实现时间轮的算法机制体系。 前言回 ......
强引用、软引用、弱引用、虚引用、引用队列、WeakHashMap
从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。 Java中提供这四种引用类型主要有两个目的: 第一是可以让程序员通过代码的方式决定某些对象的生命周期; 第二是有利于JVM进行垃圾回收。 1.强引用 ......
单机最快的队列Disruptor解析和使用
前言 介绍高性能队列Disruptor原理以及使用例子。 Disruptor是什么? Disruptor是外汇和加密货币交易所运营商 LMAX group 建立高性能的金融交易所的结果。用于解决生产者、消费者及其数据存储的设计问题的高性能队列实现。可以对标JDK中的ArrayBlockingQueu ......
消息队列面试题
为什么要使用消息队列? 主要有三点原因:解耦、异步、削峰。 (1)解耦。比如,用户下单后,订单系统需要通知库存系统,假如库存系统无法访问,则订单减库存将失败,从而导致订单操作失败。订单系统与库存系统耦合,这个时候如果使用消息队列,可以返回给用户成功,先把消息持久化,等库存系统恢复后,就可以正常消费减 ......
Jmeter:通过Jmeter发送MQ消息
某些业务完成测试自动化需要模拟『发送MQ』功能,本文介绍一下怎么在比较方便地在Jmeter中发送『MQ』消息。 安装Jmeter插件 在Github上有人分享了关于『Jmeter发送MQ』的插件,地址在:https://github.com/aliesbelik/jmeter-amqp-plugin ......
【踩坑系列】发送微信模板消息返回40165 invalid weapp pagepath
1. 踩坑经历 最近做了个需求,需要往公司微信公众号推送一个模板消息,并且点击该消息需要跳转到公司小程序的某个页面。 1.1 拿到模板id 既然是发送模板消息,第一步就需要登录微信公众号后台新建模板消息,拿到模板id。 登录地址:https://mp.weixin.qq.com 新建模板消息的方法如 ......
centrifugal 的IM消息服务历史消息报错
centrifugal是很轻量的golang编写的IM即时消息服务,支持集群部署和websocket访问。 centrifugal的官网地址和教程:https://centrifugal.dev centrigual支持历史消息查询,但是要注意历史消息查询仅仅支持命名空间为私有的,下面截图中的nam ......
node.js 18连接达梦报消息加密失败
查看达梦数据库 ENABLE_ENCRYPT已经关闭了ssl加密 可以在连接串属性将loginEncrypt改成false。 是否进行通信加密,缺省为 true;取值范围(true/True,false/False) dm://user:password@host:port[?propName1=p ......
Domino (贪心,多个位置排序,优先队列) 第二十届浙大城市学院程序设计竞赛
题目大意: 给出2个队列A,B 选 K 个 ai 和 在从里面选L个 bi 问权值最大时多少 思路: 排序预处理 有多个元素的时候, 对那个元素首先排序,以至于可以处理这个问题是很重要的 当不能一步直接贪心出来,可以 先贪部分,然后利用DP的思想慢慢加入点去更新即可 先对ai 排序, 然后选bi个最 ......
详解大数据中必不可少的消息中间件 kafka(3.x 新版本)
楔子 本次来聊一聊 kafka,相信大家都知道它是一个应用于大数据实时领域、基于发布/订阅模式的分布式消息中间件(或者说消息队列),能够和不同的进程进行通信,从而实现上下游之间的消息传递。有了消息队列之后,上游服务和下游服务就无需直接通信了,上游服务将消息发送到队列中,下游从队列中去取即可,从而实现 ......