沉淀、分享、成长,让自己和他人都能有所收获
-
netty案例,netty4.1源码分析篇三《Netty服务端初始化过程以及反射工厂的作用》
本章节主要分析Netty在启动过程中的配置内容以及最终调用bind方法是如何启动Netty服务端的。
-
netty案例,netty4.1源码分析篇二《ServerBootstrap配置与绑定启动》
结合上一章节介绍NioEventLoopGroup,本章节继续介绍ServerBootstrap相关代码。
-
netty案例,netty4.1源码分析篇一《NioEventLoopGroup源码分析》
本章节我们从一个基础构建的基础NettyServer来分析NioEventLoopGroup源码,其中包括了;EventLoopGroup事件循环组、NioEventLoopGroup异步事件循环组、MultithreadEventLoopGroup多线程事件循环组等。
-
手写RPC框架第三章《RPC中间件》
案例介绍 结合上面两章节,本章将实现rpc的基础功能;提供一给rpc中间件jar给生产端和服务端。 技术点; 注册中心,生产者在启动的时候需要将本地接口发布到注册中心,我们这里采用redis作为注册中心,随机取数模拟权重。 客户端在启动的时候,连接到注册中心,也就是我们的redis。连接成功后将配置的生产者方法发布到注册中心{接口+别名}。 服务端配置生产者的信息后,在加载xml时候由中间件生成动态代理类,当发生发放调用时实际则调用了我们代理类的方法,代理里会通过netty的futuer通信方式进行数据交互。
-
手写RPC框架第二章《netty通信》
案例介绍 在我们实现rpc框架的时候,需要选择socket的通信方式。而我们知道一般情况下socket通信类似与qq聊天,发过去消息,什么时候回复都可以。但是我们rpc框架通信,从感觉上类似http调用,需要在一定时间内返回,否则就会发生超时断开。
-
手写RPC框架第一章《自定义配置xml》
案例介绍 本案例通过三个章节来实现一共简单的rpc框架,用于深入学习rpc框架是如何通信的,当前章节主要介绍如何自定义xml文件并进行解析。想解析自定义的xml首先定义自己的xsd文件,并且实现spring的NamespaceHandlerSupport、BeanDefinitionParser,两个方法进行处理。
-
netty案例,netty4.1中级拓展篇十三《Netty基于SSL实现信息传输过程中双向加密验证》
前言介绍 SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。
-
netty案例,netty4.1中级拓展篇十二《Netty流量整形数据流速率控制分析与实战》
前言介绍 你是否使用过某盘,在前几年我们使用的时候速度飞快,上传下载嗖嗖嗖。但是近年来只要不办会员,速度慢的像蜗牛,当然人家也得赚钱我们能理解。那么这样的限速是怎么实现的呢,我们这个案例使用Netty的流量整形进行限速传输,测试过程中当你把流量整形功能去掉后你就是年费VIP。
-
netty案例,netty4.1中级拓展篇十一《Netty基于ChunkedStream数据流切块传输》
前言介绍 在Netty这种异步NIO框架的结构下,服务端与客户端通信过程中,高效、频繁、大量的写入大块数据时,因网络传输饱和的可能性就会造成数据处理拥堵、GC频繁、用户掉线的可能性。那么由于写操作是非阻塞的,所以即使没有写出所有的数据,写操作也会在完成时返回并通知ChannelFuture。当这种情况发生时,如果仍然不停地写入,就有内存耗尽的风险。所以在写大块数据时,需要对大块数据进行切割发送处理。
-
netty案例,netty4.1中级拓展篇十《Netty接收发送多种协议消息类型的通信处理方案》
前言介绍 在我们实际做应用级开发的过程中,客户端与服务端需要发送多种消息类型,比如一个聊天室场景包括的消息类型;登录验证、组建群聊、发送消息、退出登录等等,但如果我们都是用统一对象加if判断来分别转换,那么对后期的维护成本就会非常大,这样的代码方式也不是一个面向对象开发的思维。面向对象的开发思路,经常会把很多if、switch等逻辑抽象成对应的接口和抽象类,以及加入工厂方式对服务进行动态编排。
-
netty案例,netty4.1中级拓展篇九《Netty集群部署实现跨服务端通信的落地方案》
前言介绍
-
netty案例,netty4.1中级拓展篇八《Netty心跳服务与断线重连》
前言介绍 在我们使用netty中,需要监测服务是否稳定以及在网络异常链接断开时候可以自动重连。需要实现监听;f.addListener(new MyChannelFutureListener())
(转载本站文章请注明作者和出处 微信公众号:bugstack虫洞栈 | 作者:小傅哥)