大家好,我是 「后端技术进阶」 作者,一个热爱技术的少年. 觉得不错的话,欢迎 star!ღ( ´・ᴗ・` )比心 Netty 从入门到实战系列文章地址:https://github.com/Snailclimb/netty-practical-tutorial . RPC 框架源码地址:https://github.com/Snailclimb/guide-rpc-framework 老套路,学习某一门技术或者框架的时候,第一步当然是要了解下面这几样东西. 是什么? 有哪些特点? 有哪些应用场…
阅读这篇文章之前,建议先阅读和这篇文章关联的内容. [1]详细剖析分布式微服务架构下网络通信的底层实现原理(图解) [2][年薪60W的技巧]工作了5年,你真的理解Netty以及为什么要用吗?(深度干货) [3]深度解析Netty中的核心组件(图解+实例) [4]BAT面试必问细节:关于Netty中的ByteBuf详解 [5]通过大量实战案例分解Netty中是如何解决拆包黏包问题的? [6]基于Netty实现自定义消息通信协议(协议设计及解析应用实战) [7]全网最详细最齐全的序列化技术及深度解…
之前在前一篇的<Netty自娱自乐之协议栈设计>,菜鸟我已经自娱自乐了设计协议栈,gitHub地址为https://github.com/vOoT/ncustomer-protocal.先这一篇中,准备接着自娱去实现一个RPC框架,现在公司共的是Dubbo,那么先不看其代码,先自行实现一下吧. dubbo 包括 注册和服务调用,细节我们先不管,然后,我先先实现一个如下的简单模型 哈哈哈,第一个版本就是这么简单,粗暴.说到自定义配置,首先想到的是Spring 自定义标签,利用标签进行配置服务.而…
本文参考 本篇文章主要参考自OSCHINA上的一篇"轻量级分布式 RPC 框架",因为原文对代码的注释和讲解较少,所以我打算对这篇文章的部分关键代码做出一些详细的解释 在本篇文章中不详细列出原文章的代码,根据试验,原文的代码是可以跑通的,只不过原文写自2014年,它给出的pom文件稍微有点旧,我们只需要更新原文的框架版本即可,原文链接如下 https://my.oschina.net/huangyong/blog/361751 另外再推荐一篇文章,作者在OSCHINA文章的基础上增加了…
NIO 近期接触了几个产品都触及NIO,要么应用,要么改造项目,听多了也有些了解,但仍然不能真正理解,工期比较赶,还是要潜心下来看看. NIO是什么呢,应该是NOT-BLOCKING IO的意思,不阻塞的IO,字面上理解就是不用排队的IO.原生的BIO存在多个地方的阻塞,如服务端开启的accept(),read(),write(),NIO解决了这些问题吗,其实并不然.经过学习会发现,NIO在阻塞方面只是搞定了IO操作中的部分阻塞问题,将原本必须完全阻塞的读写方法改变为半阻塞方法,开启轮询模式,让…
BIO NIO AIO演变 Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能.高可靠的网络服务器和客户端程序.Netty简化了网络程序的开发,是很多框架和公司都在使用的技术. Netty并非横空出世,它是在BIO,NIO,AIO演变中的产物,是一种NIO框架. 一.BIO的理解 网络编程的基本模型是Client/Server模型,也就是两个进程之间进行相互通信,其中服务端提供位置信息(绑定的IP地址和监听端口),客户端通过连接操作向服务端监听的 地址发送连接请求,通过三次握手建…
Netty序章之BIO NIO AIO演变 Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能.高可靠的网络服务器和客户端程序.Netty简化了网络程序的开发,是很多框架和公司都在使用的技术.更是面试的加分项.Netty并非横空出世,它是在BIO,NIO,AIO演变中的产物,是一种NIO框架.而BIO,NIO,AIO更是笔试中要考,面试中要问的技术.也是一个很好的加分项,加分就是加工资,你还在等什么?本章带你细细品味三者的不同! 流程图: 技术:BIO,NIO,AIO 说明:gi…
Netty5序章之BIO NIO AIO演变 Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能.高可靠的网络服务器和客户端程序.Netty简化了网络程序的开发,是很多框架和公司都在使用的技术.更是面试的加分项.Netty并非横空出世,它是在BIO,NIO,AIO演变中的产物,是一种NIO框架.而BIO,NIO,AIO更是笔试中要考,面试中要问的技术.也是一个很好的加分项,加分就是加工资,你还在等什么?本章带你细细品味三者的不同! 流程图: 技术:BIO,NIO,AIO 说明:g…
目录: 需求 设计 实现 创建 maven 项目,导入 Netty 4.1.16. 项目目录结构 设计接口 提供者相关实现 消费者相关实现 测试结果 总结 源码地址:github 地址 前言 众所周知,dubbo 底层使用了 Netty 作为网络通讯框架,而 Netty 的高性能我们之前也分析过源码,对他也算还是比较了解了.今天我们就自己用 Netty 实现一个简单的 RPC 框架. 1. 需求 模仿 dubbo,消费者和提供者约定接口和协议,消费者远程调用提供者,提供者返回一个字符串,消费者打…
众所周知,dubbo 底层使用了 Netty 作为网络通讯框架,而 Netty 的高性能我们之前也分析过源码,对他也算还是比较了解了. 今天我们就自己用 Netty 实现一个简单的 RPC 框架. 1 需求 模仿 dubbo,消费者和提供者约定接口和协议,消费者远程调用提供者,提供者返回一个字符串,消费者打印提供者返回的数据.底层网络通信使用 Netty 4.1.16. 2 设计 创建一个接口,定义抽象方法.用于消费者和提供者之间的约定. 创建一个提供者,该类需要监听消费者的请求,并按照约定返回…