当前位置:主页 > 泰禾资讯 > 媒体聚集 >
微服务架构与分布式架构的区别
来源:未知 2015-03-06

随着互联网的不断发展,微服务架构也被越来越多的程序员掌握,而今天我们就通过案例分析来了解一下,微服务架构与分布式架构的区别。

微服务架构与分布式架构的区别

1.微服务的诞生

微服务是基于分而治之的思想演化出来的。过去传统的一个大型而又全面的系统,随着互联网的发展已经很难满足市场对技术的需求,于是我们从单独架构发展到分布式架构,又从分布式架构发展到SOA架构,服务不断的被拆分和分解,粒度也越来越小,直到微服务架构的诞生。

微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供终价值。

每个服务运行在其独立的进程中,服务和服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTfulAPI)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。

2.微服务架构与SOA架构的区别

微服务是真正的分布式的、去中心化的。把所有的“思考”逻辑包括路由、消息解析等放在服务内部,去掉一个大一统的ESB,服务间轻通信,是比SOA更彻底的拆分。

微服务架构强调的重点是业务系统需要彻底的组件化和服务化,原有的单个业务系统会拆分为多个可以独立开发,设计,运行和运维的小应用,这些小应用之间通过服务完成交互和集成。

3.微服务架构引发的问题

随着整个业务数据被分散在各个子服务之后,也带来了两个明显的问题。

业务管理系统对数据完整性查询,比如分页查询、多条件查询等,数据被割裂后如何来整合?

数据分析挖掘,这些需求可能需要分析全量的数据,并且在分析时不能影响到当前业务

从技术方案来讲,我们一般有两种选择来处理这些问题,一种是在线处理数据,二种是离线处理数据。

在线处理数据的方案:通过微服务提供的接口来获取数据,然后进行数据整合,不过这种方式有着明显的弊端,就是调用者需要编写大量的代码进行数据处理。其次在对各个微服务进行调取数据时会影响微服务的正常业务处理性能

离线处理数据方案:将业务数据准实时的同步到另外一个数据库中,在同步的过程中进行数据整合处理,以满足业务方对数据的需求,数据同步过来后,再提供另外一个服务接口专业负责对外输出数据信息,这种方案有两个特点:①数据同步方案是关键,技术选型有很多,如何选择切合公司业务的技术方案;②离线数据处理对微服务正常业务处理没有影响。

推荐使用二种,利用SpringBoot和MongoDB可以轻松的解决这个问题,通过技术手段将分裂到N个微服务的数据同步到MongoDB集群中,在同步的过程中进行数据清洗,来满足公司的各项业务需求

在微服务架构中,有大难题,那就是服务故障的传播性、服务的划分和分布式事务。

【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。