- 浏览: 753141 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
萨琳娜啊:
Java读源码之Netty深入剖析网盘地址:https://p ...
使用JAVA操作netty框架 -
小灯笼:
Netty源码剖析视频教程网盘地址:https://pan.b ...
使用JAVA操作netty框架 -
luckywind:
请问怎么下载那个svn上的源码啊?
本地调试Hbase源码详解 -
heng123:
Netty视频教程https://www.douban.com ...
使用JAVA操作netty框架 -
kongdong88:
Netty简单应用与线上服 ...
使用JAVA操作netty框架
之前使用过MINA框架,感觉效率非常好,使用长连接可以支持10万次以上的并发。
今天尝试使用了Netty框架,感觉使用上也非常方便,具体效率问题,在接下来的博客会详细解读:
NioServerSocketChannelFactory创建服务端的ServerSocketChannel,采用多线程执行非阻塞IO,和Mina的设计
模式一样,都采用了Reactor模式。其中bossExecutor、workerExecutor是两个线程池,bossExecutor用来接收客户端连接,workerExecutor用来执行非阻塞的IO操作,主要是read,write。
很不错的文章,最近看了看了夜行侠老师讲的Netty深入浅出源码剖析,里面用到了长连接高并发,在测试的时候,性能真的比之前的tomcat那些容器好几十倍
哪里反了?这个我还测试过??望指教
类图关系反了
哪里反了?这个我还测试过??望指教
今天尝试使用了Netty框架,感觉使用上也非常方便,具体效率问题,在接下来的博客会详细解读:
NioServerSocketChannelFactory创建服务端的ServerSocketChannel,采用多线程执行非阻塞IO,和Mina的设计
模式一样,都采用了Reactor模式。其中bossExecutor、workerExecutor是两个线程池,bossExecutor用来接收客户端连接,workerExecutor用来执行非阻塞的IO操作,主要是read,write。
package netty; import org.jboss.netty.bootstrap.ServerBootstrap; import org.jboss.netty.channel.ChannelFactory; import org.jboss.netty.channel.ChannelPipeline; import org.jboss.netty.channel.ChannelPipelineFactory; import org.jboss.netty.channel.Channels; import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; import org.jboss.netty.handler.codec.string.StringDecoder; import org.jboss.netty.handler.codec.string.StringEncoder; import java.net.InetSocketAddress; import java.util.concurrent.Executors; /** * Created by IntelliJ IDEA. * User: flychao88 * Date: 12-6-6 * Time: 上午10:14 * To change this template use File | Settings | File Templates. */ public class DiscardServer { public static void main(String[] args) throws Exception { ChannelFactory factory = new NioServerSocketChannelFactory( Executors.newCachedThreadPool(), Executors.newCachedThreadPool()); ServerBootstrap bootstrap = new ServerBootstrap (factory); bootstrap.setPipelineFactory(new ChannelPipelineFactory() { public ChannelPipeline getPipeline() { ChannelPipeline pipeline = Channels.pipeline(); pipeline.addLast("encode",new StringEncoder()); pipeline.addLast("decode",new StringDecoder()); pipeline.addLast("handler",new DiscardServerHandler()); return pipeline; } }); bootstrap.setOption("child.tcpNoDelay", true); bootstrap.setOption("child.keepAlive", true); bootstrap.bind(new InetSocketAddress(8080)); } }
package netty; import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffers; import org.jboss.netty.channel.*; /** * Created by IntelliJ IDEA. * User: flychao88 * Date: 12-6-6 * Time: 上午10:10 * To change this template use File | Settings | File Templates. */ public class DiscardServerHandler extends SimpleChannelUpstreamHandler { @Override public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) { System.out.println("服务器接收1:"+e.getMessage()); } @Override public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) { e.getCause().printStackTrace(); Channel ch = e.getChannel(); ch.close(); } }
package netty; import org.jboss.netty.bootstrap.ClientBootstrap; import org.jboss.netty.channel.ChannelFactory; import org.jboss.netty.channel.ChannelPipeline; import org.jboss.netty.channel.ChannelPipelineFactory; import org.jboss.netty.channel.Channels; import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory; import org.jboss.netty.handler.codec.string.StringDecoder; import org.jboss.netty.handler.codec.string.StringEncoder; import java.net.InetSocketAddress; import java.util.concurrent.Executors; /** * Created by IntelliJ IDEA. * User: flychao88 * Date: 12-6-6 * Time: 上午10:21 * To change this template use File | Settings | File Templates. */ public class TimeClient { public static void main(String[] args) throws Exception { ChannelFactory factory = new NioClientSocketChannelFactory( Executors.newCachedThreadPool(), Executors.newCachedThreadPool()); ClientBootstrap bootstrap = new ClientBootstrap(factory); bootstrap.setPipelineFactory(new ChannelPipelineFactory() { public ChannelPipeline getPipeline() { ChannelPipeline pipeline = Channels.pipeline(); pipeline.addLast("encode",new StringEncoder()); pipeline.addLast("decode",new StringDecoder()); pipeline.addLast("handler",new TimeClientHandler()); return pipeline; } }); bootstrap.setOption("tcpNoDelay" , true); bootstrap.setOption("keepAlive", true); bootstrap.connect (new InetSocketAddress("127.0.0.1", 8080)); } }
package netty; /** * Created by IntelliJ IDEA. * User: flychao88 * Date: 12-6-6 * Time: 上午10:22 * To change this template use File | Settings | File Templates. */ import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffers; import org.jboss.netty.channel.*; import java.util.Date; public class TimeClientHandler extends SimpleChannelUpstreamHandler { @Override public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) { e.getChannel().write("abcd"); } @Override public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) { e.getChannel().close(); } @Override public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) { e.getCause().printStackTrace(); e.getChannel().close(); } }
评论
15 楼
萨琳娜啊
2018-07-10
Java读源码之Netty深入剖析
网盘地址:https://pan.baidu.com/s/11kYm2fhJg5CkxIkv0Etvbw 密码: kipg
备用地址(腾讯微云):https://share.weiyun.com/5Bs3HcR 密码:uu95be
JavaCoder如果没有研究过Netty,那么你对Java语言的使用和理解仅仅停留在表面水平,如果你要进阶,想了解Java服务器的深层高阶知识,Netty绝对是一个必须要过的门槛。
本课程带你从一个Socket例子入手,一步步深入探究Netty各个模块的源码,深入剖析Netty的工作流程和源码设计,让你不但“真懂”也要“会用”
网盘地址:https://pan.baidu.com/s/11kYm2fhJg5CkxIkv0Etvbw 密码: kipg
备用地址(腾讯微云):https://share.weiyun.com/5Bs3HcR 密码:uu95be
JavaCoder如果没有研究过Netty,那么你对Java语言的使用和理解仅仅停留在表面水平,如果你要进阶,想了解Java服务器的深层高阶知识,Netty绝对是一个必须要过的门槛。
本课程带你从一个Socket例子入手,一步步深入探究Netty各个模块的源码,深入剖析Netty的工作流程和源码设计,让你不但“真懂”也要“会用”
14 楼
小灯笼
2018-06-06
Netty源码剖析视频教程
网盘地址:https://pan.baidu.com/s/1bvqEWNLisEcJ6OCHYhlcsw 密码: f4e4
备用地址(腾讯微云):http://url.cn/5R2xYI4 密码:OmbopD
网盘地址:https://pan.baidu.com/s/1bvqEWNLisEcJ6OCHYhlcsw 密码: f4e4
备用地址(腾讯微云):http://url.cn/5R2xYI4 密码:OmbopD
13 楼
heng123
2017-10-03
Netty视频教程https://www.douban.com/note/619228582/
12 楼
kongdong88
2017-08-16
Netty简单应用与线上服务器部署
课程学习地址:http://www.xuetuwuyou.com/course/198
课程出自学途无忧网:http://www.xuetuwuyou.com
一、开发环境
4.1.11.Final
jdk1.8
maven 3.2
Spring 4.3.9
二、适合人群
①想深入学习java ClassLoader
②想在线上linux服务器上运行netty或Springboot服务
三、课程目标
①掌控ClassLoader
②学会编写shell脚本
③了解jvm内存分配
④熟悉线上服务器部署
四、课程目录
1、系统架构技术介绍
2、netty服务器编写
3、netty的编码和解码
4、Netty客户端编写
5、与spring整合
6、netty服务器待解决的问题
7、Classloader类加载器
8、自定义类加载器
9、第二种类加载器
10、热部署
11、类加载器加载外部配置文件
12、项目运行时加载依赖jar
13、项目运行时加载依赖jar第二种方案
14、linux服务器编写通用shell脚本启动JVM
15、优化Shell脚本
16、Shell脚本中加上JVM堆栈内存参数以及垃圾回收机制
17、Netty服务器加上配置信息
Netty课程整合推荐:
Netty简单应用与线上服务器部署
课程观看地址:http://www.xuetuwuyou.com/course/198
深入浅出Netty源码剖析
课程观看地址:http://www.xuetuwuyou.com/course/157
Netty实战高性能分布式RPC
课程观看地址:http://www.xuetuwuyou.com/course/171
NIO+Netty5各种RPC架构实战演练
课程观看地址:http://www.xuetuwuyou.com/course/52
物联网核心技术之Netty入门到精通课程
课程观看地址:http://www.xuetuwuyou.com/course/14
Netty三部曲,夜行侠老师带你玩转netty
课程观看地址:http://www.xuetuwuyou.com/course/175
Netty物联网高并发系统第一季
课程观看地址:http://www.xuetuwuyou.com/course/178
课程学习地址:http://www.xuetuwuyou.com/course/198
课程出自学途无忧网:http://www.xuetuwuyou.com
一、开发环境
4.1.11.Final
jdk1.8
maven 3.2
Spring 4.3.9
二、适合人群
①想深入学习java ClassLoader
②想在线上linux服务器上运行netty或Springboot服务
三、课程目标
①掌控ClassLoader
②学会编写shell脚本
③了解jvm内存分配
④熟悉线上服务器部署
四、课程目录
1、系统架构技术介绍
2、netty服务器编写
3、netty的编码和解码
4、Netty客户端编写
5、与spring整合
6、netty服务器待解决的问题
7、Classloader类加载器
8、自定义类加载器
9、第二种类加载器
10、热部署
11、类加载器加载外部配置文件
12、项目运行时加载依赖jar
13、项目运行时加载依赖jar第二种方案
14、linux服务器编写通用shell脚本启动JVM
15、优化Shell脚本
16、Shell脚本中加上JVM堆栈内存参数以及垃圾回收机制
17、Netty服务器加上配置信息
Netty课程整合推荐:
Netty简单应用与线上服务器部署
课程观看地址:http://www.xuetuwuyou.com/course/198
深入浅出Netty源码剖析
课程观看地址:http://www.xuetuwuyou.com/course/157
Netty实战高性能分布式RPC
课程观看地址:http://www.xuetuwuyou.com/course/171
NIO+Netty5各种RPC架构实战演练
课程观看地址:http://www.xuetuwuyou.com/course/52
物联网核心技术之Netty入门到精通课程
课程观看地址:http://www.xuetuwuyou.com/course/14
Netty三部曲,夜行侠老师带你玩转netty
课程观看地址:http://www.xuetuwuyou.com/course/175
Netty物联网高并发系统第一季
课程观看地址:http://www.xuetuwuyou.com/course/178
11 楼
smart152829
2017-07-01
很不错的文章,最近看了看了夜行侠老师讲的Netty深入浅出源码剖析,里面用到了长连接高并发,在测试的时候,性能真的比之前的tomcat那些容器好几十倍
10 楼
xingxing
2016-11-18
有jar包吗?
9 楼
darren_nizna
2016-09-07
http://gitlore.com/darren/netty_in_action/index.html Netty 实战(精髓)
8 楼
ustcdqk
2016-01-21
[flash=200,200][/flash] |
7 楼
Balena
2015-11-28
NIO+Netty5各种RPC架构实战演练,我讲了一堂比较深入的视频,叫NIO+Netty5各种RPC架构实战演练,想要的小伙伴,可以加群511029656,也可以直接进入www.xuetuwuyou.com/course/52直接观看
6 楼
紫皇林
2015-07-10
5 楼
逃荒形象
2015-02-08
为什么服务端和客户端都启动后,服务端那边的消息是server ,客户端的client,服务端和客户端收到的是自己的。
4 楼
Jong88
2013-04-06
flychao88 写道
ljl_ss 写道
貌似NioClientSocketChannelFactory和NioServerSocketChannelFactory位置放反了
哪里反了?这个我还测试过??望指教
类图关系反了
3 楼
flychao88
2012-08-09
ljl_ss 写道
貌似NioClientSocketChannelFactory和NioServerSocketChannelFactory位置放反了
哪里反了?这个我还测试过??望指教
2 楼
flychao88
2012-08-09
哪里反了?这个我还测试过?指教啊
1 楼
ljl_ss
2012-07-20
貌似NioClientSocketChannelFactory和NioServerSocketChannelFactory位置放反了
发表评论
-
Akka框架性能的简单测试分析
2016-02-27 18:17 1543因为最近工作的关系,要把异步任务从应用服务器中拆分到专门的 ... -
SEDA架构模型
2016-01-25 18:45 1323一、传统并发模型的缺点基于线程的并发 特点:每任务一 ... -
Using Redis as an LRU cache文章翻译
2015-09-14 14:55 996周末有空翻译了:http://redis.io/topic ... -
跟我学之Dubbo源码类分析图
2015-05-05 20:26 2528客户端类图: 服务端类图 -
【转】MAVEN 解决包依赖冲突方案
2015-03-31 13:15 1237使用maven最烦人的可能就是类包之间的版本冲突引发的问题了 ... -
Spring ApplicationContextAware使用方法
2015-03-06 16:20 2572项目用到了ApplicationContex ... -
Spring AOP 源码实现过程
2015-02-27 10:40 5125我们看看在Spring AOP中拦截器链是 ... -
基于Spring_Batch大数据并行处理文章分享--建议大家多看看
2014-11-14 10:04 1807请见附件!!! 以下链接是我以前写的一个简单例子, ... -
开发者必备的 Chrome 扩展
2014-11-06 12:20 836Firebug:不用多介绍了吧https://chrome.g ... -
【转】使用Netty实现多路复用的client
2014-10-17 11:16 10750Netty只提供的异步传输数据的方式,但是并 ... -
Redis分布式中间件TwemProxy
2014-10-07 08:57 14245twemproxy,也叫nutcraker。 ... -
-淘宝HSF服务框源码解析
2014-09-21 09:41 3192最近在学习淘宝HSF ... -
关于<mvc:default-servlet-handler/>报错问题的解决
2014-03-14 14:42 3042在spring mvc中引用<mvc:default- ... -
Spring Batch实例详解
2013-12-16 18:20 5045Spring Batch是 ... -
Struts2源码分析
2013-11-06 09:17 944struts2源码分析讲解 一、struts2宏观示意图 ... -
Nginx的upstream目前支持5种分配方式
2013-10-24 13:43 13571、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服 ... -
tomcat源码流程分析(一)
2013-02-25 15:02 1064上图是tomcat源码的一个执行流 ... -
探索tomcat源码(一)
2013-02-25 14:50 2下图是tomcat源码执行流程,我抽空看源码时整理出来,供大家 ... -
处理HTTP响应(响应码、响应头、请求重定向、自动刷新/跳转)
2012-09-28 16:44 11305我们已经对servlet有了基本的认识了。接着我们来简单看看对 ... -
Tomcat并发数优化和设置
2012-09-25 09:42 20591、使用NIO在服务器端会有更好的性能,加强服务器端对并发处理 ...
相关推荐
Java KCP是一个基于Java语言,利用Netty框架实现的可靠UDP网络库,它引入了KCP协议和Forward Error Correction (FEC)技术,为需要高效、低延迟传输的应用提供了强大的解决方案。KCP协议最初由Mars(巫师)设计,其...
该项目是一款基于Netty框架开发的Java内网穿透与反向代理工具设计源码,总计包含117个文件,涵盖70个Java源文件、9个PNG图片文件、8个XML配置文件、4个Markdown文件、4个CRT证书文件、3个HTML文件以及少量其他类型...
本话题将探讨如何使用C++客户端与Java(通过Netty框架)服务器端实现TCP通讯,并涉及数据序列化工具Protocol Buffers(protobuf)在两者之间的交互。 首先,TCP(传输控制协议)是一种面向连接的、可靠的、基于字节...
Netty是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端,是基于Java NIO的异步非阻塞的网络编程框架。Netty在内部实现了自己的线程模型,支持多种协议,包括UDP、TCP、...
综上所述,"java应用netty服务端和客户端"的示例涵盖了Netty框架的基本使用,包括服务器和客户端的启动、连接、数据传输以及模型对象的一致性。理解并掌握这些知识点对于构建基于Java的高性能网络应用至关重要。在...
这个压缩包文件"java Netty 框架例子源码.rar"很可能包含了一系列示例代码,帮助我们了解和学习如何在实际项目中使用 Netty。 Netty 的核心组件包括: 1. **Channel**:是 Netty 中的基本概念,代表一个打开的连接...
基于Netty框架的远程桌面控制程序,压缩文件包含可执行jar包、源代码jar包和依赖的netty4jar包,jdk版本为1.7,双击MyRemoteControllerV2-1.0.jar可直接运行,最好在两台机子上测试,当然单机也可以测试,只不过有些...
本文将深入探讨如何使用Java的Netty框架实现一个基于DTU(Data Transfer Unit)的TCP服务器,该服务器具备多端口通信和多协议解析的能力。 首先,DTU是一种专门用于远程数据传输的设备,它能够通过GPRS、3G/4G等...
在Android开发中,为了实现高效的网络通信,开发者常常会选择使用Netty框架。Netty是一个高性能、异步事件驱动的网络应用程序框架,适用于多种协议的服务器和客户端应用。本篇文章将详细探讨如何在Android环境中利用...
Java Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。在标题中提到的“JAVA Netty 获取串口数据并且下发数据”,这意味着我们将探讨如何利用Netty来处理串行...
Java + Netty 实现的高并发高可用MQTT服务broker,轻松支持...技术体系:(使用 netty 实现通信及协议解析,使用 nutzboot 提供依赖注入及属性配置,使用 redis 实现消息缓存,集群,使用 kafka 实现消息代理(可选))。
在这个项目中,开发者使用Java和Netty框架实现了Socks5代理服务器,并结合了TLS加密,从而创建了一个安全的代理服务。具体实现可能包括以下步骤: 1. **设计协议解析器**:Netty的ChannelHandlerContext和...
本项目“MOBA游戏的服务端,基于Java的Netty框架编写”正是这样一个专注于服务端程序设计的实践案例。Netty是一个高性能、异步事件驱动的网络应用框架,它为开发可维护的高性能协议服务器和客户端提供了丰富的API。 ...
总的来说,这个项目涵盖了网络协议(UDP和TCP)、数据解析(JSON)、协议对接、以及Java和Netty框架的使用。通过深入理解这些知识点,并结合具体的RuoYi-fast项目文件,我们可以构建出一个高效稳定的声呐数据对接...
资源名称:Java_NIO框架Netty教程资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
3. **高性能的缓冲区**:Netty使用ByteBuf作为缓冲区,相较于Java原生的ByteBuffer,提供了更丰富的操作接口和更优秀的性能。 4. **强大的编码解码器**:Netty提供了一系列预定义的编解码器,用于处理各种常见协议...
【Java基于Netty实现的聊天室】是一种使用Java编程语言并借助Netty框架构建的实时通信应用。Netty是一个高性能、异步事件驱动的网络应用框架,为开发高并发、低延迟的网络应用提供了强大的支持。这个简易聊天室项目...
总的来说,Netty框架为Java开发者提供了一个强大且灵活的工具,使得他们能够构建复杂的网络应用,而无需从零开始实现底层通信机制。这个"Netty框架 jar包"是实现这些功能的关键,它封装了所有必要的类和接口,使得...
在Android开发中,有时我们需要构建高性能的网络通信应用,这时Netty框架就能派上大用场。Netty是一个异步事件驱动的网络应用程序框架,它为高性能、高可用性的网络服务器和客户端提供了一种简单易用的方式。本实践...