随笔分类 -  netty

《精通并发与Netty》学习笔记(15 - 详解NIO中Buffer之position,limit,capacity)
摘要:一、前言熟悉NIO的人想必一定不会陌生buffer中position,limit,capacity这三个属性吧,之前在学习的时候遇到一个问题:就是当你先往缓冲区写入一部分数据,然后调用flip()方法,再全部读取完数据,然后再调用flip()方法,此时这三个值的变化是怎样的,研究了一下,决定写下来分 阅读全文
posted @ 2019-05-23 09:59 友帅老师 阅读(349) 评论(0) 推荐(0)
《精通并发与Netty》学习笔记(14 - 解决TCP粘包拆包(二)Netty自定义协议解决粘包拆包)
摘要:一、Netty粘包和拆包解决方案 Netty提供了多个解码器,可以进行分包的操作,分别是: * LineBasedFrameDecoder (换行) LineBasedFrameDecoder是回车换行解码器,如果用户发送的消息以回车换行符作为消息结束的标识,则可以直接使用Netty的LineBas 阅读全文
posted @ 2019-05-22 14:05 友帅老师 阅读(1001) 评论(0) 推荐(0)
《精通并发与Netty》学习笔记(13 - 解决TCP粘包拆包(一)概念及实例演示)
摘要:一、粘包/拆包概念 TCP是一个“流”协议,所谓流,就是没有界限的一长串二进制数据。TCP作为传输层协议并不不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行数据包的划分,所以在业务上认为是一个完整的包,可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送, 阅读全文
posted @ 2019-05-22 11:36 友帅老师 阅读(467) 评论(0) 推荐(0)
《精通并发与Netty》学习笔记(12 - 详解NIO (三) SocketChannel、Pipe)
摘要:一、SocketChannelJava NIO中的SocketChannel是一个连接到TCP网络套接字的通道。可以通过以下2种方式创建SocketChannel: 打开一个SocketChannel并连接到互联网上的某台服务器。一个新连接到达ServerSocketChannel时,会创建一个So 阅读全文
posted @ 2019-05-21 17:10 友帅老师 阅读(456) 评论(0) 推荐(0)
《精通并发与Netty》学习笔记(10 - 详解NIO (一) Channel、Buffer )
摘要:一、Java NIO 概述 Java NIO 由以下几个核心部分组成:ChannelsBuffersSelectors虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Buffer 和 Selector 构成了核心的API。其它组件,如Pipe和FileLock,只不过是 阅读全文
posted @ 2019-05-21 16:40 友帅老师 阅读(507) 评论(0) 推荐(0)
《精通并发与Netty》学习笔记(09 - Java中流的概念)
摘要:Java中流的概念 java程序通过流来完成输入/输出。流是生产或消费信息的抽象。流通过java的输入/输出与物理设备链接。尽管与它们链接的物理设备不尽相同,所有流的行为具有同样的方式。这样,相同的输入/输出类和方法适用于所有类型的外部设备。这意味着一个输入流能够抽象多种不同类型的输入:从磁盘文件, 阅读全文
posted @ 2019-05-21 16:01 友帅老师 阅读(379) 评论(0) 推荐(0)
《精通并发与Netty》学习笔记(08 - netty4+springboot项目案例)
摘要:本节通过案例介绍springboot与netty的集成 第一步:新建Spring Initializr 项目 我这里选择Gradle项目,也可选择Maven项目 (注意:最好选择自己下载gradle,如下图) 然后修改build.gradle文件,加入依赖(需要安装Lombok插件) 接下来编写服务 阅读全文
posted @ 2019-05-21 11:13 友帅老师 阅读(2034) 评论(0) 推荐(0)
《精通并发与Netty》学习笔记(07 - 基于Thrift实现Java与Python的RPC调用)
摘要:上节我们介绍了基于Thrift实现java与java的RPC调用,本节我们基于Thrift实现Java与Python的RPC调用 首先,修改data.thirft文件,将命名空间由java改为py 然后打开终端,输入命令 thrift --gen py src/thrift/data.thrift 阅读全文
posted @ 2019-05-20 16:28 友帅老师 阅读(934) 评论(0) 推荐(0)
《精通并发与Netty》学习笔记(06 - Apache Thrift使用简介)
摘要:一、概述 Apache Thrift 是 Facebook 实现的一种高效的、支持多种编程语言的远程服务调用的框架。Thrift是由Facebook开发的,并在2008年捐给了Apache基金会,成为了一个孵化器项目。 Thrift 主要用于各个服务之间的RPC通信,支持跨语言,常用的语言比如C++ 阅读全文
posted @ 2019-05-20 09:20 友帅老师 阅读(782) 评论(1) 推荐(1)
《精通并发与Netty》学习笔记(05 - Google Protobuf与Netty的结合)
摘要:protobuf是由Google开发的一套对数据结构进行序列化的方法,可用做通信协议,数据存储格式,等等。其特点是不限语言、不限平台、扩展性强 Netty也提供了对Protobuf的天然支持,我们今天就写一个简单的示例,简单地了解一下Netty对Google的protoBuf的支持 场景设置: 我们 阅读全文
posted @ 2019-05-18 16:24 友帅老师 阅读(411) 评论(1) 推荐(0)
《精通并发与Netty》学习笔记(04 - Google Protobuf介绍)
摘要:一 、Google Protobuf 介绍 protobuf是google团队开发的用于高效存储和读取结构化数据的工具,是Google的编解码技术,在业界十分流行,通过代码生成工具可以生成不同语言版本的源代码。protobuf有2.0版本和3.0版本,3.0版本十grpc框架的基础 Protocol 阅读全文
posted @ 2019-05-18 14:41 友帅老师 阅读(552) 评论(0) 推荐(0)
《精通并发与Netty》学习笔记(03 - 客户端程序编写)
摘要:上节我们编写了netty服务端的程序,这节我们来写客户端程序 第一步:改造服务端程序为: (1)MyServer类: package com.ssy.netty.demo01; import io.netty.bootstrap.ServerBootstrap; import io.netty.ch 阅读全文
posted @ 2019-05-18 11:54 友帅老师 阅读(317) 评论(0) 推荐(0)
《精通并发与Netty》学习笔记(02 - 服务端程序编写)
摘要:上节我们介绍了开发netty项目所必需的开发环境及工具的使用,这节我们来写第一个netty项目 开发步骤 第一步:打开https://search.maven.org 找到netty依赖库 第二步:打开上节创建的项目,修改build.gradle文件如下图: 第三步:新建类com.ssy.netty 阅读全文
posted @ 2019-05-18 11:12 友帅老师 阅读(379) 评论(0) 推荐(0)
《精通并发与Netty》学习笔记(01 - netty介绍及环境搭建)
摘要:一、Netty介绍 Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。 也就是说,Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络 阅读全文
posted @ 2019-05-18 09:20 友帅老师 阅读(602) 评论(0) 推荐(0)