
消息队列
文章平均质量分 76
仿Rabbit消息队列的实现
栖林_
一个励志于做全栈工程师的平平无奇大学生,希望在这里留下自己学习的记录
展开
-
RabbitMQ的死信队列
对于RabbitMQ来说,死信队列是可以存储不能被正确消费的信息的,可以通过消费死信队列中的内容来分析可能出现的异常情况,可以用于改善和优化系统。死信(Dead Letter)是消息队列中的一种特殊消息,是指没有办法被正常消费或者处理的消息,例如消息过期、消息被拒绝、队列满了。消息的生存时间(Time-To-Live, TTL)超过了指定的时长,而消息仍未被消费,这样的消息会被转移到死信队列。AWS SQS 支持直接配置死信队列,开发者可以设置消息的最大重试次数,超出后消息会被自动转移到死信队列。原创 2025-01-24 15:40:25 · 893 阅读 · 0 评论 -
muduo网络库介绍
在主线程中主要任务就是监控新连接的到来,保证尽可能高效的获取新建连接,再按照负载均衡的方式分发到普通Reactor的线程中,对对应的IO事件进行监控。这个类主要是用于事件监控和业务处理,在构造TcpServer之前,就需要构造这个EventLoop对象,最重要的就是loop成员函数。所谓的主从Reactor就是,在主线程中有一个主Reactor进行事件触发,而在其他其他线程中就是普通的Reactor进行事件触发。这是一个非阻塞接口,调用之后直接返回,连接不一定建立完成,不能直接发送数据。原创 2024-09-28 14:42:15 · 1123 阅读 · 0 评论 -
C++异步操作实现线程池
他的一个重要的特性就是能够阻塞当前的线程,一直到异步操作完成,从而确保在获取结果的时候,异步工作线程的任务是完成的。当我们在进行多线程中使用异步任务时,std::future是用来帮我们在需要的时候获取任务执行的结果。这是将一个函数封装起来,也可以返回一个封装对象,来获取他保存的这个函数的执行结果。其实就是设置,在获取结果时,才会进行传参调用,deferred本身是推迟的意思。,是如果有结果的话,直接获取结果,没有的话也是会阻塞等待。在我们调用获取结果之后,才显示正在计算,执行异步任务,原创 2024-10-03 11:26:35 · 951 阅读 · 0 评论 -
GTest测试框架介绍
GTest是谷歌发布的一个跨平台的单元测试框架,主要是为了在不同平台上编写的C++单元测试而生成的。测试中可以有多个测试套件,可以包含一组单元测试,不是很好理解,可以认为这是一个测试环境。测试程序中可以有很多测试套件,对应着全局,每一个测试套件中可以有多个单元测试。这其实就是我们用户自己定义的一个测试环境,是一个全局的测试环境类。如果局部需要设置全局的环境,就需要使用之前的全局的继承。在用例测试中,每一次单元测试都是单独进行的,互不影响。提供了丰富的断言,致命和非致命的判断,参数化。原创 2024-10-01 16:28:39 · 1061 阅读 · 0 评论 -
ProtoBuf序列化框架介绍
ProtoBuf全称是Protocol Buffer,是一个数据结构的序列化和反序列化框架他又很多好处,首先是他支持跨平台,支持Java、C++、Python等多种语言,还比XML更小更快更简单除此之外还可以更新数据结构,不会破坏原有的结构。原创 2024-09-21 21:39:04 · 501 阅读 · 0 评论 -
MySQL数据库基础
在过去的mysql中主要是使用的utf8mb3,但是mysql显示的就是utf8,中mysql8中区分显示了。类似于不同的编译器,虽然C/C++的代码是一样的,但是预处理、编译、汇编、链接这些过程却不尽相同。而校验规则主要是区分查的规则,有的规则区分大小写,有的规则不区分,会有一部分的性能差异。之前我们虽然学习了数据库的基本操作,但是如果想要了解底层的部分,还是需要理解原理的。如果真是这样简单使用,那确实,但是如果想要能把数据库用好,其实也是不容易的。先不说够不够用,且说增删改查,改和查其实是最麻烦的。原创 2024-09-30 12:02:27 · 1163 阅读 · 0 评论 -
基于muduo库实现protobuf协议的通信详解
而在这个类中,我们可以看到onMessage和send,其实就是针对protobuf处理的方法,也就是收到消息之后被调用的方法。在之前我们单纯使用muduo实现的时候,并没有考虑到tcp粘包之类的问题,只是进行一个返回。可以看到这里消息回调函数,这里面用的是ProtoBufCodec的onMessage函数。在具体看这个onMessage处理函数之前,我们先看这个协议的结构是什么样的。我们可以先大致学习一下这里是怎么实现的,然后仿照使用一下。有了这样的协议之后,就可以解决粘包问题。业务操作逻辑是这样的。原创 2024-09-30 14:28:36 · 531 阅读 · 0 评论