自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

BazingaLyncc

城里怀揣着乡下人的梦想,乡下有城里人的爹娘

  • 博客(16)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 一起学Netty(十六)之 ChannelOption的TCP_NODELAY属性设置

在有些网络通信的场景下,要求低延迟,这样就需要我们设置一些TCP的链接属性:在客户端我们需要这样设置:bootstap.option(ChannelOption.TCP_NODELAY, true);在服务器端是在worker的Channel端设置属性, boot.childOption(ChannelOption.TCP_NODELAY, true);设置这样做好的好

2016-05-27 09:47:38 19544

原创 一起学Netty(十五)之 AttributeMap属性

本来没打算研究这个东西的,一开始觉得没啥用,甚至觉得这个东西有点鸡肋,不过慢慢接触之后,发现了这个AttributeMap的重要性初学这个东西,我们还是先理解AttributeMap的用法吧AttributeMap这个是

2016-05-27 09:46:57 26705 6

原创 一起学Netty(十四)之 Netty生产级的心跳和重连机制

sigh,这这篇博客的时候老脸还是红了一下,应该算是剽窃吧,看到别人写的代码有点无地之容,好在文章的标题是“一起学”,而不是开涛大神的“跟我学”系列的文章最近工作比较忙,但闲暇之余还是看了阿里的冯家春(fengjiachun)的github上的开源代码Jupiter,写的RPC框架让我感叹人外有人,废话不多说,下面的代码全部截取自Jupiter,写了一个比较完整的例子,供大家一起学习分

2016-05-27 09:46:01 65392 41

原创 一起学Netty(十三)之 Netty简单的重连机制

其实重连机制并不是多么多高深的技术,其实就是一个在客户端做一个简单的判断,如果连接断了,那么就重新调用连接服务端的代码当然,我们重连的动作肯定是发生在断连之后发生的,我们可以在上篇的心跳机制的基础上,简单地修改一下客户端的启动代码就可以了:我们在连接断了之后,我们一般会在finally的方法中去释放资源,这边我们应该不去释放资源,我们在finally里面进行重连:

2016-05-14 10:15:48 9080 3

原创 一起学Netty(十二)之 Netty心跳简单Demo

前面简单地了解了一下IdleStateHandler,我们现在写一个简单的心跳demo:1)服务器端每隔5秒检测服务器端的读超时,如果5秒没有接受到客户端的写请求,也就说服务器端5秒没有收到读事件,则视为一次超时2)如果超时二次则说明连接处于不活跃的状态,关闭ServerChannel3)客户端每隔4秒发送一些写请求,这个请求相当于一次心跳包,告之服务器端:客户端仍旧活着

2016-05-14 10:15:08 16786 10

原创 一起学Netty(十一)之 Netty心跳之IdleStateHandler

Netty提供了对心跳机制的天然支持,心跳可以检测远程端是否存活,或者活跃今天我们就一起初识一下Netty4的心跳机制Netty4.0提供了一个类,名为IdleStateHandler,这个类可以对三种类型的心跳检测这个类的构造参数是这样的:前三个的参数解释如下:1)readerIdleTime:为读超时时间(即测试端一定时间内未接受到被测试端消

2016-05-14 10:14:34 24836 7

原创 一起学Netty(十)之 Netty使用Google的ProtoBuf

protobuf是由Google开发的一套对数据结构进行序列化的方法,可用做通信协议,数据存储格式,等等。其特点是不限语言、不限平台、扩展性强Netty也提供了对Protobuf的天然支持,我们今天就写一个简单的示例,简单地了解一下Netty对Google的protoBuf的支持我们的示例场景很简单的:客户端发送一个信息,这个信息用Protobuf来做序列化,然后服务器端接

2016-05-11 19:44:01 26926 4

原创 一起学Netty(九)之LengthFieldBasedFrameDecoder

之前介绍了Netty天然的几种解析器,也稍微介绍了一下ByteToMessageDecoder类,我们对Netty的解码器还是有了一定的了解~今天要介绍的是Netty中一个很重要的解码器,因为相比于其他的普通的解码器,这个解码器用的场景更多,并不是说其他解码器不重要,只是因为我们业务场景所致在当今比较流行的水平拆分的架构之下,RPC协议很是流行,这样可以使各个项目解耦,使得

2016-05-11 19:43:20 37557 25

原创 一起学Netty(八)之 浅析ByteToMessageDecoder

上一节一起学习了几个解码器,用于解决TCP协议网络传输过程中粘包和拆包的问题,用过Netty的人总会说一句话“用Netty一定要了解一下它的底层原理,这样才敢用”,其实很有感悟,Netty in action 这本书中也有一个章节分析了codec,也定义了几个自定义的译码器,但是它自定义的几个译码器全部是继承与ByteToMessageDecoder的,我们上文中的几个解码器例如DelimiterBasedFrameDecoder,FixedLengthFrameDecoder,LineBasedFrame

2016-05-11 19:43:00 12425

原创 一起学Netty(七)之 TCP粘包拆包基本解决方案

可以看到被分了20次读取,我们可以这样理解,客户端发送了2次req字节,每个req中有10个“$$__”,这样就是第11次切割的时候其实发送了粘包,第一个req中末尾部分和第二次的头部粘在了一起,作为第11部分的内容而最后一部分的内容因为没有"$$__"切割,所以没有打印在控制台上~其实这类的Handler还是相对比较简单的,真实的生产环境这些decoder只是作为比较基本的切分类,但是这些decoder还是很好用的~

2016-05-07 17:17:07 21239 5

原创 一起学Netty(六)之 TCP粘包拆包场景

TCP编程底层都有粘包和拆包机制,因为我们在C/S这种传输模型下,以TCP协议传输的时候,在网络中的byte其实就像是河水,TCP就像一个搬运工,将这流水从一端转送到另一端,这时又分两种情况:1)如果客户端的每次制造的水比较多,也就是我们常说的客户端给的包比较大,TCP这个搬运工就会分多次去搬运。2)如果客户端每次制造的水比较少的话,TCP可能会等客户端多次生产之后,把所有的水一起再运输到

