0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是微服务架构_微服务架构的优缺点及应用

电子工程师 来源:xx 2019-06-02 10:03 次阅读

什么是微服务架构

简单地说,微服务是系统架构上的一种设计风格, 它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于HTTP的RESTful API进行通信协作。被拆分成的每一个小型服务都围绕着系统中的某一项或一些耦合度较高的业务功能进行构建, 并且每个服务都维护着自身的数据存储、业务开发、自动化测试案例以及独立部署机制。

微服务架构的优缺点

微服务的优点

·每个微服务都很小,这样能够聚焦一个指定的业务功能或业务需求。

·微服务能够被小团队单独开发,这个小团队是2到5人的开发人员组成。

·微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的。

·微服务能使用不同的语言开发,如JavaPython、PHP、C#等。

·微服务允许容易且灵活的方式集成自动部署,通过持续集成工具,如Jenkins, Travis CI等工具。

·一个团队的新成员能够更快投入生产。

·微服务易于被一个开发人员理解,修改和维护,这样小团队能够更关注自己的工作成果。无需通过合作才能体现价值。

·微服务允许你利用融合最新技术

·微服务只是业务逻辑的代码,不会和HTML,CSS 或其他界面组件混合。

·微服务能够即时被要求扩展。

·微服务能部署中低端配置的服务器上。

·易于和第三方应用系统集成。

·每个微服务都有自己的存储能力,可以有自己的数据库,也可以有统一数据库。

微服务的缺点

·微服务架构可能引入过多的操作;

·需要提高DevOps应用技巧;

·对于开发和运维带来一定的挑战,需要付出双倍的努力;

·分布式系统比单体应用架构复杂,且难以管理;

·对于故障诊断比较难,分布式部署跟踪比单体架构复杂;

·当服务数量增加,管理复杂性增加。

微服务架构在工业应用上的实战

下面以格创东智在某工业生产行业客户进行了微服务架构的实际落地案例进行说明。目前该公司的微服务架构如下图所示。

该公司拥有MES、EDA、RPT、SPC、OEE、FDC等应用,其中查询、分析类应用已经移植到微服务架构,使用的是Spring Cloud。

以RPT系统为例,使用SpringCloud之后,新增报表只需要开发有关业务逻辑的代码,其他配置、权限及校验代码都由微服务架构代劳,其开发和测试部署相较之前更加快捷,而且融合了Python技术,在某些特定场景下,系统运行效率也有可观的改善。

在异常分析系统中,之前使用的是Spark MLlib,但是在预测产品异常方面,Python的Keras效果更佳,在导入微服务架构后,可以很方便的使用Scala和Python的“混合”架构,系统的分析准确率得到了提升。

在移植过程中遇到了微服务的“边界”问题,在我们进行微服务架构设计和改造过程中,一个不可避免的问题是如何确定服务边界、如何进行服务识别,微服务的划分粒度究竟如何确认。我们可能会听到,服务既不能太大,也不能太小,当然这是一个笼统的概念。那么,问题来了,究竟多大是大,多小是小。

一个设计良好的服务应包含以下五个特征:

特征一:服务不与其他服务共享数据库

特征二:服务应包含尽可能少的数据库表

特征三:一个服务要么包含完整的业务含义,要么是放之四海皆通用的公共服务。

特征四:一个良好的服务应首先确保其数据可用性。

特征五:在一个业务系统中,一个服务只能是并且唯一的可信来源。

MES系统和EDA系统这一类与生产强相关的应用,业务逻辑复杂,耦合性强,进行服务“拆分”很难符合以上5个特征。所以暂时无法对其进行“拆分”。

综上所述,微服务架构比较适合制造业应用中查询、分析类应用,在生产控制这一类与生产强相关的应用上的作用还有待挖掘。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微服务
    +关注

    关注

    0

    文章

    134

    浏览量

    7334
  • 微服务架构
    +关注

    关注

    0

    文章

    24

    浏览量

    2954
