阿里开源基于JAVA的模块化开发框架JarsLink
极客时间编辑部
讲述:丁婵大小:1.31M时长:02:51
近日,阿里开源了 JarsLink,这是一个基于 JAVA 的模块化开发框架,它提供了在运行时动态加载模块(JAR 包)、卸载模块和模块间调用的 API。
据了解,JarsLink 能够帮助开发人员进行模块化开发,也能让开发人员的系统在运行时动态添加新功能,并减少编译、打包和部署带来的发布耗时,同时它也是阿里巴巴的开源项目之一,目前在蚂蚁金服微贷事业群各团队广泛使用。
据介绍,JarsLink 的应用场景包括:
1. 数据管理中心
通过模块化开发,可以实现一个数据源使用一个模块进行对接,这样一来,上线新数据源只需要新增模块,修改 BUG 也只需要修改某个模块,并且能够快速上线。
2. 后台管理系统
很多业务线都会在后台系统中进行开发,拉多分支会造成代码冲突。所以如果每个业务线一个模块,每个模块使用一个单独的分支进行开发,就能进行隔离开发,提高开发速度,开发完后在运行时加载到系统中。
3. 微服务集成测试
目前的一个微服务是一个 FAT JAR,如果有几十个微服务,则需要启动很多进程,DEBUG 端口就会变多。而使用 JarsLink 框架合并 FAT JAR,再路由请求到其他 JAR,就可以只启动一个进程进行 DEBUG 测试。
4. 指标计算系统
可以把消息转发到不同的模块中进行处理,并输出指标。
另外,阿里还介绍了 JarsLink 的特性,包括隔离性、动态性和易用性三个方面。首先是隔离性,隔离性方面又包括 3 个主要方向:
类隔离:框架为每个模块的 Class 都使用了单独的 ClassLoader 来加载,每个模块都可以依赖同一种框架的不同版本。
实例隔离:框架为每个模块创建了一个独立的 Spring 上下文,来加载模块中的 BEAN,实例化失败不会影响其他模块。
资源隔离:后续会支持模块之间的资源隔离,每个模块使用独立的 CPU 和内存资源。
其次是动态性,主要包括以下两点:
动态发布:模块能在运行时动态加载到系统中,实现不需要重启和发布系统新增功能。
动态卸载:模块能在运行时被动态卸载干净,实现快速下线功能。
最后是易用性,提供了通用灵活的 API 让系统和模块进行交互。
近期,JarsLink 还会支持多版本加载,并陆续支持模块间调用、资源隔离等更多特性。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论