2016-05-07 17:16:47 9711 3

原创 一起学Netty(五)之 初识ByteBuf和ByteBuf的常用API

网络传输的载体是byte,这是任何框架谁也逃脱不了的一种规定,JAVA的NIO提供了ByteBuffer,用来完成这项任务,当然ByteBuffer也很好的完成了这个任务,Netty也提供了一个名字很相似的载体叫做ByteBuf,相比于ByteBuf而言,它有着更加更多友善的API,也更加易于维护,并且它可以扩容一般来说,ByteBuf都是维护一个byte数组的,它的内部格式是

2016-05-07 17:16:15 40350 7

原创 一起学Netty(四)之 ChannelHandler,ChannelHandlerContext,ChannelPipeline

目前来说这样做的好处:1)每一个handler只需要关注自己要处理的方法,如果你不关注channelActive方法时,你自定义的channelhandler就不需要重写channelActive方法2)异常处理,如果 exceptionCaught方法每个handler都重写了,只需有一个类捕捉到然后做处理就可以了,不需要每个handler都处理一遍3)灵活性。例如如下图所示:

2016-05-07 17:15:58 26064 5

原创 一起学Netty(三)之 SimpleChannelInboundHandler

其实Netty的知识点还是很零碎的,比如这个SimpleChannelInboundHandler这个类,在《Netty in Action》该书中的原版的Hello world的demo的客户端就是使用的SimpleChannelInboundHandler来作为处理器的,我本来也是使用这个类作为我处理类的,但是做一个新手,这个类还是让我走了一点弯路,我们可以看到SimpleChannelInboundHandler中有一个channelRead0的方法需要我们实现:

2016-05-07 17:15:16 56617 18

原创 一起学Netty(二)之 Hello Netty的原型图解

上一个小节,写的一个入门的Hello Netty的案例,它的模型其实很简单,我们画个简单的图理解一下package com.lyncc.netty.concept;/** * * @author Bazingalyncc * 描述: * 时间 2016年4月29日 */public class HelloWorldConcept { /** *

2016-05-07 17:14:36 9989 1

原创 一起学Netty(一)之 Hello Netty

四月份花了大概一个月的时间翻译了2015年12月出版的《Netty in Action》 说实话,翻译完了,感觉只是对Netty有了一些初步的了解,对Netty的模型在脑海中也是有了初步的雏形,好记性不如烂笔头,这两个月就准备系统的学习一下Netty,学习到什么程度,我自己也不清楚了,反正会记录下学习的点点滴滴的按照惯例,我们学习任何新的知识的时候,总是来一个Hello world的d

2016-05-07 17:13:53 25034 10

protoc-2.6.1-win32.zip

proto

2016-05-10

Netty in action

2016-04-11

spring+mybatis+sharding-jdbc 整合

下载后要jdk1.7 ,sql也在conf下,文档在http://blog.csdn.net/linuu/article/details/50929904

2016-03-19

spring +spring mvc+mybatis +bootstrap 基本整合

下载后请用jdk1.7编译,修改jdbc的用户名和密码,执行里面的user.sql

2016-03-07

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除