首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
QZQ54188
掘友等级
华南理工大学
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
4
文章 4
沸点 0
赞
4
返回
|
搜索文章
QZQ54188
@华南理工大学
·
19小时前
关注
重构即时IM项目11:上下行消息通路实现
上一节我们实现了上行消息的可靠性,这次我们分析下行消息可靠性应该怎么实现,实现一个可运行的上下行消息通路。 下行消息序列号 我们实现了上行消息可靠性,保证服务端处理消息的顺...
0
评论
分享
QZQ54188
@华南理工大学
·
4天前
关注
重构即时IM项目10:上行消息可靠性实现
上一节中我们分析了消息可靠性应该怎么做,这次我们进行具体实现。 上行消息可靠回顾 要保证客户端发送消息可靠的话,我们就必须在客户端与服务端交互的protocal.proto...
0
评论
分享
QZQ54188
@华南理工大学
·
8天前
关注
重构即时IM项目9:消息可靠性分析
上一节我们实现了消息协议的定义和交互测试,这一节我们需要实现消息的可靠性。 从端到端的设计思想来看,无论底层依赖何种通信协议(无论是 TCP、UDP 还是 QUIC),业务...
0
评论
分享
QZQ54188
@华南理工大学
·
10天前
关注
重构即时IM系统8:StateServer(上)
在网关层我们通过Epoll实现了对于用户长连接FD的监听,大大减少了协程数的消耗,还通过gateWay将消息转发给StateServer进行处理,这样网关层就只负责维护长连...
0
评论
分享
QZQ54188
@华南理工大学
·
12天前
关注
重构即时IM系统7:网关层(下)
在网关层(上)中我们实现了多Reactor模型监听用户连接的FD,不需要再为每个连接FD开启两个阻塞监听的读写协程,大大节省了服务器的资源。在这一节中我们需要实现网关层的核...
0
评论
分享
QZQ54188
@华南理工大学
·
13天前
关注
重构即时IM系统6:网关层(上)代码
上一节我们讲过要实现epoll监听用户建立的收发消息的FD,这样可以通过一个epoll协程监听多个FD,然而在大规模并发场景下, 单个协程监听所有 FD 依然存在明显的性能...
0
评论
分享
QZQ54188
@华南理工大学
·
14天前
关注
重构即时IM系统5:网关层(上)
我们在之前已经实现了ipconfig和etcd服务发现的分析和代码,客户端经过ipconfig找到合适的网关机器然后在上面建立长连接,之后就通过这个网关机器发送和接收消息,...
0
评论
分享
QZQ54188
@华南理工大学
·
15天前
关注
重构即时IM系统4:负载均衡代码设计
本节给大家带来前两节中负载均衡相关代码实现。 网关层 首先是网关层,这里我抽象出了网关层中对负载均衡有用的字段作为结构体: 第一个字段不要说返回的是网关节点的ip和端口,用...
0
评论
分享
QZQ54188
@华南理工大学
·
16天前
关注
重构即时IM系统3:负载均衡(下)
上一讲中提到了IM系统中需要拆分出一个接入层网关,这个网关维护了客户端的长链接和用户ID与socket的map关系。拆分完长连接网关层之后我们为了让客户端连接到对应的网关并...
0
评论
分享
QZQ54188
@华南理工大学
·
16天前
关注
重构即时IM系统2:负载均衡(上)
数据量或者并发量大到单机承受不住时,就进行多机器部署,此时为了分摊负载压力,我们就需要进行负载均衡和服务发现的处理,下面开始针对即时IM项目进行相关分析,得出重构方案。 一...
0
评论
分享
QZQ54188
@华南理工大学
·
17天前
关注
重构即时IM系统1:现状与目标
笔者之前在网上参考了一个IM即时通讯的项目,但是在看完DDIA之后发现这个项目还是太玩具了,虽然支持IM系统中的互发消息,群聊,好友功能和会话功能,但实际实现上相当暴力,就...
0
评论
分享
QZQ54188
@华南理工大学
·
1月前
关注
go中单例模式以及使用反射破坏单例的方法
单例模式保证一个类或者结构体在整个应用程序的生命周期中只存在一个实例,并且提供一个全局的访问点来获取这个实例,主要用于管理共享资源和控制全局状态。 例如在管理配置中,程序自...
0
评论
分享
QZQ54188
@华南理工大学
·
2月前
关注
C++编译期计算
C++是一个追求极致性能的语言,我们总想让代码跑的更快,这篇博客将聚焦于一个核心思想,尽可能的将运行时开销转移到编译期,通过在程序编译阶段就完成计算、逻辑判断和循环展开,我...
0
评论
分享
QZQ54188
@华南理工大学
·
2月前
关注
对Raft算法中一些边界情况的理解
笔者在复盘raft共识算法时,发现自己对一些边界情况的理解还不够,以下问题是笔者在学习时做的笔记。 在raft投票限制中,候选人除非日志中包含所有已提交的条目,否则无法赢得...
0
评论
分享
QZQ54188
@华南理工大学
·
2月前
关注
go泛型浅析
笔者是在学习C++之后转go的,在学习go语言的过程中发现go是使用接口实现泛型,使用interface{}接收任意类型,通过类型断言或反射处理具体类型。go语言中的接口使...
0
评论
分享
QZQ54188
@华南理工大学
·
2月前
关注
使用C++实现一个简易的线程池
在现代软件开发中,多线程编程已经成为提升程序性能的常见手段。无论是处理大量 I/O 请求的服务器,还是进行 CPU 密集型计算的应用,多线程都能显著提高吞吐量和响应速度。然...
0
评论
分享
QZQ54188
@华南理工大学
·
3月前
关注
C++类型擦除详解
C++是强类型语言,每个变量在声明时就已经有了对应的类型,在不使用类继承的情况下,不同的类型直接是不兼容的。不同的类之间的转化其实就相当于底层的reinterpret_ca...
0
评论
分享
QZQ54188
@华南理工大学
·
3月前
关注
当数据多到放不下内存时,算子的外部执行机制
个人之前做过15445的2023spring版本,这次回炉时重新做了15445的2024fall版本,在进行实验3时,需要实现一个之前2023spring任务中没有给出的算...
2
评论
分享
QZQ54188
@华南理工大学
·
3月前
关注
go中reflect的底层原理
go中reflect的底层原理 在go语言中,reflect包实现了运行时反射,反射是指获取对象在运行时的动态类型和原始对象,不同于静态类型,它是获取对象的底层对象。就相当...
0
评论
分享
QZQ54188
@华南理工大学
·
3月前
关注
详解go中context使用
详解go中context使用 并发是go语言最迷人也是最容易踩坑的部分,Goroutine 的轻量级设计让我们可以轻松地开启成百上千个并发任务,但如何优雅地管理它们的生命周...
0
评论
分享
下一页
个人成就
文章被点赞
16
文章被阅读
4,201
掘力值
812
关注了
1
关注者
4
收藏集
0
关注标签
7
加入于
2025-03-22