加入收藏 | 设为首页 | 会员中心 | 我要投稿 孝感站长网 (https://www.0712zz.com.cn/)- 运营、云管理、管理运维、云计算、大数据!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

微服务的战争

发布时间:2021-02-13 12:26:13 所属栏目:外闻 来源:互联网
导读:不忠实于函数 这些隐含的输入,或在其他情况下的输出,有一个官方的名称:side effects(副作用)。虽然本文所举的只是一个简单的示例,但是在更复杂的程序中,这些副作用可能会导致真正的困难。 请思考一下如何测试append_to_list:用户不仅需要阅读第一行并

不忠实于函数

这些隐含的输入,或在其他情况下的输出,有一个官方的名称:side effects(副作用)。虽然本文所举的只是一个简单的示例,但是在更复杂的程序中,这些副作用可能会导致真正的困难。

请思考一下如何测试append_to_list:用户不仅需要阅读第一行并使用任意的x来测试函数,还需要阅读整个定义,理解其作用,定义global_list并且以这种方式进行测试。当需要处理带有数千行代码的程序时,此示例中的简单操作可能很快就会变得乏味无趣。

有一个简单的解决方法:忠于函数认定为输入的内容。

 

单来说,函数式编程就是为不可变变量构建函数。与之相反,面向对象的编程则是有一组相对固定的函数,而用户主要是修改或添加新变量。

由于函数式编程的特性,它非常适合完成诸如数据分析和机器学习之类的需求任务。但是这并不意味着用户要告别面向对象的编程,转而完全使用函数式编程。但用户需要了解其基本原理,以便在适当的时候使用它们以发挥优势。

一切都是为了消除副作用

要了解函数式编程,首先需要了解函数。函数是将输入转换为输出的东西,它并不总是这么简单。下面看一个Python中的函数:

 

成本:很少有公司在没有预算限制的情况下应对这一挑战,因此将前期投资降至最低并将增加的运营成本降至最低的战略至关重要。

做好短期和长期计划

即使解决了在降低延迟的同时增加并发性的挑战,也不要仓促进行可能付出高昂代价的短期修复。如果应用程序的完全重新设计不是有计划的,那么可以采用一种策略,使现有的基础设施能够根据需求进行大规模扩展。

选择正确的技术

事实证明,开源内存计算解决方案是在保持或降低延迟的同时快速扩展系统并发性的最具成本效益的方法。例如,Apache Ignite是部署在商用服务器集群上的分布式内存计算解决方案。它将集群的可用CPU和RAM池化,并将数据和计算分发到各个节点。Ignite部署在本地、公共云、私有云或混合环境中,可以将其插入现有应用程序和数据层之间的内存数据网格,而无需对其中任何一个进行重大修改。IGNITE还支持ANSI-99 SQL和ACID事务。

Apache Ignite内存数据网格就位后,数据库中的相关数据将“缓存”在计算集群的RAM中,并且可用于处理,而不会因正常读写基于磁盘的数据存储而导致延迟。Ignite IMDG使用MapReduce方法,并在集群节点上运行应用程序代码,以便在整个集群上执行大规模并行处理,同时最大限度地减少网络上的数据移动。这种内存中的数据缓存、将计算发送到集群节点和MPP的组合显著提高了并发性并降低了延迟,与基于磁盘的数据库构建的应用程序相比,应用程序性能提高了1,000倍。

Ignite的分布式体系结构只需添加新节点就可以增加集群的计算能力和RAM。IGNITE会自动检测额外的节点,并跨集群中的所有节点重新分配数据,从而确保CPU和RAM组合的最佳使用。轻松将节点添加到集群的能力还可实现巨大的可扩展性,以为业务快速增长提供支持。最后,IMDG通过将应用层对IMDG中的数据所做的更改写回源数据存储来确保数据一致性。

Apache Ignite还可以通过支持两个日益重要的战略来验证基础设施的未来。

数字集成集线器(DIH):DIH架构可以支持需要360度数据视图的实时业务流程。它提供了一个通用数据访问层,用于聚合和处理来自数据流以及内部和基于云的源(包括内部和云数据库、数据湖、数据仓库和SaaS应用)的数据。然后,多个面向客户的业务应用程序可以访问聚合数据并以内存中的速度处理数据,而无需通过网络移动数据。DIH自动将消费应用程序对数据所做的更改同步到后端数据存储,同时减少或消除对这些数据源的API调用的需要。

混合事务/分析处理(HTAP):HTAP是对事务和分析的相同内存数据集的高速处理。这样就不需要耗时的提取、转换和加载(ETL)过程来定期将数据从联机事务处理(OLTP)系统复制到单独的联机分析处理(OLAP)系统。HTAP由内存计算平台提供支持,可在不影响整体系统性能的情况下对运营数据运行预定义的分析查询。

考虑开放源码堆栈

要继续创建经济高效、可快速扩展的基础设施,请考虑以下其他经过验证的开源解决方案:

  • Apache Kafka或Apache Flink,用于构建实时数据管道,用于将数据从股票行情或物联网设备等流来源传送到Apache Ignite内存数据网格。
  • Kubernetes用于自动部署和管理已在Docker或其他容器解决方案中集成的应用程序。将应用程序放入容器中并使其管理自动化,这是在分布式、混合、多云世界中成功构建实时、端到端业务流程的关键。
  • Apache Spark,用于处理和分析大量分布式数据。Spark利用Ignite内存计算平台,利用通过Kafka或Flink流传输管道获取的海量数据,更有效地训练机器学习模型。

正确构建、部署和维护

由于希望在更快的时间内部署这些解决方案,同时延迟的后果可能非常高,因此必须对项目可用的内部资源进行现实的评估。如果缺乏专业知识或可用性,请毫不犹豫地咨询第三方专家。可以根据合同轻松获得对所有这些开放源码解决方案的支持,从而有可能获得所需的专业知识,而无需花费时间来扩大内部团队。

了解更多信息

许多在线资源可以帮助你快速掌握这些技术,并确定哪些策略可能适合你的组织。

无论你的目标是在业务活动激增的情况下确保最佳的客户体验,还是为大流行后的经济复苏做准备,由内存计算提供支持的开源基础设施堆栈都是将前所未有的速度与巨大的可扩展性相结合以实现实时业务流程的经济高效的途径。


(编辑:孝感站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读