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

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

3天内不再提示

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

姚小熊27 来源:奇O工具.Java机械师 作者:奇O工具.Java机械师 2021-05-17 17:06 次阅读

微服务架构有哪些

小伙伴们知道常用的微服务架构框架有哪些吗?上回我们介绍了一些常用的微服务架构设计模式,这次我们就来了解一下一些常用的微服务架构框架吧。

一、Dubbo

Dubbo框架是由阿里巴巴开发的开源式的分布式服务化治理框架,它会通过RPC请求方式访问。Dubbo是在阿里巴巴的电商平台中逐渐探索演进所形成的,经历过复杂业务的高并发挑战,现在许多大企业都使用的都是Dubbo。

二、Dropwizard

Dropwizard框架集中了Java生态系统中各个问题域里最好的组件集成于一身,它能够极快的打造一个Rest风格的后台,还可以整合Dropwizard核心以外的项目。与Spring Boot相较,Dropwizard在轻量化上更有优势。

三、Akka

Akka是一个用Scala编写的库,可以用在有简化编写容错、高可伸缩性的Java和Scala的Actor模型,使用Akka能够实现微服务集群。

四、Spring Boot

Spring Boot的设计目的是简化新Spring应用初始搭建以及开发过程,可以说是目前大众中最受欢迎的微服务开发框架。利用Spring Boot开发的便捷度简化分布式系统基础设施的开发,比如像配置中心、注册、负载均衡等方面都可以做到一键启动和一键部署。

五、Spring Cloud

Spring Cloud不是一个单独框架,它是一整个系列的框架合计,它是基于HTTP(s)的RETS服务构建服务体系的。Spring Cloud能够帮助架构师构建一整套完整的微服务架构技术生态链。

六、Node.js相关微服务框架

Seneca

Seneca是Node.js的微服务框架开发工具,适用于编写可用于产品环境的代码。

Hapi/Restify/LoopBack

三种Node.js相关微服务框架,它们三个分工不同,前两种适合开发简单的微服务后端系统,第三种更适合用在大型复杂应用开发,还可以用在现有微服务上的构建。

七、Python相关微服务框架

Python相关微服务架构较少,一般使用较多的都是Nameko。Nameko使得微服务实现变得更加简单,同时也提供了非常多的功能,如负载均衡、服务发现及依赖自动注入等,使用起来非常方便,但美中不足的有限速、超时和权限机制不完善等缺点。

微服务架构设计模式

1.聚合器微服务设计模式

这是一种最常见也最简单的设计模式

聚合器调用多个服务实现应用程序所需的功能。它可以是一个简单的 WEB 页面,将检索到的数据进行处理展示。它也可以是一个更高层次的组合微服务,对检索到的数据增加业务逻辑后进一步发布成一个新的微服务,这符合DRY原则。另外,每个服务都有自己的缓存和数据库。如果聚合器是一个组合服务,那么它也有自己的缓存和数据库。聚合器可以沿X轴和Z轴独立扩展。

2.代理微服务设计模式

这是聚合模式的一个变种,如下图所示

在这种情况下,客户端并不聚合数据,但会根据业务需求的差别调用不同的微服务。代理可以仅仅委派请求,也可以进行数据转换工作。

3.链式微服务设计模式

这种模式在接收到请求后会产生一个经过合并的响应,如下图所示

在这种情况下,服务A接收到请求后会与服务B进行通信,类似地,服务B会同服务C进行通信。所有服务都使用同步消息传递。在整个链式调用完成之前,客户端会一直阻塞。因此,服务调用链不宜过长,以免客户端长时间等待。

4.分支微服务设计模式

这种模式是聚合器模式的扩展,允许同时调用两个微服务链,如下图所示

5.数据共享微服务设计模式

自治是微服务的设计原则之一,就是说微服务是全栈式服务。但在重构现有的“单体应用(Monolithic Application)”时,SQL 数据库反规范化可能会导致数据重复和不一致。因此,在单体应用到微服务架构的过渡阶段,可以使用这种设计模式,如下图所示

在这种情况下,部分微服务可能会共享缓存和数据库存储。不过,这只有在两个服务之间存在强耦合关系时才可以。对于基于微服务的新建应用程序而言,这是一种反模式。

6.异步消息传递微服务设计模式

虽然 REST 设计模式非常流行,但它是同步的,会造成阻塞。因此部分基于微服务的架构可能会选择使用消息队列代替 REST 请求/响应,如下图所示

责任编辑:YYX

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

    关注

    0

    文章

    56

    浏览量

    10870
  • 微服务架构
    +关注

    关注

    0

    文章

    23

    浏览量

    2951
  • Dubbo
    +关注

    关注

    0

    文章

    19

    浏览量

    3170
