自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 IM项目——Docker部署后续问题

在开发 IM 项目时,我遇到了一个由 Linux 网络管理机制引发的 Docker 环境问题,同时也总结了一些关于服务端口检测的经验。

2026-11-03 15:45:54 138

原创 IM系统 —— Docker部署遇到的问题

由于docker容器与宿主机的网络环境隔离,因此有许多“坑”,要多加注意。

2026-09-10 18:34:40 224

原创 IM系统 —— 数据管理中间件设计

希望本文的数据管理中间件设计能够对你的IM项目设计有启发~

2026-09-07 22:51:41 237

原创 IM系统 —— 消息队列解耦与削峰填谷

IM 系统中消息的转发与存储往往效率不匹配,当高并发实时通信的情况下,上层的大量流量很可能将下层存储压垮,为解决这种现象,我们引入了消息队列(该项目选择 RabbitMQ)将上层转发与下层存储解耦隔离,以此有效提高消息管理的可靠性。

2026-09-03 11:03:32 184

原创 IM系统 —— 文件存储管理服务

核心数据结构设计(文件名、大小、内容)。(文件ID、内容)。(文件ID、大小、内容,供客户端后续下载或展示使用)核心 RPC 接口单文件/多文件上传(单文件/多文件下载(

2026-08-10 14:50:59 162

原创 IM系统 -- 构建语音识别服务

该子服务虽然较为简单,但用于了解项目框架的设计非常适用,并且每个子服务的框架都大致相同,理解了一个子服务的启动->调用->完成业务就能够举一反三了。

2026-08-08 21:49:19 204

原创 基于微服务的即时通讯系统 -- brpc与etcd协作

客户端即Channel的使用也并不复杂,需要注意的是我们使用 EchoService_stub 类再次封装了一层,以此进一步简化通信。

2026-07-27 21:18:56 226

原创 基于微服务的即时通讯系统 -- etcd实现服务注册与发现

我们首先通过一个架构图来理解即时通讯系统:即时通讯系统是高并发高可用的,倘若不加注册中心,网关需要轮询每个子服务,子服务需要主动通知网关自己准备好了,不说效率,只是注册发现都会存在海量网络传输,引入注册中心将发现和注册解耦,极大提高效率。

2026-07-23 14:53:42 214

原创 基于微服务的即时通讯系统 —— 配置、日志与测试组件

在分布式系统的微服务复杂架构下,会有多台主机处理各种子服务,这样的并发量是很恐怖的,但问题不仅如此,不同主机的服务是独立的,要让不同主机协同工作需要引入网络通信,这又是很大的一笔开销,总之,微服务这样的高并发和高复杂度的场景下需要引入一些组件帮助我们调试、输出日志、配置等工作。

2026-07-21 14:03:21 159

原创 Linux中动静态库的基本原理

在Linux编程中,我们日常所用的<iostream>、<vector>等被称作库,它们是代码的复用,前人将代码包装好供我们开发使用,那么它的原理是什么呢?今天我们来深度剖析库的制作原理。

2026-07-14 21:22:57 194

原创 Redis的效率优势

提到Redis就能想到“快”,下面简单阐述一下Redis在效率上的优势体现在什么地方。

2026-07-13 21:12:44 238

原创 Redis的初步理解

1、数据存储在内存中响应速度快2、Redis是单线程模型,并且都是较为简单的数据结构操作(Redis的核心是读取数据,消耗内存和网络,不会很消耗CPU,多线程不仅发挥不出榨取CPU的优势,且会有大量锁竞争降低速率)3、网络方面Redis底层使用的是I/O多路复用的Epoll模型,拥有高效的事件通知机制。

2026-07-11 18:28:28 164

原创 仿 TCMalloc 高并发内存池的设计与实现

thread cache是一个哈希桶结构,每个桶是⼀个自由链表,并且按照映射规则对应内存块大小。thread cache框架:自由链表:利用空闲块头部存储下一个节点的指针,兼容32/64位环境使用void*作为头部大小。

2026-07-05 17:15:58 188

原创 仿muduo库One Thread One Loop式高并发服务器的理解和实现 —— 主从Reactor扩展篇

在底层架构篇我们说到了EventLoop与线程的一个单元的实现,然而为了应对高并发场景,单个EventLoop显然不足,于是我们接下来要扩展为主从Reactor模式,即:一个单元用于监听连接,之后用轮询的类似算法将任务分配给线程池中的各个单元解决(保持One Thread One Loop的设计原则),就像是收银员和后厨的关系。下次再见~

2026-06-28 19:19:16 230

原创 仿muduo库One Thread One Loop式高并发服务器的理解和实现 —— 底层架构篇

好些时间没有写文章了,今天想分享一些关于仿muduo库One Thread One Loop式高并发服务器的理解,希望能够帮助到大家。目录(一)核心架构设计原理(1)Reactor模式(2)One Thread One Loop核心思想(二)核心组件实现(1)Socket模块:套接字封装1、服务端/客户端快捷构造2、网络I/O操作3、套接字选项设置(2)Channel 模块:封装文件描述符与事件回调机制1、管理边界2、事件启停接口的设计3、事件分发函数 HandlerEvent() 的注意点。

2026-06-20 19:51:18 328

原创 C++的临时变量问题

作为一个C++初学者,在临时变量这一部分,听到说临时变量是有只读性的,乍一听没什么问题,但细想来,既然这样,为什么函数返回值为引用时调用后却可以修改了?希望接下来的分析可以解除你的疑惑。这就是我关于临时变量的一些看法,在写文章时,其实我自己也不断在驳倒自己,就是因为我将许多名词相互独立了,但实际上权限,临时变量,只读性,值拷贝,这些全都是可以互相串联起来理解的,你会发现不断串联下去可能会和硬件联系在一起,发现到设计这个语法的初衷,我认为这是我们需要注意的。

2025-10-22 23:17:13 1414

原创 数组指针和指针数组的区别

学习指针真的很让人头疼,最近几天无时不刻在想怎么使用它,现在又学了数组指针和指针数组,老实说,明明只是几个字调换了个位置就能有这么大差别,于是我想分享一下关于我对它们俩的看法int main()//指针数组int a = 10;int b = 20;int c = 30;//类比整型数组//数组指针//类比整型指针return 0;

2025-09-08 19:35:47 2342

原创 关于return的一些理解

在学习C语言时,返回值往往会有些许疑问:我是否应该在此处返回值?return有时或许不止能返回值?是否每个值都返回了?等等,关于这些疑问,我有一些看法。提示:以下是本篇文章正文内容,下面案例可供参考关于return语句的一些见解就分享到这了。我认为用好return的方法就是谨慎,保证每个路径都有返回值就是最安全的,并且最好,或许说一定不要返回局部变量的地址,这是极其危险的。

2025-08-30 19:47:12 1447 1

IM系统 - 构建语音识别服务

百度智能云短语音识别REST-API-C++SDK

2026-08-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除