美文网首页人生几何?
无服务器与传统堆栈

无服务器与传统堆栈

作者: ADADACHAN | 来源:发表于2021-09-06 10:14 被阅读0次

为什么选择 Spring 和 Serverless?

Spring 产品组合提供了强大的功能集合,可在无服务器应用程序中使用。无论是使用 Spring Data 访问数据,使用 Spring Integration 的企业集成模式,还是使用 Spring Framework 和 Project Reactor 的最新反应式编程,Spring 都能让开发人员从一开始就在无服务器环境中高效工作。

Spring 还可以帮助您的函数避免供应商锁定。 Spring Cloud Function 提供的适配器允许您在其平台上运行代码时与特定于供应商的 API 解耦。


功能即服务 (FaaS)

事件驱动的执行。

开发人员将所有特定于服务器的任务委托给 FaaS 平台。

开发人员仅编写由平台调用的业务逻辑,从而随着业务需求的变化实现更具弹性的需求演变。

传统应用

必须维护服务器基础设施(安装、配置、打补丁、升级等)。

基础设施的扩展方式对于工作负载来说可能不够动态(浪费资源)。

开发人员编写集成代码来处理消息平台、HTTP 请求/响应等。

详细:Spring Cloud 函数

Spring Cloud Function 提供了让 Spring 开发人员能够利用无服务器或 FaaS 平台的功能。

核心 Java 中的 java.util.function 包是 Spring Cloud Function 使用的编程模型的基础。简而言之,Spring Cloud Function 提供:

编程风格的选择:反应式、命令式或混合式。

函数组合和适配(例如用反应式组合命令式函数)。

支持具有多个输入和输出的反应式函数,让函数处理合并、加入和其他复杂的流操作。

输入和输出的透明类型转换。

特定于目标平台(例如 Project Riff、AWS Lambda 等;见下文)的部署打包函数。

具有灵活签名的函数(POJO 函数)——“如果它看起来像一个函数,那么它就是一个函数”

Spring 的习惯用法和编程模型的所有其他好处。

Spring Cloud Function 提供了适配器,以便您可以在最常见的 FaaS 服务上运行您的函数,包括 Amazon Lambda、Apache OpenWhisk、Microsoft Azure 和 Project Riff。

Spring Cloud Function 是一个具有以下高级目标的项目:

通过功能促进业务逻辑的实现。将业务逻辑的开发生命周期与任何特定的运行时目标分离,以便相同的代码可以作为 Web 端点、流处理器或任务运行。支持跨无服务器提供商的统一编程模型,以及独立运行(本地或在 PaaS 中)的能力。在无服务器提供程序上启用 Spring Boot 功能(自动配置、依赖注入、指标)。它抽象了所有传输细节和基础设施,允许开发人员保留所有熟悉的工具和流程,并专注于业务逻辑

@SpringBootApplication

public class Application {

  public static void main(String[] args) {

    SpringApplication.run(Application.class, args);

  }

  @Bean

  public Function<String, String> uppercase() {

    return value -> value.toUpperCase();

  }

}

或者

@Configuration

public class GenericFunction {

@Bean

public Function, Map> function() {

return m -> m.entrySet().stream().collect(Collectors.toMap(e -> e.getKey(),

            e -> e.getValue().toString().toUpperCase()));

  }

}

相关文章

  • 无服务器与传统堆栈

    为什么选择 Spring 和 Serverless? Spring 产品组合提供了强大的功能集合,可在无服务器应用...

  • 数据结构和算法(三) - 栈

    堆栈数据结构在概念上与物理的堆栈相同。将元素添加到堆栈时,将其放在堆栈顶部。从堆栈中删除元素时,始终会删除最顶层的...

  • 《Node.js》之事件处理机制以及事件环机制(二)

    传统服务器与Node.js的比较 传统的服务器在面临高并发的场景时,会使用多线程方案,服务器会为客户端的请求分配一...

  • mips缓冲区溢出

    MIPS32 堆栈 与传统PC的x86相比,MIPS32的函数调用存在以下差异: MIPS架构中没有EBP(栈底指...

  • 状态保持以及Cookie和session

    状态保持 浏览器请求服务器是无状态无记忆的。 无状态无记忆原因:浏览器与服务器是使用Socket进行通信的,服务器...

  • 堆栈与队列

    https://blog.csdn.net/qq_41943578/article/details/8321775...

  • 日志打印无堆栈信息

    情况:系统抛出异常,日志没有打印堆栈信息 错误日志正常打印 分析:异常信息打印格式没有错误,本地测试没有问题,线上...

  • Spring Boot 主类及目录结构介绍

    Spring Boot 与传统项目最大的区别是,传统项目都是打成 WAR 包部署到服务器上面,需要额外的 Serv...

  • java学习第一课 一切都是对象

    1.堆栈与堆的关系:首先他们都位于RAM中,使用堆栈时,Java系统必须知道所有在堆栈中项目的生命周期,而在堆中不...

  • 随笔-内存使用率

    最近服务器总是内存使用率报警,查服务器的堆栈信息,连接数,gc情况,发现堆外内存使用特别大,计算当前总java.l...

网友评论

    本文标题:无服务器与传统堆栈

    本文链接:https://www.haomeiwen.com/subject/burewltx.html