微服务架构强化的实时通信

本文涉及的产品
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 本文讲的是微服务架构强化的实时通信【编者的话】本文探讨了微服务架构模式是如何强化实时通信的,比如数据同步、动态RPC、发布/订阅消息传递、许可信息等以及相关的框架。
本文讲的是微服务架构强化的实时通信【编者的话】本文探讨了微服务架构模式是如何强化实时通信的,比如数据同步、动态RPC、发布/订阅消息传递、许可信息等以及相关的框架。

一个强大的后端支撑可以产生更加动态、可扩展和易于管理的部署策略,它可以用于实时通信和协作。

前不久,这篇文章已经开始了一个关于微服务的盛大宣言:化整为零!分而治之!“......企业IT架构师知道该怎么做。尽管如今几乎没有必要了。事实上,大多数企业架构以低耦合、高内聚节点集群的模式来构建后端都是可能的。

但是这种灵活性是有代价的:企业级微服务架构很快变得高度复杂。负载均衡集群,到端点的路由请求,分布式消息编排,分片存储层以及设备并发读写访问等等都还只是其中的一部分挑战。

随着从请求-响应工作流到实时数据流的不断增长 -- 无论是金融价格分发,社交消息,协作应用还是物联网(IoT)数据聚合--我们都必须重新考虑我们的服务交互方式和资源共享。如果你负责实施和支持实时通信和协作,加强后端的支撑将有助于你创建更动态,可扩展和易于管理的部署策略。
Microservices-1.png

传统微服务架构

解决方案需求概述

我们的核心挑战是降低复杂性并增强可扩展性。有一个解决方案可以同时解决这两个问题:一个强劲的骨干网,用于统一资源访问和权限并改善路由和内部服务通信。这还需要一系列关键的改变:
  1. 数据同步替代分离的数据存储和消息传递——传统上,消息传递和数据存储是分离的。更新写入存储层;节点通过发布-订阅机制接收更新通知,然后使用自己的数据库连接查询新状态。这种方式伴随而来的是每个节点的额外连接和每次更新的多个步骤开销,进而导致更高的复杂性和性能的下降。

    这种做法正逐渐被一种“数据同步”概念替代,诸如deepstream.ioRethinkDB的技术实现。数据同步将数据层建模为分布式状态。数据对象在微服务和客户端之间共享,并且可以被操纵和观察。对象的每个更改都会立即分发到所有连接的节点。
  2. 动态RPC替代静态路由表——在传统的REST架构中,远程过程调用(RPC)的可用端点是在路由器/负载均衡层静态配置的--许多企业级RPC框架,包括Apache Thrift 都是这种套路。这意味着更改或增加都必须同步多个配置并且通常需要重新启动/滚动更新。

    高级消息队列协议(AMQP)代表如RabbitMQZeroMQ,通过引入模式路由和动态交换创建带来巨大的改善。然而这些AMQP代理依然是让用户执行高级模式任务,如重新路由或基于度量的负载平衡。

    新的RPC框架,如ZeroC's ICEdeepstream.io解决了这一问题。在这样的框架中,微服务在运行时可以动态分布式注册注册PRCs。传入的请求被路由到正确的端点并将响应返回给请求者。 智能负载平衡、重路由拒绝请求和其他额外功能使得这成为一个强大和少维护的方法。
  3. 服务间通信的发布/订阅消息传递——低耦合多对多通信的发布/订阅是一种可扩展和轻量级的内部消息传递模式。就像 Apache Kafka 的一个单独消息代理或像JBOSS Fuse企业事件总线一样。或者也可以融入统一平台的骨干网。
  4. 进入系统前的消息权限——在许多部署中,单独的微服务必须与Active Directory服务器或权限认证建立连接以确定给定的客户端是否可以执行特定操作。将消息权限移动到网关层,并确保消息不仅有效而且有权限,提高了安全性并且同时通过集中责任也降低了复杂性。这还有助于过滤掉恶意消息,在它们进入内部网络/虚拟私有云之前。
    Microservices-2.png

    一个部署场景

向解决方案迈进

有不少的系统可以满足这些要求的方面,但真正的效果取决于他们结合的好不好。 RPC可用于预订系统的事务,并返回数据同步记录名称/流句柄以跟踪其状态。事件可用于在股票交易应用程序中快速广播指示价格更新,但最后通过数据同步提供最终价格。将所有这些功能从微服务和客户端连接到一个坚实、安全、可横向扩展的骨干网,能够显着降低复杂性,同时提高可扩展性和容错能力。

