RESTEasy底层使用Netty
为什么底层要使用Netty
原来在使用RESTEasy的时候底层使用的是Tomcat,但是Tomcat的I/O性能不如Netty,一直想把Tomcat换成Netty,最近有时间就更换一下。
怎么使用
首先看一下对应依赖
<dependency><groupId>org.jboss.resteasy</groupId><artifactId>resteasy-jaxrs</artifactId><version>${resteasy.version}</version></dependency><dependency><groupId>io.netty</groupId><artifactId>netty</artifactId><version>${netty.version}</version></dependency><dependency><groupId>org.jboss.resteasy</groupId><artifactId>resteasy-netty</artifactId><version>${resteasy.version}</version><exclusions><exclusion><groupId>io.netty</groupId><artifactId>netty</artifactId></exclusion></exclusions></dependency>
Jboss提供了RESTEasy对netty的支持,直接引入就好。
下面是实现的服务启动的代码
public class RestNettyServer implements RestServer {private String rootResourcePath = "/";private String hostName;private int port = 8341;private int ioWorkerCount = Runtime.getRuntime().availableProcessors() * 4;private int executorThreadCount = 16;private SSLContext sslContext = null;private int maxRequestSize = 10 * 1024 * 1024;private NettyJaxrsServer nettyServer;private ResteasyDeployment deployment = new ResteasyDeployment();public void start() {nettyServer = new NettyJaxrsServer();nettyServer.setDeployment(deployment);nettyServer.setPort(port);nettyServer.setRootResourcePath(rootResourcePath);nettyServer.setIoWorkerCount(ioWorkerCount);nettyServer.setExecutorThreadCount(executorThreadCount);nettyServer.setMaxRequestSize(maxRequestSize);nettyServer.setSSLContext(sslContext);nettyServer.setKeepAlive(true);if (hostName != null && "".equals(hostName)) {nettyServer.setHostname(hostName.trim());}nettyServer.setSecurityDomain(null);nettyServer.start();System.out.println("Netty rest server started on port(s): " + port);}public void addProvider(Collection<Object> providers) {if (providers != null && !providers.isEmpty()) {deployment.getProviders().addAll(providers);}}public void addResources(Collection<Object> instances) {if (instances != null && !instances.isEmpty()) {deployment.getResources().addAll(instances);}}}
代码在这里resteasy-netty不能上传免费的了,必须要积分,大家见谅吧。
RESTEasy底层使用Netty相关推荐
- NIO介绍与Netty通信简单入门
NIO同步阻塞与同步非阻塞 BIO与NIO IO(BIO)和NIO区别:其本质就是阻塞和非阻塞的区别 阻塞概念:应用程序在获取网络数据的时候,如果网络传输数据很慢,就会一直等待,直到传输完毕为止. 非 ...
- Netty学习总结(2)——Netty的高性能架构之道
Netty是一个高性能.异步事件驱动的NIO框架,它提供了对TCP.UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用 ...
- [Netty]pipeline(二)
作者:简书闪电侠 链接:https://www.jianshu.com/p/087b7e9a27a2 前言 netty源码分析之pipeline(一)中,我们已经了解了pipeline在netty中所 ...
- Netty的高低水位
假如我们的底层使用Netty作为网络通信框架,业务流程在将业务数据发送到对端之前,实际先要将数据发送到Netty的缓冲区中,然后再从Netty的缓冲区发送到TCP的缓冲区,最后再到对端. 业务数据不可 ...
- 一篇文章,读懂Netty的高性能架构之道
Netty是一个高性能.异步事件驱动的NIO框架,它提供了对TCP.UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用 ...
- java restful netty_Java RESTful 框架的性能比较
来源:鸟窝 , colobu.com/2015/11/17/Jax-RS-Performance-Comparison/在微服务流行的今天,我们会从纵向和横向分解代码的逻辑,将一些独立的无状态的代码单 ...
- Java RESTful 框架的性能比较
在微服务流行的今天,我们会从纵向和横向分解代码的逻辑,将一些独立的无状态的代码单元实现为微服务,可以将它们发布到一些分布式计算单元或者Docker中,并在性能需要的时候及时地创建更多的服务单元. 微服 ...
- nx set 怎么实现的原子性_基于Redis的分布式锁实现
前言 本篇文章主要介绍基于Redis的分布式锁实现到底是怎么一回事,其中参考了许多大佬写的文章,算是对分布式锁做一个总结 分布式锁概览 在多线程的环境下,为了保证一个代码块在同一时间只能由一个线程访问 ...
- 一文带你彻底了解Java异步
随着RxJava.Reactor等异步框架的流行,异步编程受到了越来越多的关注,尤其是在IO密集型的业务场景中,相比传统的同步开发模式,异步编程的优势越来越明显. 那到底什么是异步编程?异步化真正的好 ...
最新文章
- 新一代算法模型:从搜索、推荐到广告!
- windows ssh secure shell设置初始窗口大小
- python怎么画条形图-如何按python中的值分组绘制条形图?
- 每天一香蕉,长成螺纹钢
- IIS_FastCGI+php5.3+wincache+memcached+ZendLoader
- 怎样将压缩文件上传到服务器上
- 重拾Javascript(四) 运动 图片的淡入淡出
- 如何控制Go编码JSON数据时的行为
- lsqnonlin函数_matlab非线性最小二乘函数
- 广州大学数据库实验报告_广州大学学生Access数据库实验1_表的创建和操作
- ElasticSearch全文搜索引擎之入门以及环境搭建
- 51单片机——红外解码
- 服务器部署文档模板,完整word版)部署文档模板
- 用JavaScript实现用户登录验证、注册信息格式检验(附代码)
- 泛泰A870(高通APQ8064t 600 cpu) Mokee4.4.2(Android4.4) 图赏
- 公交车查询系统软件测试,公交APP评测:谁是最好用的公交线路查询软件?
- 使用userAgent区分浏览器版本
- 蹦的一下,又来一个新属性scrollbar-gutter
- SE-Net整理阅读
- PS-怎么用ps查看精灵图(雪碧图)的位置?
热门文章
- 医院网络营销开展流程
- php中插入表格 标签,列表,表格,添加表单及标签用法-2019.9.1
- 多线程之旅(10)_QueueUserWorkItem和UnsafeQueueUserWorkItem的区别
- pydub 部分 api 介绍
- Listen、Attention、Spell模型
- 倾斜摄影超大场景的三维模型OSGB格式转换3DTILES,为什么数据文件大小会变大?
- 负载测试、压力测试和性能测试的区别
- 后验概率与条件概率区别
- uni-app注册全局组件 - 符合easycom
- JAVA计算机毕业设计云端存储的待办清单的设计Mybatis+系统+数据库+调试部署