基于Java的轻量级异步编程框架

Posted 并发编程网

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Java的轻量级异步编程框架相关的知识,希望对你有一定的参考价值。

DActor

Introduction

       DActor框架可同时支持同步和异步代码,简化在线异步代码的开发,用同步代码的思维来开发异步代码,兼顾异步代码的高并发、无阻塞和同步代码的易读性,可维护性。 基于协程思想设计 最大程度的降低阻塞,提高单个线程的处理能力,并可有效的降低线程数。

Overview

       目前开发过程中的几个常见模型 – 同步编程 所有步骤都在一个主线程中完成,调用一个方法,等待其响应返回。 – 异步编程 所有步骤都可在不同线程中完成,调用一个方法,不等待响应既返回,典型交易如NodeJs。 目前市面上的异步框架都比较复杂,一般为了实现异步编程的解决方案是CallBack和Promise/Deferred模式模式。
       为了保留异步的高性能,简化异步的开发模式,同时使得程序更容易被程序员理解,基于Actor协程模型,设计了此框架。

Features

  • 1、集成Netty

  • 2、集成HttpClient

  • 3、集成HttpServlet

  • 4、支持多层父子结构

  • 5、支持责任链模式

  • 6、J2EE支持json,csv,pdf,xml,html格式输出

  • 7、J2EE支持数据流输出,动态文件下载、动态图片输出、跳转和可根据配置动态输出 环境要求
    JDK 1.8
    Spring FrameWork 4.3.22.RELEASE +
    Servlet 3.0+(因为需要使用Servlet的异步功能)
    注意事项
    请求的完整逻辑是分散在不同的线程中执行的,所以尽量避免使用ThreadLocal ## Release Note 1.0.0版本

  • 初始化版本 ## Getting Started example是J2EE程序,下载后,可直接运行,其中集成了若干例子
    默认使用.do提交相关交易,但如果是.json将会返回json数据

  • 启动后,在浏览器中入:

  • http://localhost:8080/example/randomTxt2.json
    1.输出的是json格式的字符串
    2.randomTxt2:只有一级父子关系
    3.randomTxt1:有二级父子关系 chaintest1:只使用责任链
    4.chaintest2:同时使用责任链和一级父子关系
    5.exceptionTest:子交易抛出错误,框架对错误的处理
    6.httptest演示的是通过httpclient异步方式访问百度网站
    7.访问URL:http://localhost:8080/example/ httptest.do
    启动后,可在控制台看到内部调用结果

Maven dependency

<dependency>
   <groupId>cn.ymotel</groupId>
   <artifactId>dactor</artifactId>
   <version>1.0.1</version>
</dependency>

Gradle dependency

compile group: 'cn.ymotel', name: 'dactor', version:'1.0.1'

代码简单讲解

执行过程为chain->grandfather->parent->Selft。 依次调用执行责任链中逻辑,grandfather中的逻辑,parent的逻辑和自身逻辑。 chain,grandfather,parent都可为空,不设置 在grandfather和parent中的Steps中至少有一个为placeholderActor交易,以调用子逻辑

(全文完)

点击下方
阅读原文


以上是关于基于Java的轻量级异步编程框架的主要内容,如果未能解决你的问题,请参考以下文章

Netty和Vert.x在Apache顶级项目ServiceComb中的应用

微服务直播Netty和Vert.x在Apache顶级项目ServiceComb中的应用

基于Vert.x和RxJava 2构建通用的爬虫框架

vert.x详细介绍,全异步框架

Spring基本概念

Java并发编程框架Disruptor