ActiveJ学习心得——综述

2021SC@SDUSC

一、项目简介

ActiveJ是一个用于现代网络、云、高负载和微服务解决方案的Java框架。ActiveJ是全功能的现代Java平台,它是作为Spring/Micronauts/Netty/Jetty的替代品从头开始创建。它被设计成自给自足(无第三方依赖)、简单、精简并提供终极性能。由一系列库组成,从依赖注入和高性能异步I/O(受Node.js启发),到应用服务器和大数据解决方案。
ActiveJ有许多优秀的特点,根据web-frameworks 测出来的平均每秒处理请求数,ActiveJ位列第一,由此可见它的效率很高。ActiveJ还有其他的特点,例如:
最小依赖:轻量级的简约自给自足的Java框架,没有第三方依赖。
丰富的堆栈:具有丰富的技术堆栈,用于构非常快速的异步应用程序。
无开销:极简的无开销设计,提供出色的性能。
最佳替代:Spring、Micronaut、Apache Spark、Quarkus和其他解决方案的全功能替代品。
ActiveJ的优点通过下图可以更加直观地展示出来:
在这里插入图片描述

二、ActiveJ组成部分

从整体上看,它是一套简单的松散耦合的模块,没有第三方的依赖。它可以分为八大部分:
1.Async-IO(异步IO处理)
具有高性能的事件循环、承诺和流协议的高性能异步IO。收到Node.js方法的启发。
2.HTTP(最快的HTTP服务器之一)
一步的HTTP服务器和客户端,支持WebSocket。适用于每秒处理数百万次的请求。
3.Inject(依赖注入库)
又花了应用程序的快速启动和最终的运行时的性能。有强大的依赖关系图内省能力。
4.Serializer(最快的JVM序列化器)
基于注解的序列化,动态生成的序列化器。支持子类、集合的特殊集合。
5.Codegen(即时生成类)
在ObjectWeb ASM库的基础上动态生成字节码。
6.Specializer(加快代码速度)
通过自动重写了类,用静态方法调用代替动态创新,提高类的运行性能。
7.FS(管理文件系统)
在普通文件操作之上的微小的的异步抽象。本地或远程文件存储,以及大数据的集群存储。
8.RPC(微服务二进制协议)
用于高负荷分布式应用的库。一个没有HTTP开销的微服务架构的替代方案。

三、项目分工

对于ActiveJ的学习,我们组根据ActiveJ的组成部分进行了分工划分。
在进行分工划分之前,我们小组对项目源代码的整体结构进行了了分析。ActiveJ项目源码的整体结构如下:
在这里插入图片描述

根据官网的介绍和源码结构,我们认为下图的包是项目的核心包:
在这里插入图片描述
我们将从以上包中进行分工合作来完成
我负责进行Inject和Serializer部分的代码分析。这两个部分在ActiveJ项目所对应的代码部分是core-inject和core-serializer。
ActiveJ的包的代码结构大多如下图所示的三段式结构:
在这里插入图片描述
其中main中的代码是一个包里面的主要核心代码,test是对main中方法的测试用例。之后的博客主要对main包中的代码进行分析。
core-inject包结构如下
在这里插入图片描述

core-serializer包结构如下
在这里插入图片描述

四、个人对于ActiveJ的一点看法

ActiveJ的优点经过上述的介绍有目共睹,可通过轻量级且可本地伸缩的异步体系结构创建各种复杂程度的现代应用程序,从而从硬件中挤出最后的性能。它作为一个新的服务器框架,还是很有潜力的,或许在以后能有更多的人和企业愿意去使用ActiveJ作为项目的的开发框架。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值