reactor+指南中文版-2.0

reactor+指南中文版-2.0

ID:26010378

大小:88.50 KB

页数:110页

时间:2018-11-24

reactor+指南中文版-2.0_第1页
reactor+指南中文版-2.0_第2页
reactor+指南中文版-2.0_第3页
reactor+指南中文版-2.0_第4页
reactor+指南中文版-2.0_第5页
资源描述:

《reactor+指南中文版-2.0》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Reactor指南中文版V2.0说明简介Reactor是一个基于JVM之上的异步应用基础库。为Java、Groovy和其他JVM语言提供了构建基于事件和数据驱动应用的抽象库。Reactor性能相当高,在最新的硬件平台上,使用无堵塞分发器每秒钟可处理1500万事件。《Reactor指南中文版》原文出自《ReactorGuide(http://projectreactor.io/docs/reference/)》,由多位网友在开源中国众包平台协作翻译完成,其中:《Reactor介绍》、《reactor核心》由@viemacs(http://my.oschina.ne

2、t/u/2500465)翻译,@静怡芸香(http://my.oschina.net/u/2485518)校对;《reactor-数据流》由@leoxu(http://my.oschina.net/xuleo?fromerr=R4dx9orJ)、@K6F(http://my.oschina.net/Khiyuan)翻译及校对;《reactor-总线》、《reactor-网络》、《扩展》由@K6F(http://my.oschina.net/Khiyuan)翻译,@暖冰(http://my.oschina.net/u/2276921)校对。反馈对《Reactor指

3、南中文版》有任何反馈,欢迎在以下网址评论:http://www.oschina.net/news/68445(http://www.oschina.net/news/68445)特别说明《Reactor指南中文版》由开源中国组织翻译,转载请注明出处,未经许可不得为其它商业目的使用。Reactor介绍Reactor介绍Reactor指南作者:StephaneMaldini,JonBrisbin2.0.7.BUILD-SNAPSHOT翻译:OSC众包翻译社Reactor介绍Reactor是一个基础库,可用它构建时效性流式数据应用,或者有低延迟和容错性要求的微/纳/皮

4、级服务。—前言PrefaceTL;DR什么是Reactor?现在你要了解下Reactor,不妨在你喜欢的搜索引擎里输入Reactive,Spring+Reactive,Asynchronous+Java之类的关键词,或者直接输入Reactor是什么货?。简单说,Reactor是一个轻量级JVM基础库,帮助你的服务或应用高效,异步地传递消息。"高效"是指什么?消息从A传递到B时,产生很少的内存*垃圾,甚至不产生。解决消费者处理消息的效率低于生产者时带来的溢出*问题。尽可能提供非阻塞异步流*。从经验可知(主要是#rage和#drunk的推特),异步编程很难,而像JV

5、M这类提供众多可选参数的平台则尤其困难。Reactor旨在帮助大多数用例真正非阻塞地运行。我们提供的API比JDK的java.util.concurrent库低级原语更高效。Reactor提供了下列功能的替代函数(并建议不使用JDK原生语句):•阻塞等待:如Future.get()•不安全的数据访问:如ReentrantLock.lock()•异常冒泡:如try…catch…finally•同步阻塞:如synchronized{}•Wrapper分配(GC压力):如newWrapper(event)当消息传递效率成为系统性能瓶颈的时候(10kmsg/s,1

6、00kmsg/s,1M...),非阻塞机制就显得尤为重要。虽然这个有理论支持(参见Amdahl’sLaw(http://en.wikipedia.org/wiki/Amdahl%27s_law)),但读起来太无聊了。我们举例说明,比如你用了个Executor(https://docs.oracle.com/javase/tutorial/essential/concurrency/executors.html)方法:privateExecutorServicethreadPool=Executors.newFixedThreadPool(8);finalList

7、batches=newArrayList();Callablet=newCallable(){//*1publicTrun(){synchronized(batches){//*2Tresult=callDatabase(msg);//*3batches.add(result);returnresult;}}};Futuref=threadPool.submit(t);//*4Tresult=f.get()//*51.Callable分配--可能导致GC压力。2.同步过程强制每个线程执行停-检查操作。3.消息的消费可能比生产慢。4.

8、使用线程池(Thread

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。