代码编织梦想

分布式专题|肝了这篇,再也不怕面试官问BIO、NIO、AIO了,我先肝了,你随意-爱代码爱编程

IO模型指的是在网络数据传输过程中,使用什么通道去发送和接收数据,我们常见的有BIO、NIO、AIO(NIO2.0),我接下来会对这些进行详细的介绍 同步/异步/阻塞/非阻塞 到底是什么意思? 同步/异步 指的是你去调用一个方法,如果这个方法是同步的,那么你就会等待这个方法执行结束后才能执行后续操作; 如果是异步的话,他会立即给你返回,但是这个不是真

过于逼真!差点以为这是微信的源码...-爱代码爱编程

公众号关注 “程序IT圈” 设为 “星标”,和13万程序员一起成长!本文整理于网络文末留言赠书,不要错过 开篇 电商平台最不能缺的就是即时通讯,例如通知类下发,客服聊天等。今天,就来给大家分享一个开源的即时通讯系统。如对文章不感兴趣可直接跳至文章末尾,有获取源码链接的方法。 但文章内容是需要你简单的过一遍的,相信你能get到不少

浅析FastThreadLocal-爱代码爱编程

FastThreadLocal是啥? 它本质上还是一个ThreadLocal。但从它的名称,可以知道它比普通的ThrealLocal要快。 一.构造函数 实例FastThreadLocal时,获取一个在InternalThreadLocalMap中的索引标识。 InternalThreadLocalMap就是一个挂羊头卖狗肉的,内部使用一个数组存数据。

Netty设计模式与源码分析(二)-爱代码爱编程

Netty设计模式与源码分析 注册 Channel 的 register 操作bindchannelFactory.newChannel()NioServerSocketChannelpipelineChannelPipeline,和 Inbound、Outboundinit方法registereventLoop.execute(runnable)

NIO-Reactor-爱代码爱编程

NIO和BIO 多路IO复用 Reactor模式 高性能IO的发展历程:单线程阻塞->多线程并发->事件驱动NIO 单线程阻塞:最大问题是无法并发,效率太低,当前请求没有处理完,后面的请求一直排队等待,通常是一个while循环,accept,有数据后执行,执行完成后执行while下一次循环 多线程并发:一个连接一个线程,缺点是:资源要求太

Netty设计模式与源码分析(一)-爱代码爱编程

Netty设计模式与源码分析 大名鼎鼎的Reactor模式Reactor模式的组成元素Reactor模式的三步曲Netty中的Reactor模式EventLoopGroup、EventLoop总结Netty 中的 Future、PromiseFutureChannelFuturePromise 接口ChannelPromise 大名鼎鼎的Rea

Netty入门-爱代码爱编程

  什么是Netty? Netty是由JBOOS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。 Netty和Tomcat有什么区别? Netty和Tomcat最大的区别就在于通信协议,Tomcat是基于Http协议的,他实质是一个基于http

Spark之基于Netty的网络通信架构-爱代码爱编程

简述 Spark 不知道多少版之后,开始使用Netty作为其底层的网络通信库,忽略Netty其它的优势,最主要的是Spark应用会读写本地文件,网络传输文件,因此如果能够在有关文件的操作中利用“零拷贝”的特性,肯定会大大提高集群性能。而Netty是一套基于JAVA NIO的网络通信框架,因此能够利用mmap技术和transferTo(…)方法完成系统层级

JAVA NIO 不是同步非阻塞I/O吗,为什么说JAVA NIO提供了基于Selector的异步网络I/O?-爱代码爱编程

java nio的io模型是同步非阻塞,这里的同步异步指的是真正io操作(数据内核态用户态的拷贝)是否需要进程参与。 而说java nio提供了异步处理,这个异步应该是指编程模型上的异步。基于reactor模式的事件驱动,事件处理器的注册和处理器的执行是异步的。 JAVA NIO是同步非阻塞io。同步和异步说的是消息的通知机制,阻塞非阻塞说的

Netty: websocket 文件分段上传-爱代码爱编程

阅读原文 简介 前端用 Blob 分割文件,定义好每一段数据的大小,首先要把文件信息,包括文件名、文件大小、校验值、分段大小等信息发给服务器。然后是执行每一段的发送任务,可异步(有待研究,是开多个ws连接还是?🤔)也可同步(服务端最好要有回应事件),异步的话需要注意文件段的顺序,最好的话同步异步都用自己定义个格式帧去传输,方便校验。这里是简单版的,直接

