Java微服务:用Spark替代SpringBoot才是正确的方式

2020-05-21 00:00:00 微服 架构 内存 占用 正确

一个真正的微服务是一个非常轻薄的程序,只有一个函数具有自己的数据库(如果有必要)和非常小的内存占用......在Java中可能吗?

问题

我已经使用Spring Framework多年了,现在和我的团队一起开始质疑它,特别是Spring Boot:它是开发微服务的正确选择吗?不,因为根据我们的经验,它太耗费内存了。

我发现在Spring Boot上运行的基本Java应用程序需要至少1GB的RAM才能运行,而且在开发中间件应用程序时也没问题,但在微服务架构中这非常糟糕!

我们注意到部署在CloudFoundry上的Spring Boot应用程序或带有k8s的OpenShift遭遇内存不足错误并且如果它们未设置为小1GB则会崩溃。

我们正在寻找一种新工具来帮助我们使用这个技术规范开发真正的微服务:

  • 符合Java标准
  • 轻量级
  • 没有无用的库
  • 内存占用少
  • 快速服务请求

正确的框架

下面是pom.xml的一小段摘录

<dependencies>

    <!-- Spark dependencies (the core) -->
    <dependency>
        <groupId>com.sparkjava</groupId>
        <artifactId>spark-core</artifactId>
        <version>2.8.0</version>
    </dependency>

    <!-- Logback version (I hope you want to log!) -->
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>

相关文章