![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络通信框架
文章平均质量分 81
天涯泪小武
开源贡献者,有代码洁癖。京东coder。
展开
-
springboot搭建流式响应服务,SSE服务端实现
譬如用户请求一篇长文,在数据库里有很多个段落,我们也不希望一次性全部查询完毕再返回给客户端(耗时太久),而是希望查一段就返回一段,逐次批量返回给客户端。如以上代码,返回的对象是SseEmitter,每次调用emitter.send()方法,客户端就会收到一条消息,即一次响应,响应结束的标志是调用emitter.complete方法。当服务端每次调用emitter.send方法时,客户端的onEvent就会触发一次,同理,onOpen,onClose,onFailure都对应服务端的对应方法调用。原创 2023-09-04 10:53:39 · 5200 阅读 · 2 评论 -
既然有HTTP协议,为什么还要有RPC
纯裸TCP是能收发数据,但它是个无边界的数据流,上层需要定义消息格式用于定义消息边界。于是就有了各种协议,HTTP和各类RPC协议就是在TCP之上定义的应用层协议。RPC本质上不算是协议,而是一种调用方式,而像gRPC和thrift这样的具体实现,才是协议,它们是实现了RPC调用的协议。目的是希望程序员能像调用本地方法那样去调用远端的服务方法。同时RPC有很多种实现方式,不一定非得基于TCP协议。从发展历史来说,HTTP主要用于b/s架构,而RPC更多用于c/s架构。转载 2022-09-26 17:20:53 · 567 阅读 · 0 评论 -
bytebuf池_Netty默认的Bytebuf是堆内还是堆外?池化or非池化?
开篇Netty的ByteBuf有从不同角度有如下2个分类,4种组合!堆外内存和堆内内存池化和非池化我们在利用Netty做底层通信框架的时候,会默认给我们的到底是哪一种组合了?分析池化分析Netty的Boostrap启动类按照标准模板,通常会添加这个配置option(ChannelOption.ALLOCATOR, ByteBufAllocator.DEFAULT)val serverBootstrap = ServerBootstrap().group(bossGroup,转载 2022-02-23 10:49:35 · 1052 阅读 · 0 评论 -
netty堆外内存的使用
一、java的堆外内存堆外内存的限额默认与堆内内存(由-XMX 设定)相同,可用 -XX:MaxDirectMemorySize 重新设定1、优缺点优点:(1)可以扩展至更大的内存空间。比如超过1TB甚至比主存还大的空间;(2)理论上能减少GC暂停时间;(3)可以在进程间(系统调用,aio)共享,减少JVM间的对象复制,使得JVM的分割部署更容易实现;(4)它的持久化存储可以支持快速重启,同时还能够在测试环境中重现生产数据(5)堆外内存能减少IO时的内存复制,不需要堆内存Bu转载 2022-02-23 10:42:17 · 1621 阅读 · 1 评论 -
Netty解决粘包和拆包问题的四种方案
在RPC框架中,粘包和拆包问题是必须解决一个问题,因为RPC框架中,各个微服务相互之间都是维系了一个TCP长连接,比如dubbo就是一个全双工的长连接。由于微服务往对方发送信息的时候,所有的请求都是使用的同一个连接,这样就会产生粘包和拆包的问题。本文首先会对粘包和拆包问题进行描述,然后介绍其常用的解决方案,最后会对Netty提供的几种解决方案进行讲解。这里说明一下,由于oschina将“jie ma qi”认定为敏感文字,因而本文统一使用“解码一器”表示该含义1. 粘包和拆包产生粘包...转载 2022-02-22 16:16:43 · 1165 阅读 · 0 评论 -
网络编程入门从未如此简单(二):假如你来设计TCP协议,会怎么做?
本文原题“你管这破玩意儿叫TCP?”,由作者闪客sun发布于“低并发编程”公众号,本次收录时有改动和修订1、引言网络编程能力对于即时通讯技术开发者来说是基本功,而计算机网络又是网络编程的理论根基,因而深刻准确地理解计算机网络知识显然能夯实你的即时通讯应用的实践品质。本文风格类似于52im社区里的《网络编程懒人入门》、《脑残式网络编程入门》两个系列,但通俗又不失内涵,简洁又不简陋,非常适合对计算机网络知识有向往但又有惧怕的网络编程爱好者们阅读,希望能给你带来不一样的网络知识入门视角。本篇将运用通俗转载 2021-02-23 16:36:11 · 592 阅读 · 0 评论 -
网络编程入门从未如此简单(一):假如你来设计网络,会怎么做?
本文原题“如果让你来设计网络”,有修订和改动,收录已征得作者同意,转载请联系作者。本文已同步发布于52im社区:http://www.52im.net/thread-3330-1-1.html(点击“阅读原文”进入)1、引言网络编程能力对于即时通讯技术开发者来说是基本功,而计算机网络又是网络编程的理论根基,因而深刻准确地理解计算机网络知识显然能夯实你的即时通讯应用的实践品质。本文风格类似于52im社区里的《网络编程懒人入门》、《脑残式网络编程入门》两个系列,但通俗又不失内涵,简洁又不简陋,非常适转载 2021-02-01 16:30:09 · 907 阅读 · 2 评论 -
图解Linux网络包接收过程
转载自:https://mp.weixin.qq.com/s/GoYDsfy9m0wRoXi_NCfCmg因为要对百万、千万、甚至是过亿的用户提供各种网络服务,所以在一线互联网企业里面试和晋升后端开发同学的其中一个重点要求就是要能支撑高并发,要理解性能开销,会进行性能优化。而很多时候,如果你对Linux底层的理解不深的话,遇到很多线上性能瓶颈你会觉得狗拿刺猬,无从下手。我们今天用图解的方式,来深度理解一下在Linux下网络包的接收过程。还是按照惯例来借用一段最简单的代码开始思考。为了简单起见,我们.转载 2021-01-22 12:11:12 · 763 阅读 · 0 评论 -
漫画 | 花了七天时间测试,我彻底搞明白了 TCP 的这些内存开销!
原创张彦飞allen开发内功修炼实际中 TCP 连接上肯定是要进行数据的收发的,而且还会有 TIME_WAIT 等其它状态。在这些复杂情况下,一条连接占用多大内存呢?飞哥用做了七天的实验结果告诉你!实验1:ESTABLISH空连接实验2:客户端 => 服务器发送数据测试实验3: 服务器 => 客户端发送数据测试实验4:非 ESTABLISH 状态...转载 2021-01-22 10:55:28 · 554 阅读 · 0 评论 -
IP 基础知识“全家桶”,45 张图一套带走
目录前言正文前菜 —— IP 基本认识网络层与数据链路层有什么关系呢?主菜 —— IP 地址的基础知识IP 地址的分类无分类地址 CIDR公有 IP 地址与私有 IP 地址IP 地址与路由控制IP 分片与重组IPv6 基本认识IPv6 的亮点IPv6 地址的标识方法IPv6 地址的结构IPv6 单播地址类型IPv4 首部与 IPv6 首部点心 —— IP 协议相关技术DNS域名的层级关系域名解析的工作流程ARP那么.转载 2021-01-05 13:46:31 · 796 阅读 · 0 评论 -
一文讲懂什么是vlan、三层交换机、网关、DNS、子网掩码、MAC地址
很多朋友多次问到什么是网关、dns、子网掩码,三层交换机,它们定位的用途;确实,因为网络技术在弱电中确实应用非常广泛,我们平时在vip技术群中也是不断的讨论到网关、vlan、三层交换机或子网掩码等问题,今天我们就一起用通俗方式一次性了解清楚。一、什么是vlan?VLAN中文是“虚拟局域网”。LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器分割的网络——也就是广播域。听上面的概念,肯定有不少朋友是一头雾水的,什么是虚拟局域网?好转载 2020-12-31 10:24:55 · 599 阅读 · 1 评论 -
蚂蚁集团网络通信框架 SOFABolt 功能介绍及协议框架解析 | 开源
大家好,我是本期 SOFAChannel 的分享讲师丞一,来自蚂蚁集团,是 SOFABolt 的开源负责人。今天我们来聊一下蚂蚁集团开源的网络通信框架 SOFABolt 的框架解析以及功能介绍。本期分享将从以下四个方面展开:SOFABolt 简介; 基础通信能力解析; 协议框架解析; 私有协议实现解析;SOFABolt 是什么SOFABolt 产生背景相信大家都知道 SOFAStack,SOFAStack(Scalable Open Financial Architecture St..转载 2020-09-22 10:03:17 · 1113 阅读 · 0 评论 -
tcp socket的发送与接收缓冲区
1) 应用程序可通过调用send(write, sendmsg等)利用tcp socket向网络发送应用数据,而tcp/ip协议栈再通过网络设备接口把已经组织成struct sk_buff的应用数据(tcp数据报)真正发送到网络上,由于应用程序调用send的速度跟网络介质发送数据的速度存在差异,所以,一部分应用数据被组织成tcp数据报之后,会缓存在tcp socket的发送缓存队列中,等待网络空闲时再发送出去。同时,tcp协议要求对端在收到tcp数据报后,要对其序号进行ACK,只有当收到一个tcp 数据报的转载 2020-09-09 19:15:20 · 3643 阅读 · 1 评论