微服务架构介绍与分类「建议收藏」

微服务架构介绍与分类「建议收藏」微服务架构介绍与分类

大家好,又见面了,我是你们的朋友全栈君。

微服务是面向服务架构(SOA)的变体,使用各种相互依赖的模块来标识它们之间的相互关系,并可衡量每个模块之间的松耦合程度。

基于微服务的架构主要关注:

自然地强制执行模块化结构。
适用于持续交付软件开发过程。 
对应用程序的一小部分进行更改只需要重建和重新部署一个或少量服务
坚持诸如此类的原则 
细粒度接口(可独立部署的服务)
业务驱动的开发(例如域驱动设计)
云应用程序架构
多语言编程和持久性
轻量级容器部署
分散的持续交付
DevOps提供全面的服务监控 

将单个App开发为一套小型服务,每个小型服务都在自己的流程中运行,并与轻量级机制(通常是HTTP资源API)进行通信。这些服务围绕业务功能构建,可通过全自动部署机制独立部署。这些服务至少集中管理,可以用不同的编程语言编写,并使用不同的数据存储技术。

微服务的优点包括

    新技术和流程适应变得更加容易。您可以使用我们创建的新微服务来尝试新技术。
    更快的发布周期。
    可扩展到云。 

应用和团队的两个方面的功能分解是构建成功的微服务架构的关键。这样才能实现松耦合(REST接口)和高内聚(多个服务可以相互组合以定义更高级别的服务或应用程序)。功能分解提供了敏捷性,灵活性,可伸缩性和其他功能,但业务目标仍然是创建应用程序。

  • 聚合器微服务设计模式

第一种,也许是最常见的是聚合器微服务设计模式。在最简单的形式中,聚合器可能就是一个简单的网页,它调用多个服务来实现应用程序所需的功能。由于使用轻量级REST机制公开了每个服务(服务A,服务B和服务C),因此网页可以检索数据并相应地处理/显示数据。

  • 代理微服务设计模式

代理微服务设计模式是聚合器的变体。在这种情况下,不需要在客户端上进行聚合,但可以根据业务需要调用不同的微服务。

  • 链式微服务设计模式

链式微服务设计模式对请求产生单个合并响应。在这种情况下,来自客户端的请求由服务A接收,服务A然后与服务B通信,服务B又可以与服务C通信。所有服务可能使用同步HTTP请求/响应消息传递。

  • 共享数据微服务设计模式

微服务的设计原则之一是自治。这意味着该服务是全栈并且可以控制所有组件 – UI,中间件,持久性,事务。这允许服务是多语言,并使用正确的工具来完成正确的工作。例如,如果可以使用NoSQL数据存储,则更合适,在SQL数据库中会干扰数据独立性。

在这种设计模式中,一些在链条中的微服务可能共享缓存和数据库存储。这只有在两个服务之间存在强耦合时才有意义。有些人可能认为这是一种反模式,但在某些情况下可能需要业务需求来遵循这一点。对于基于微服务设计的绿地应用来说,这肯定是一种反模式。

  • 异步消息微服务设计模式

虽然REST设计模式非常普遍,并且很好理解,但它具有同步的限制,因此阻塞。可以实现异步,但这是以特定于应用程序的方式完成的。由于这一点,一些微服务架构可能会选择使用消息队列而不是REST请求/响应。

Spring Boot

Spring Boot是一个旨在简化新服务创建的框架。对于最简单的用例,所需的库已经捆绑在所谓的Spring starter配件组合和版本中。我们不必将应用程序部署到应用服务器中,而是独立运行我们的应用程序或在Docker容器中运行,因为应用已经包含服务器。Spring Boot可用于设置基于REST的微服务。

Spring Boot针对大多数用例简化了构建基于Java的微服务。与Dropwizard等框架不同,它更易于使用,并提供更丰富的功能集。Spring Boot提供了大量额外的库和集成,如Ribbon,Zuul,Hystrix,与MongoDB,Redis,GemFire,Elasticsearch,Cassandra或Hazelcast等数据库的集成。

借助Maven和Gradle,Java开发人员可以支持功能强大且受到广泛支持的构建系统,这些构建系统比Play Framework等框架的专用构建系统更常见,更易于集成到现有结构中。与传统的Web应用程序相比,Spring Boot很精简。对于大多数项目,向项目添加依赖项足以从头开始获得良好项目起步,无需调整默认配置。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106585.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 解决网页上内容不能复制的几种方法是什么_强制复制网页文字

    解决网页上内容不能复制的几种方法是什么_强制复制网页文字前言现在有很多网站不登陆或者不是会员不能复制内容,现在教大家几种方法来突破这个限制。通过快捷键ctrl+pctrl+p是打印的快捷键,一般的限制都可以通过这个方式来复制document.designModeF12/右键->检查,打开浏览控制台切换到console面板输入document.designMode=’on’document.body.contentEditableF12/右键->检查,打开浏览控制台切换到console面板输入document.bod

    2022年10月19日
    0
  • 第六章:activiti流程分流判断之排它网关和并行网关

    第六章:activiti流程分流判断之排它网关和并行网关第六章:activiti流程分流判断之排它网关和并行网关

    2022年4月23日
    149
  • mysql 幂等(什么是幂等性)

    一、什么是幂等?幂等性:多次调用方法或者接口不会改变业务状态,可以保证重复调用的结果和单次调用的结果一致。二、使用幂等的场景1、前端重复提交用户注册,用户创建商品等操作,前端都会提交一些数据给后台服务,后台需要根据用户提交的数据在数据库中创建记录。如果用户不小心多点了几次,后端收到了好几次提交,这时就会在数据库中重复创建了多条记录。这就是接口没有幂等性带来的bug。2、接口超时重试对于给第三方调…

    2022年4月10日
    88
  • EVT 极值理论「建议收藏」

    EVT 极值理论「建议收藏」EV参考:http://www.360doc.com/content/10/1225/05/974066_81117880.shtml

    2022年10月22日
    0
  • 京东云 服务器_京东云服务器免费体验

    京东云 服务器_京东云服务器免费体验哈哈哈~又来“打广告”了~~~一开始用着华为云服务不错,只不过因为自己一时粗心忘了密码,找回密码又比较麻烦,所以从网上搜免费的云服务器。果然发现了京东云……(虽然是第一次见),不过确实方便好用。好处如下:*实名认证方式就比较简单,不需要拿着身份证照来照去了,审核基本是秒过*功能操作比较简单*免费半年使用权(主要是这个原因)注册账号领取免费套餐注册账号:1、进入官网,直接

    2022年10月14日
    0
  • clion 2021 激活_在线激活

    (clion 2021 激活)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/ide…

    2022年3月30日
    114

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号