收藏 人收藏

    评论

    相关推荐

    微服务架构和CQRS架构基本概念介绍

    微服务架构现在很热,到处可以看到各大互联网公司的微服务实践的分享总结。但是,我今天的分享和微服务没有关系,希望可以带给大家一些新的东西。如果一定要说
    发表于 05-22 09:03

    微服务架构与实践摘要

    本文主要类容是对微服务架构与实践摘要解析。微服务架构中的 “微” 体现了其核心要素,即服务的微型化,就是每个
    的头像 发表于 02-07 16:57 6116次阅读
    <b class='flag-5'>微服务</b><b class='flag-5'>架构</b>与实践摘要

    微服务优缺点解析

    微服务不是一个名字,而是一个架构的概念。微服务架构是对原来的大型系统而言的,通过横向或者纵向、业务或者架构切分,将一个大型的系统分散成很多微
    的头像 发表于 02-09 09:01 8523次阅读
    <b class='flag-5'>微服务</b><b class='flag-5'>优缺点</b>解析

    微服务优势_微服务架构的好处与不足

    是相互独立的,所以不同的服务可以使用不同的语言来开发,或者根据业务的需求使用不同类型的数据库。总而言之,微服务架构有很多吸引人的地方,不过在拥抱微服务之前要认清它所带来的挑战。而每一种
    发表于 02-23 11:24 4389次阅读

    SOA架构微服务架构的主要区别

    SOA和微服务架构一个层面的东西,而对于ESB和微服务网关是一个层面的东西,一个谈到是架构风格和方法,一个谈的是实现工具或组件。SOA架构
    的头像 发表于 05-04 14:11 5827次阅读
    SOA<b class='flag-5'>架构</b>和<b class='flag-5'>微服务</b><b class='flag-5'>架构</b>的主要区别

    微服务架构有哪些_微服务架构设计模式

    小伙伴们知道常用的微服务架构框架有哪些吗?上回我们介绍了一些常用的微服务架构设计模式,这次我们就来了解一下一些常用的微服务
    的头像 发表于 05-17 17:06 2.9w次阅读
    <b class='flag-5'>微服务</b><b class='flag-5'>架构</b>有哪些_<b class='flag-5'>微服务</b><b class='flag-5'>架构</b>设计模式

    微服务架构的特点_微服务架构适用场景

     微服务架构是一项在云中部署应用和服务的新技术。
    的头像 发表于 05-17 17:28 5083次阅读

    微服务软件架构应用研究综述

    自2014年,微服务架构概念经Martin Flower提出以来,受到广泛关注,为更好了解微服务架构风格,本文首先分析、梳理了软件架构的发展
    发表于 05-26 09:26 2次下载

    微服务架构中的服务之间如何互相调用呢?

    微服务架构中,需要调用很多服务才能完成一项功能。服务之间如何互相调用就变成微服务架构中的一个关
    的头像 发表于 01-31 09:46 2182次阅读

    什么是微服务架构

    在Medium,我们的技术堆栈始于2012年的单片Node.js应用程序。我们已经构建了几个卫星服务,但我们还没有制定一个系统地采用微服务架构的策略。随着系统变得越来越复杂并且团队不断发展,我们在2018年初转向了
    的头像 发表于 02-24 11:15 1327次阅读
    什么是<b class='flag-5'>微服务</b><b class='flag-5'>架构</b>?

    从分层架构微服务架构介绍(五)

    本文要介绍的是 服务架构 (Service-Based Architecture, SBA )。 SBA 可以看成是单体架构微服务架构
    的头像 发表于 05-10 17:02 826次阅读
    从分层<b class='flag-5'>架构</b>到<b class='flag-5'>微服务</b><b class='flag-5'>架构</b>介绍(五)

    springcloud微服务架构

    Spring Cloud是一个开源的微服务架构框架,它提供了一系列工具和组件,用于构建和管理分布式系统中的微服务。它基于Spring框架,旨在通过简化开发过程和降低系统复杂性来帮助开发人员构建弹性
    的头像 发表于 11-23 09:24 1248次阅读

    docker微服务架构实战

    随着云计算和容器化技术的快速发展,微服务架构在软件开发领域中变得越来越流行。微服务架构将一个大型的软件应用拆分成多个小型的、独立部署的服务
    的头像 发表于 11-23 09:26 637次阅读

    设计微服务架构的原则

    微服务是一种软件架构策略,有利于改善整体性能和可扩展性。你可能会想,我的团队需不需要采用微服务,设计微服务架构有哪些原则?本文会给你一些灵感
    的头像 发表于 11-26 08:05 570次阅读
    设计<b class='flag-5'>微服务</b><b class='flag-5'>架构</b>的原则

    微服务架构与容器云的关系与区别

    微服务架构与容器云密切相关又有所区别。微服务将大型应用拆分为小型、独立的服务,而容器云基于容器技术,为微服务提供构建、发布和运行的平台。区别
    的头像 发表于 10-21 17:28 183次阅读