首页
学习
活动
专区
工具
TVP
发布

IT架构圈

公众号:IT架构圈
专栏作者
831
文章
739553
阅读量
132
订阅数
软件架构-RPC网络传输原理与实现
1.客户端调度线程:用于发起远程方法调用的线程。2.客户端结果Exchange线程:当远程方法返回response后由该线程填充至指定ResponseFuture,并叫醒等待的调度线程。3.客户端IO线程:由传输框架实现,用于request 消息流发送、response 消息流读取与解码等操作。4.服务端IO线程:由传输框架实现,用于request消息流读取与解码 和response编码与发送。5.业务执行线程:服务端具体执行业务方法的线程
IT架构圈
2021-09-17
9290
软件架构-tomcat之线程源码熟悉通信方式(上)
PS:NIO就是用最少的线程干最多的事情,BIO是找更多的人来干。都是要进行堵塞的,尤其是selector.select()方法上,跟bio的accept()一样,其实都在阻塞。比较单线程和多线程的处理方式,一般情况下无论哪种,nio模式都要比bio更优。
IT架构圈
2021-08-24
2770
搭建百万连接服务,使用netty完成websocke的推送
PS:最好是通过代码,自己试一下,了解下百万连接的思路,按照正常是分布式的架构,单机始终是有瓶颈的,100万用户的连接的话单机8g4核轻轻松松,分布式系统就要设计到分布式消息队列,负载均衡,注册中心的概念,推送使用netty方便系统的开发,沾包和拆包的问题方法去解决,而不是自己写一个socket程序很复杂,netty是通过责任链的方式,通过pipline控制之后的步骤。netty的底层是基于NIO,NIO的底层是基于多路复用的机制,多路复用机制是依托于操作系统的,百万连接这个是拼操作系统参数的,java代码是使用的NIO,如果不是使用的NIO,不好意思你达不到,设置到一些系统操作的配置。
IT架构圈
2021-01-04
2.7K0
JAVA服务器推送功能设计,消息方法总结
结合实际的场景来把netty这个框架运行起来,一起去梳理这个过程,里面用到了nio和Reactor,nio实现了对应的API,但是它没有对多线程进行结合,大牛才设计出来reactor这个模式,来实现高性能的nio的编程,经过梳理才到了netty,reactor一定要搞懂。推送系统先别管是什么推送系统,先理解成一个客户端和服务端的一个程序,也先别管具体的业务场景,功能的属性比较弱,推送系统本身就是比较简单一个推送系统,里面也没有增删查改复杂。默认大家都理解长连接和短连接,网络请求的基本概念。 (一)设计和思路
IT架构圈
2021-01-04
2.1K0
Netty线程模型
1.Reactor 线程模型:一种高性能的多线程设计思路。 2.Netty中自定义的channel概念,增强版的通道概念。 3.ChannelPipline职责链设计模式:事件处理机制。 4.内存管理:增强的ByteBuf缓冲区。
IT架构圈
2020-12-02
3850
NIO非阻塞网络编程三大核心理念
1.capacity 容量:作为一个内存块,Buffer具有一定的固定大小,也称为【容量】。 2.position 位置:写入模式时代表写数据的位置。读取模式时代表读取数据的位置。 3.limit 限制:写入模式,限制等于buffer的容量,读取模式下,limit等于写入的数据量。
IT架构圈
2020-12-02
3600
『互联网架构』软件架构-netty高性能序列化协议protobuf(56)
1.码流的大小,也就是解析后的二进制的大小,很明显原生的jdk序列化,字符长度很长,下面的滚动条都很长。数据越多,传输的带宽越大。在项目开发中内网通信的带宽都是固定的,你占的多了,就影响其他人使用带宽。 2.编解码性能,编解码速度越快,肯定就越好。
IT架构圈
2019-05-31
6020
『互联网架构』软件架构-netty线程模型源码(55)
1.bootstrap Netty服务端及客户端启动类 2.buffer 缓冲相关,对NIO Buffer做了一些优化、封装 3.channel 处理客户端与服务端之间的连接通道 4.container 连接其他容器的代码,例如Spring 5.handler 实现协议编解码等附加功能 6.logging 日志 7.util工具类
IT架构圈
2019-05-30
5460
『互联网架构』软件架构-io与nio线程模型reactor模型(下)(54)
nio就是解决了传统bio的多线程的问题,而且整个nio代码里面没有一句多线程的代码的,nio的服务端就是一个线程。源码:https://github.com/limingios/netFuture/
IT架构圈
2019-05-30
5270
『互联网架构』软件架构-io与nio线程模型reactor模型(上)(53)
PS:NIO不需要的代码里面根本没有多线程,实际上nio只有一个工作线程,一个线程可以为多个客人服务。
IT架构圈
2019-05-30
5020
『互联网架构』软件架构-RPC网络传输原理与实现(45)
回顾下:普通RPC框架需要做的:服务的注册,发现,暴露。服务注册包括:调用模块(负载均衡,容错,透明)。RPC协议包括(序列化,编码,传输),其实透明化的远程调用。RPC报文的格式:请求行,请求头和请求体。RPC协议相比HTTP要更加精简,传输的量要更少。今天主要说说传输这块,其实也是最复杂的,说这个意义,感觉只是使用dubbo,其实对开发者的意义不是很大,大家不需要了解底层的业务传输,但是如果要设计一个消息服务器,这可是一般的开发人员可以搞定的。必须有过一定的经验,参考过别人的一个远程实现。了解了这些对d
IT架构圈
2019-05-14
8960
没有更多了
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档