本站公告: PUI正式上线,欢迎体验。

Spring Cloud Stream:全新事件驱动型微服务框架

框架积累 Mignon 5138浏览 0评论

这个月,Spring Cloud Stream 1.0.0.版本已经全面上市。该版本包括帮助开发人员和运营人员开发并实施数据微服务的各种新功能和新改版。在开始讨论新功能之前,先让我们通过回顾企业架构数据的当前状态及发展方向来展开讨论。


历经多年开发的软件组件需要始终如一的精细检查。由于数十年的陈旧遗留影响了整体架构,大型企业面临适应现代开发方法和实践的挑战。细微化、递增和连续变化是数字化改造和不断创新的关键。


我们生活在微服务、云原生应用程序和容器的时代,这种趋势正转化着企业数字化的方式。随着企业开展数字转型之旅,灵活地适应变化和及时反应数据驱动型的业务决策才是重中之重。通常情况下,企业转型之旅围绕应用和分布式运行开展,然而,这些都需要工具链、框架和最佳实践的结合,因此它是统一的,在整个公司的所有团队可以轻易重复的。Spring Boot 和 SpringCloud项目恰恰满足这一要求。


进入Spring Cloud Stream,这个搭载Spring系列的事件驱动微服务架构,您将能够实现以数据为中心的应用程序持续交付。Spring Cloud Stream的核心前提是将Spring Integration 与 Spring Boot共同演变成一个轻量级的事件驱动微服务架构。


这款全新的GA版本允许用户:

  • 隔离式创建,单元测试和管理数据微服务

  • 注重免费的,开箱即用的应用程序业务逻辑和信息传送中间件的获得

  • 在强大公共抽象上构建自定义核心基础功能,包括中间件结合,数据分区,客户消费分组和可插拔的绑定程序API


  • 当Spring Cloud Stream的来源、处理器和汇点应用程序组合在一起,它们就形成了事件驱动流处理的流程。Spring Cloud Stream的这一组合之所以成为可能,是因为可插拔的信息传送中间件概念,可选绑定程序包括RabbitMQ, Apache Kafka,Gemfire/Apache Geode (incubating) 和 Redis。有了框架来解决样板和基础设施问题,开发人员就可以专注于核心业务,发展独立的、以数据为中心的应用程序。


    至于更高层次的开发人员,他们的征途将是:

  • 生成Spring Boot项目

  • 在集成开发环境中打开项目

  • 添加所需的Spring Cloud Stream界面:`@EnableBinding(Source.class)`,`@EnableBinding(Processor.class)`,`@EnableRxJavaProcessor`,或`@EnableBinding(Sink.class)到Spring Boot应用程序

  • 编写测试并将业务逻辑逐步演变至符合上述契约

  • 在项目构建带有嵌入式应用容器的自主自运行数据微服务应用uber-jar

  • 在结构平台上运行和规模化独立应用程序,如Cloud Foundry中分别使用cf push,CF scale和CF command。


  • 有了Spring XD的云原生再设计又叫做Spring Cloud Data Flow。Spring Cloud Stream是从Spring XD这个庞然大物上剥离的第一个微服务项目,随着Spring Cloud Stream迁移到GA上去,多个相对于数据流程的开发和运营挑战都被这个云原生再设计解决了。


    首先,Spring Cloud Stream的事件驱动模型和发布-订阅语义从源头上促进其所有用户的无缝数据广播,有利于降低数据流程的复杂性。开发人员可以专注于核心业务逻辑,忽略具体的基础设施细节,包括绑定程序探测、渠道建立以及根据应用业务逻辑预计净负荷转型。同时,这有助于实施极限编程,具体而言,以数据为中心的业务逻辑测试驱动开发目前是可行的,业务逻辑可以逐步开发、评估、不断重构,所有这些都无需在数据处理层扰乱或中断其他数据流程组件。


    第二,鉴于松散耦合和关注点的清晰分离,数据流处理和事件驱动的用例都充分地从微服务架构中获益,而任何在数据流程中的应用程序逻辑均可独立操作、管理、缩放或监控。


    最后,像Cloud Foundry这样的结构化平台的数据驱动应用程序本地运行的核心利益,与许多增值项目一同出现,包括Blue-Green部署、安全、指标、记录、高可用性、容错性、多租户架构等等。


    Spring Cloud Data Flow的GA版本发布是Spring Cloud Stream的下一步,支持使用DSL、Shell、RESTful API或者可视化拖拽GUI的 Flo进行流处理流程的组合编排。同时允许使用Spring Cloud Task界面双向流处理和批处理数据流程。


    考虑到流处理的高吞吐量以及对事件驱动用例的预期,Apache Kafka在Spring Cloud Stream绑定上起着重要作用。为了适应Apache Kafka 0.9规格,Spring Cloud Stream的Kafka绑定应用将利用Apache Kafka的分区、动态缩放、自动平衡和安全等核心改进进行再设计。


    即将发布的版本将推出基于Reactive Streams的全面反应支持,Reactor core 和 RxJava API同时支持该版本,确保开箱可用。


    Spring Cloud Data Flow是Spring XD的云原生再设计项目,目的在于简化大数据应用的开发。Spring XD的集成和批量模块将重构成为Spring Boot数据微服务,这些微服务现在都是自主部署的应用程序,能够充分利用平台的 “原生” 能力,也可以隔离式地独立开发。


    Spring Cloud Data Flow定义了分布式流处理的最佳实践和批量微服务的设计模式,它有几个特征:

    • 跨越各种分布式运行平台进行应用程序编排,包括Cloud Foundry, Apache YARN, ApacheMesos, 和 Kubernetes

    • 通过“spring 文件”分离执行依赖性

    • 把流处理和批量数据微服务作为专有依赖进行消耗

转载请注明:码农博客 » Spring Cloud Stream:全新事件驱动型微服务框架

游客
发表我的评论 换个身份
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  • 验证码 (必填)点击刷新验证码