原文链接:Microservice Architecture Fortified for Real-Time Communications (翻译:朱高校)

===========================================
译者介绍

朱高校,H3C公司,目前从事OpenStack 、Docker相关研究工作。

原文发布时间为:2016-10-31

本文作者:朱高校

本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。

原文标题:微服务架构强化的实时通信

相关文章
|
负载均衡 网络协议 微服务
服务注册:构建可伸缩性微服务架构的关键一环
在现代分布式应用程序中,微服务架构已经成为一种主流的开发方式。服务注册是构建可伸缩性微服务架构的关键组成部分之一。在本博客中,我们将深入探讨服务注册的概念、作用以及如何在微服务环境中有效地使用它。
|
2月前
|
设计模式 关系型数据库 持续交付
构建高效可靠的微服务架构:策略与实践
【7月更文挑战第60天】在现代软件开发领域,微服务架构已经成为一种流行的设计模式,它允许开发者将应用程序拆分成一组小型、松散耦合的服务。本文将深入探讨如何构建一个高效且可靠的微服务系统,涵盖关键设计原则、技术选型以及实践中的注意事项。我们将通过分析具体案例来揭示微服务的优势与挑战,并提供实用的解决方案和最佳实践。
|
2月前
|
存储 监控 安全
构建现代后端系统:架构与实践
【8月更文挑战第12天】本文旨在探讨构建现代后端系统时需考虑的架构和实践问题。我们将通过分析现代后端系统的核心组件、设计原则、以及如何应对可扩展性、安全性、性能等挑战,提供一个全面的视角。文章不包含代码示例,而是侧重于理论与策略层面的讨论,以期为后端开发人员提供有价值的参考和指导。
|
2月前
|
敏捷开发 负载均衡 数据管理
构建高效后端系统:微服务架构的实践与挑战
在数字化浪潮中,企业追求的不仅是技术的更新换代,更是系统架构的革新以适应快速变化的市场需求。微服务架构作为现代软件开发的佼佼者,其灵活性和可扩展性被无数开发者所推崇。本文将深入探讨微服务架构的核心概念、实践方法以及面临的主要挑战,旨在为读者提供一份详实的微服务实施指南,同时引发对传统架构转型的深层思考。
38 0
|
4月前
|
消息中间件 运维 监控
微服务架构中的服务通信与数据一致性挑战
在微服务架构的海洋中,服务之间的通信和数据一致性问题犹如潜藏的暗礁和漩涡,随时可能威胁到整个应用的健康运行。本文将深入探讨微服务间通信机制的选择、数据一致性维护的策略,以及面对网络延迟和分区容忍性时如何保持系统的灵活性和健壮性。通过分析常见的模式和最佳实践,旨在为开发者提供一套应对这些挑战的航海图。
|
10月前
|
监控 Cloud Native 容灾
下一代软件架构该如何搭建微服务核心能力
随着数字化时代的来临,各种架构设计思想确实如雨后春笋般涌现,给软件开发领域带来了百家齐放的局面,但是软件开发领域也正面临着前所未有的挑战,比如微服务架构、云原生架构、Serverless架构、事件驱动架构、中台架构、容灾架构等,都在不同场景下展现出了独特的优势。尤其是从事云原生领域的开发者来说更有发言权,因为在裁员潮来临的时候,科技公司先要“下手”的就是云原生、容器化等领域。但是话又说回来,传统的单体应用架构已经无法满足现代软件需求的快速变化和高可靠性要求,在这种情况下,微服务架构作为一种分布式系统设计方法,逐渐受到技术圈的关注和应用。那么本文就来简单聊聊下一代软件架构如何搭建微服务的核心能力
73 2
下一代软件架构该如何搭建微服务核心能力
|
11月前
|
自然语言处理 Cloud Native 安全
下一代软件架构,如何构建微服务核心能力
下一代软件架构,如何构建微服务核心能力
441 11
|
监控 负载均衡 安全
服务网格:优化微服务通信与保障系统安全性的架构利器
服务网格:优化微服务通信与保障系统安全性的架构利器
206 0
|
Kubernetes 安全 Java
支撑 “千万设备日活” 的创米数联 7 年微服务架构演进之路
支撑 “千万设备日活” 的创米数联 7 年微服务架构演进之路
|
运维 负载均衡 监控
微服务系列 2:微服务化框架的模型和治理能力设计
微服务系列 2:微服务化框架的模型和治理能力设计