爱写码 爱写码
4年前
网络编程框架t-io的编程基本知识介绍
tio作为目前国内最流行的开源网络编程框架软件,以简单易懂,上手容易而著称,相同的功能比起netty实现起来,要简单的多,代码量也大大减少,如果要使用好tio,还是要先学习tio的一些基本知识,这篇文章主要从8个方面介绍了tio的基础知识。具体请参考:tio收发消息过程tio收发消息及处理过程,可以用一张图清晰地表达出来应用层包:PacketPacke
浪人 浪人
4年前
安卓内存优化
Android内存1.Android内存分配与回收机制从ApplicationFramework、Dalvik/Art、Linux内核三个部分来讲解关于Androd内存相关的知识(1)ApplicationFramework(https://imghelloworld.osscnbeijing.a
浅谈kafka
ApacheKafka是消息引擎系统,也是一个分布式流处理平台(DistributedStreamingPlatform)。优势在于迭代速度快,社区响应度高,使用它可以让你有更高的把控度;
Stella981 Stella981
4年前
Netty如何实现同一个端口接收TCP和HTTP请求
前言在java的网络编程世界里,Netty的地位可谓是举足轻重,说到基于NIO的网络编程,Netty几乎成为企业的首选,本文不会过多介绍Netty的基本使用等知识,本文着重介绍在Netty中如何实现同一个端口,既能接收TCP请求,也能接收Http请求。由于一些特殊的原因,我要实现一款消息中间件,暂时称为“企业消息总线”吧。简单描述一下场景,对如
Stella981 Stella981
4年前
Spring Boot(十四)RabbitMQ延迟队列
一、前言延迟队列的使用场景:1.未按时支付的订单,30分钟过期之后取消订单;2.给活跃度比较低的用户间隔N天之后推送消息,提高活跃度;3.过1分钟给新注册会员的用户,发送注册邮件等。实现延迟队列的方式有两种:1.通过消息过期后进入死信交换器,再由交换器转发到延迟消费队列,实现延迟功能;2.使用rabbitmqdelayed
Wesley13 Wesley13
4年前
IM群聊消息的已读回执功能该怎么实现?
本文引用了架构师之路公众号作者沈剑的文章,内容有改动,感谢原作者。1、前言我们平时在使用即时通讯应用时候,每当发出一条聊天消息,都希望对方尽快看到,并尽快回复,但对方到底有没有真的看到?我却并不知道。一个残酷的现实是,很多时候对方其实是早就已经看到了这条消息,但出出种种原因(大家都懂的),通常都是默默返回——假装没看见。
Stella981 Stella981
4年前
4000余字为你讲透Codis内部工作原理
一、引言Codis是一个分布式Redis解决方案,可以管理数量巨大的Redis节点。个推作为专业的第三方推送服务商,多年来专注于为开发者提供高效稳定的消息推送服务。每天通过个推平台下发的消息数量可达百亿级别。基于个推推送业务对数据量、并发量以及速度的要求非常高,实践发现,单个Redis节点性能容易出现瓶颈,综合考虑各方面因素后,我们选择了Cod
Stella981 Stella981
4年前
Linux soft lockup分析
关键词:watchdog、softlockup、percputhread、lockdep等。近日遇到一个softlockup问题,打印类似“\56.032356\NMIwatchdog:BUG:softlockupCPU0stuckfor23s!\cat:153\“。这是lockup检测机制在起作用,lock
Wesley13 Wesley13
4年前
IM群聊消息的已读未读功能在存储空间方面的实现思路探讨
本文由作者“fzully”投稿,收录时,有较大范围修订和改动,感谢原作者的分享。1、引言IM系统中,特别是在企业应用场景下,消息的已读未读状态是一个强需求。以阿里的钉钉为例,钉钉的产品定位是用于商务交流,其“强制已读回执”功能,让职场人无法再“假装不在线”、“假装没收到”。更有甚者,钉钉的群聊“强制已读回执”功能,甚至能够知道谁读了消息
quic协议中Connection ID的协商机制
quic协议是基于UDP的应用层可靠协议。由于UDP本身是无连接的服务,因此quic数据包的连接ID(connectionid)用于确定该数据包属于哪个quic连接。长包头包含两个连接ID:目标连接ID(DCIDDestinationConnectionID)和目标连接ID(SCIDSourceConnectionID)。