开发&语言 - Java Netty 16
作者  张松然  发布于 2017年09月06日  阅读 2176
序最近,我发现一些BlockOperationException异常出现在我的Netty4项目中,为什么会出现这个异常?有人说,在Netty的ServerBootstrap启动服务器的时候,使用sync()或await()方法会造成死锁,可我发现异常是出现在ChannelRead过程中,而且Bootstrap用的是bossGroup,而ChannelRead用的是workerGroup,两者使用的...
作者  张松然  发布于 2017年08月18日  阅读 3050
TCP 网关本文将为大家介绍一个基于 Netty + Protobuf 构建的高性能 TCP 网关开源组件。该组件部署业务化运行2年以上,实现TCP 双向通道通信,维持高并发在线长连接,优化传输字节码等。安装从 GitHub(https://github.com/linkedkeeper/tcp-gateway)克隆这个工程,并将它作为一个依赖包添加到 Maven 项目中。使用1. 创建 TCP ...
作者  张松然  发布于 2017年06月17日  阅读 1030
An Easy RPC framework based on Netty, ZooKeeper and Spring.GitHub: https://github.com/linkedkeeper/easy-rpcRPC,即 Remote Procedure Call(远程过程调用),调用远程计算机上的服务,就像调用本地服务一样。RPC 可以很好的解耦系统,如 WebService 就是一种基于 ...
文章 发布于 2017年01月09日  阅读 732
对 APNs 的吐槽APNs 是 Apple Push Notification service 的简称(注意 APNs 的大小写, s不需要大写)。以下是一些关于 APNs 的吐槽,你先看下哪些吐槽比较到位:1. 我把消息交给你了,你告诉什么都保证不了?推送成功与否“基本靠猜“?使用第三方SDK接入推送服务,SDK提供商却告诉我,他们无法获知哪条消息成功发送给了APNs,哪些失败了,而且即使AP...
作者 Frank 发布于 2017年01月01日  阅读 516
apns-http2A Java library for sending notifications via APNS using Apple's new HTTP/2 API. This library uses Netty4.Note: This is required until Java 7 is released.InstallationClone this repository, an...
作者  张松然  发布于 2017年01月01日  阅读 7627
Netty 源码中大量使用了异步编程,从代码实现角度看就是大量使用了线程池和 Future。熟悉 Java 5 的同学一定对 Future 不陌生。简单来说就是其代表了一个异步任务,任务将在未来某个时刻完成,而 Future 这个接口就是用来提供例如获取接口、查看任务状态等功能。Netty 扩展了 Java 5 引入的 Future 机制。从下面的类图我们可以看到相关类的关系:Netty 的 Fu...
文章 发布于 2016年12月22日  阅读 396
Channel在Netty里,Channel是通讯的载体,而ChannelHandler负责Channel中的逻辑处理。那么ChannelPipeline是什么呢?我觉得可以理解为ChannelHandler的容器:一个Channel包含一个ChannelPipeline,所有ChannelHandler都会注册到ChannelPipeline中,并按顺序组织起来。在Netty中,ChannelE...
作者  张松然  发布于 2016年12月07日  阅读 9790
Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。 作为当前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,一些业界著名的开源组件也基于Ne...
文章 发布于 2016年10月07日  阅读 962
What is Netty?Netty是一个用于快速开发可维护的高性能协议服务器和客户端的异步的事件驱动网络应用框架。Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers &...
文章 发布于 2016年10月06日  阅读 650
本章包含ChannelHandler和ChannelPipeline APIs检测资源泄露异常处理在前一章,你学习了Netty的数据容器ByteBuf。在这一章我们会在你已经学过的知识的基础上探讨Netty的数据流和处理模块。你会开始看到这个框架的一些重要元素被组合到一起了。你已经了解到,ChannelHandler在一个ChannelPipeline中被链在一起,将所有的处理逻辑组织起来。我们会...
文章 发布于 2016年10月05日  阅读 512
本章包含线程模型概览Event Loop的概念和实现Task调度实现详解简单来说,线程模型定义了操作系统,编程语言,框架或者应用程序线程管理的关键部分。线程是如何,并且何时被创建,显然对代码的执行有很大的影响。因此,开发者需要理解不同线程模型中存在的权衡利弊。无论他们是直接为自己选择模型,还是通过用一种语言或者框架隐性地来选择模型,这一点都是毋庸置疑的。在这一章我们会详细探讨Netty的线程模型。...
文章 发布于 2016年10月03日  阅读 490
本章包含OIO—阻塞传输NIO—异步传输本地传输—JVM内部的异步通信嵌入式传输—测试你的ChannelHandler经过一个网络的数据通常是同一种类型:字节。这些数据是如何移动的基本上取决于被我们称之为网络传输的概念,这个概念帮我们抽象了底层的数据传输机制。用户不关心细节,他们只关心他们的字节数据被可靠地传送和接收。如果你有Java网络编程的经验,你也许会在某个时刻发现,你需要支持比预料还要多的...
文章 发布于 2016年10月03日  阅读 1036
本文翻译自《Netty in Action》第三章 本章包含Netty的技术和架构方面Channel,EventLoop和ChannelFutureChannelHandler和ChannelPipelineBootstrapping在第一章我们总结了Java高效能网络编程的历史和技术基础,这为概述Netty的核心概念和构造模块提供了一个背景。在第二章我们把讨论范围扩展到应用开发。通过创建一个简...
文章 发布于 2016年10月02日  阅读 1288
无处不在的C/S架构在这个充斥着云的时代,我们使用的软件可以说99%都是C/S架构的你发邮件用的Outlook,Foxmail等你看视频用的优酷,土豆等你写文档用的Office365,googleDoc,Evernote等你浏览网页用的IE,Chrome等(B/S是特殊的C/S)......C/S架构的软件带来的一个明显的好处就是:只要有网络,你可以在任何地方干同一件事。例如:你在家里使用Offi...
文章 发布于 2016年09月25日  阅读 1130
理解零拷贝零拷贝是Netty的重要特性之一,而究竟什么是零拷贝呢? WIKI中对其有如下定义:"Zero-copy" describes computer operations in which the CPU does not perform the task of copying data from one memory area to another.从WIKI的定义中,我们看到“零拷贝”是...
共16条记录 共2页 上一页 首页 1