收藏 人收藏

    评论

    相关推荐

    SSR与微服务架构的结合应用

    随着互联网技术的快速发展,前端技术栈不断更新迭代,后端架构也经历了从单体应用到微服务的变革。在这个过程中,服务端渲染(SSR)作为一种提升页面加载速度和SEO性能的技术,与微服务
    的头像 发表于 11-18 11:34 230次阅读

    架构与设计 常见微服务分层架构的区别和落地实践

    架构风格越倾向于清晰的职责定位,且让领域模型成为架构的核心。 基于这些架构风格,在软件架构设计过程中又有非常多的架构分层模型。 传统三层
    的头像 发表于 10-22 15:34 149次阅读
    <b class='flag-5'>架构</b>与设计 常见<b class='flag-5'>微服务</b>分层<b class='flag-5'>架构</b>的区别和落地实践

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

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

    入门级攻略:如何容器化部署微服务

    第一步理解容器化基础,第二步创建Dockerfile,第三步构建推送镜像,第四步部署微服务,第五步管理微服务、第六步优化更新。容器化部署微服务是现代软件开发中的一种高效方法,可提供良好的可移植性、可扩展性和管理性。容器化部署
    的头像 发表于 10-09 10:08 118次阅读

    服务器而言,ARM架构与X86架构什么区别?各自的优势在哪里?

    ,x86 架构服务器在市场占主导,强大处理能力和广泛软件兼容性,广泛用于企业数据中心。ARM 架构服务器近年崛起,凭借低功耗、高效能优势在
    的头像 发表于 09-09 14:05 1437次阅读

    Proxyless的多活流量和微服务治理

    1. 引言 1.1 项目的背景及意义 在当今的微服务架构中,应用程序通常被拆分成多个独立的服务,这些服务通过网络进行通信。这种架构的优势在于
    的头像 发表于 08-28 16:54 1538次阅读
    Proxyless的多活流量和<b class='flag-5'>微服务</b>治理

    NVIDIA NIM微服务带来巨大优势

    服务通过热门 AI 模型为数百万开发者带来高达 5 倍的 token 效率提升,使他们能够立即访问在 NVIDIA DGX Cloud 上运行的 NIM 微服务
    的头像 发表于 08-23 15:20 441次阅读

    采用OpenUSD和NVIDIA NIM微服务创建精准品牌视觉

    全球领先的创意和制作服务机构率先采用 OpenUSD 和 NVIDIA NIM 微服务来创建精准的品牌视觉。
    的头像 发表于 08-01 14:33 390次阅读

    全新 NVIDIA NeMo Retriever微服务大幅提升LLM的准确性和吞吐量

    企业能够通过提供检索增强生成功能的生产就绪型 NVIDIA NIM 推理微服务,充分挖掘业务数据的价值。这些微服务现已集成到 Cohesity、DataStax、NetApp 和 Snowflake 平台中。
    的头像 发表于 07-26 11:13 784次阅读
    全新 NVIDIA NeMo Retriever<b class='flag-5'>微服务</b>大幅提升LLM的准确性和吞吐量

    【算能RADXA微服务器试用体验】Radxa Fogwise 1684X Mini 规格

    通过网络可以了解到,算能RADXA微服务器的具体规格: 处理器:BM1684X 算力:高达32Tops INT8峰值算力 内存:16GB LPDDR4X 内存 存储:64GB eMMC 编程框架
    发表于 02-28 11:21

    Java微服务随机掉线排查过程简析

    我们的业务共使用 11 台(阿里云)服务器,使用 SpringcloudAlibaba 构建微服务集群, 共计 60 个微服务, 全部注册在同一个 Nacos 集群。
    的头像 发表于 01-13 17:41 901次阅读
    Java<b class='flag-5'>微服务</b>随机掉线排查过程简析

    游戏公司不使用微服务架构的原因

    微服务基本只有 request/response 的模式。做不了 streaming?微服务通常要求应用是无状态的才能做到水平扩展。streaming 本身就是加入了状态
    的头像 发表于 12-29 11:18 408次阅读

    如何搭建微服务架构的全局图景

    如果一直保持共用数据库的模式,则整个架构会越来越僵化,失去了微服务架构的意义。因此小明和小红一鼓作气,把数据库也拆分了。所有持久化层相互隔离,由各个
    的头像 发表于 12-27 15:16 471次阅读
    如何搭建<b class='flag-5'>微服务</b><b class='flag-5'>架构</b>的全局图景

    如何构建弹性、高可用的微服务

    :什么是微服务架构?为什么微服务很重要?RedisEnterprise:微服务的完美方案微服务架构
    的头像 发表于 11-26 08:06 453次阅读
    如何构建弹性、高可用的<b class='flag-5'>微服务</b>?

    设计微服务架构的原则

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