之前已经展示直接将 Actor System 提取成通用组件, 这部分作为通用模块是可以和 Quarkus 结合在一起, 这里就说明下怎么把 pekko-actor 作为组件封装成 quarkus-extension, 以下是必须条件:
JDK17+: 后续版本更迭之后可能 JDK 版本要求更高 Apache Maven 3.9+: 用于调用 mvn 命令拉取官方功能 同时需要注意, Quarkus 其实还有两种具体模式:
JVM: 比较常规的 JVM 启动方式, 调用运行的是经典的 JAR 应用程序(正常环境JRE启动) Native: 将 JAVA 程序打包成可执行的二进制功能, 类似于 Golang|Rust 一样直接平台编译运行, 采用 GraalVM 技术 Native 技术采用 GraalVm, 其实就是封装裁剪成小型虚拟机启动
因为以上模式存在, 所以扩展之中对于两者处理可能需要单独分开(有的第三方可能并不支持原生模式打包, 需要编写时单独额外处理等)
Quarkus 扩展出来有以下部分, 这也是需要涉足到开发谋爱:
runtime: 运行时模块, 作为扩展开发者向应用程序开发者提供的功能, 也就是编写封装自己的功能 deployment: 部署时模块, 用于构建扩展时候的打包功能, JVM 可以发布全局 Bean, Native 可以为 GraalVM 的原生编译做准备 也就是 runtime 就是编写构建暴露自己功能代码, 而 deployment 则是打包编译发布和全局服务挂载