(已拿offer)蚂蚁金服技术面试题:数据库+缓存+并发编程+Spring+JVM+Netty等-爱代码爱编程

过去很长一段时间内,国内互联网一直处于三足鼎立状态,BAT即百度、阿里巴巴、腾讯。而现在,涌现了越来越多的具有强竞争力的新兴互联网公司,蚂蚁金服就是其中之一。下面分享以下今年蚂蚁金服最新的面试真题,题目来源于几位已经成功入职蚂蚁金服的程序员,希望能够给大家带来一些启发! 答案见文末,另外还有福利赠送(学习资料、面试题集合、思维脑图、学习笔记等)

关于Netty中的channel.eventLoop.taskQueue-爱代码爱编程

关于Netty中的channel.eventLoop.taskQueue正确用法 近日,看netty源码时发现一个问题,关于现在百度上大部分关于NioEventLoop(实际是SingleThreadEventExecutor)中的taskQueue的用法不是很正确,大部分博客都说taskQueue适合用来执行一些比较耗时的task,其实这并不正确,这是

论Netty的威力!-爱代码爱编程

长按识别下方二维码,即可"关注"公众号 每天早晨,干货准时奉上! 一,Netty简介 1,什么是Netty?为什么要使用Netty? netty是jboss提供的一个java开源框架,netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可用性的网络服务器和客户端程序。也就是说netty是一个基于nio的编程框架,

Netty 基本介绍与核心组件(EventLoop、ChannelPipeline、ChannelHandler)-爱代码爱编程

TCP 基础 TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议 连接:连接就是双方遵循约定,client、server相互了解,知道对方的信息并且保留地址、buffer、状态等信息的过程叫做连接 字节流:流是一方发,另一方只需要读,收到的是一串01数字;而报文是发送的一个字符串或其它一组数据,组合在一个包中进行发送 滑动窗口:每次发送包的

netty使用http协议开发文件服务器-爱代码爱编程

本文通过netty实现一个简单的文件服务器,能够像nginx一样将目录结构列举出来并且支持下载          1、 对应目录:    点击文件目录可以进行下钻, 而且可以通过 ".." 进行回退到上一个目录。          2、对应文件:    支持下载。 一、首先先编写服务启动类,配置好netty的启动参数及pipeline。相关代码如下:

Handler dispatch failed; nested exception is java.lang.NoSuchMethodError-爱代码爱编程

问题: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError:: io.netty.channel.SingleThreadEventLoop.<init>(Lio/netty/channel/EventLoopGroup;Ljava/util/co

Java架构师第三期-爱代码爱编程

2019-03-06、开学典礼_为什么要从设计模式开始及工厂模式详解. 2019-03-09、单例模式详解. 2019-03-11、代理模式. 2019-03-13、委派模式和策略模式. 2019-03-16、模板模式和适配器模式. 2019-03-17、装饰者模式和观察者模式. 2019-03-20、各设计模式总结与对比. 2019-03-23、Spri

Netty源码分析——@Sharable以及handler被重复添加到pipline的分析-爱代码爱编程

二刷Netty源码的时候又有了新的认识,特此记录。 @Sharable是什么 在我们按照Netty变成范式的编写过程中,会编写一个Handler的配置类,也就是继承ChannelInitializer抽象类,并重写initChannel方法,大致如下: package com.leolee.netty.secondExample; import i

关于netty连接报报Connection reset by peer-爱代码爱编程

java.io.IOException: Connection reset by peer at sun.nio.ch.FileDispatcherImpl.read0(Native Method) ~[?:1.8.0_181] at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) ~[

手写RPC框架之网络传输协议设计及实现-爱代码爱编程

本文主要介绍my-rpc框架中网络传输数据的格式设计,以及如何在发送和接收数据的过程中进行的编解码过程。 网络传输协议设计 数据在网络中是以字节(二进制)的形式传输的,要让通信的双方都能正确的接收对方发送的信息,一定要定义好数据格式,要让对方知道如何解析,从哪一位开始到哪一位代表什么含义,数据的总长度是多少,以避免多读或少读发生解析错误和粘包等问题。