Skip to content

RSocket GraalVM

linux_china edited this page Jan 13, 2021 · 5 revisions

RSocket结合GraalVM实现应用的Native Image化,GraalVM native image化后,会让应用启动的更快,内存消耗更小。 Alibaba RSocket Broker在Spring Native基础上全面支持应用的native image化。

Spring Boot应用注意事项

  • 将@SpringBootApplication的proxyBeanMethods属性设置为false
@SpringBootApplication(proxyBeanMethods = false)
public class RsocketGraalApp {
    public static void main(String[] args) {
        SpringApplication.run(RsocketGraalApp.class, args);
    }
}

upx压缩

GraalVM Native-Image生成的可执行文件还是比较大,考虑到应用分发和Docker镜像制作的方便,可以考虑使用upx工具进行一下压缩,命令如下:

Compress executable binary with upx

$ upx -7 -k rsocket-graal-demo-opt rsocket-graal-demo 

upx的压缩效果非常好,压缩后的文件只有原来文件的1/3左右,但是启动速度并没有受到影响,非常便于分发。

更详细的应用请参考: https://github.com/alibaba-rsocket-broker/ali-rsocket-graal-demo