在本周举行的 2016 响应式峰会上,响应式微服务、数据中心伸缩操作系统(DC/OS),以及分段响应式数据管道成为热门主题。
响应式微服务架构报告的作者, Lightbend 联合创始人兼 CTO Jonas Boner,在大会上为我们呈献了重要演讲。
他引用了甘特报告的内容,报告上说传统应用架构和平台已经过时了,被定义为分布式自主协作服务系统的微服务架构成为新架构模型的核心。分布式是微服务架构的基石,它要求使用不一样的方式来开发和部署应用程序。有一些指导原则可以作为参考:隔离一切,使用隔断,异步交互。
异步交互在空间和时间上能够做到解耦合,而且能够应对分布式系统中存在的约束。
微服务应该被设计成可独占管理自己的状态,因为状态管理是微服务设计的关键一环。Jonas 认为根本不存在“无状态”的架构,如果有人这么做,那也只是他们的问题。开发者需要考虑一致性边界和上下文界限。Jonas 也讲到了其它架构模式,比如 Event Sourcing 和 CQRS 。
响应式微服务应该具备移动性和可寻址性。虚拟寻址有助于无状态服务的负载均衡,以及有状态服务的状态复制和重新定位。
很多系统采用微服务架构,我们要努力做到最小化的耦合和交互。我们不得不依赖最终一致性,不过不用因此感到惊讶,这个世界原本就是这样运作的。
Jonas 建议开发者像 API Gateway 和 Circuit Breakers 那样使用微服务架构模式,并且在设计中应用回压策略,因为一个快系统不应该拖垮一个慢系统。
在另一个演讲中,负责 Mesosphere 企业 DC/OS 业务的副总裁 Edward Hsu,讲到如何使用容器和微服务技术开发现代应用程序。Mesosphere 的数据中心操作系统( DC/OS )分为社区版和企业版。他介绍了 ESRI 如何使用这个解决方案来分析地理空间数据的案例。
Helena Edelson 也在大会上做了演讲,她演讲的内容是关于在流式大数据、数据分析和机器学习领域所使用的响应式分布式系统。她说响应式在分布式系统里是非常关键的,并讨论了如何构建具有弹性、伸缩性、能够从失效和错误中自我学习的系统。她描述了一种架构,在这个架构里,系统失效的上下文会被路由到一个消息主题上,由一个机器学习系统对它们进行处理。这个架构的实现基于Kafka、Spark Streaming、Spark MLLib、Cassandra 以及FiloDB 数据库。开发者应该仔细研究容错和错误处理策略,把集群里的每个应用程序和节点都监控起来。她还谈到了具有适应性的负载均衡和集群度量指标API。
来自Cake 解决方案的Jaakko Pallari 和Simon Souter 演讲的内容是分段响应式数据管道。分段响应式数据管道基于分段EDA(SEDA)架构,这种架构使用队列来隔断处理过程,处理是分段完成的。微服务被用来作为处理组件,消息中间件在微服务中间提供弹性的数据分发。有了Apache Kafka 的支撑,这个模型让基本的架构扮演了分布式数据管道的角色。
查看英文原文: Reactive Summit 2016 Conference: Reactive Microservices and Staging Data Pipelines
感谢夏雪对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论