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

    文章

    58

    浏览量

    11120
  • 微服务架构
    +关注

    关注

    0

    文章

    26

    浏览量

    3149
  • Dubbo
    +关注

    关注

    0

    文章

    20

    浏览量

    3406
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    华纳云VPS容器服务网格流量管理:实现微服务高效路由

    在云计算和微服务架构日益普及的今天,华纳云香港VPS凭借其优越的地缘优势和网络自由,成为众多企业部署容器化应用的热门选择。复杂的微服务架构带来了流量管理的巨大挑战。本文将深入探讨如何利
    的头像 发表于 10-16 17:09 374次阅读

    如何基于Nginx构建微服务网关

    今天,我将分享我们团队如何基于Nginx构建了一个日均处理10亿+请求的微服务网关,以及踩过的那些坑。这套方案已经稳定运行2年+,经历过多次大促考验。
    的头像 发表于 09-02 16:29 609次阅读

    Jtti海外VPS微服务架构下的日志采集与分析优化方案

    随着跨境业务和分布式应用的普及,越来越多的企业在海外VPS上构建微服务架构,以提升系统扩展性和灵活性。然而,微服务化带来了一个新的挑战:日志数据分散在多个服务和节点中,若缺乏统一采集与
    的头像 发表于 08-27 17:13 409次阅读

    深入剖析RabbitMQ高可用架构设

    微服务架构中,消息队列故障导致的系统不可用率高达27%!如何构建一个真正可靠的消息中间件架构?本文将深入剖析RabbitMQ高可用设计的核心要点。
    的头像 发表于 08-18 11:19 696次阅读

    电商API的微服务架构优化策略

    ​ 随着电子商务的快速发展,API(应用程序编程接口)已成为电商平台的核心组件,负责连接用户、商家和后台系统。微服务架构通过将应用拆分为独立、可扩展的服务单元,显著提升了系统的灵活性和可维护性。然而
    的头像 发表于 07-23 14:30 386次阅读
    电商API的<b class='flag-5'>微服务</b><b class='flag-5'>架构</b>优化策略

    企业使用NVIDIA NeMo微服务构建AI智能体平台

    已发布的 NeMo 微服务可与合作伙伴平台集成,作为创建 AI 智能体的构建模块,使用商业智能与强大的逻辑推理模型 (包括 NVIDIA Llama Nemotron) 处理更多任务。
    的头像 发表于 04-27 15:05 992次阅读

    微服务架构几种典型的基础框架,你了解吗?

    SpringCloud、Dubbo、Dropwizard、Akka等是常见微服务框架。SpringCloud基于SpringBoot,生态丰富;Dropwizard轻量且继承SpringBoot优点
    的头像 发表于 03-04 11:05 781次阅读

    NVIDIA发布全新NIM AI Guardrail微服务

    NVIDIA近期推出了一项旨在保障代理式AI应用安全性的重要技术——NIM AI Guardrail微服务。这一全新微服务是NVIDIA NeMo Guardrails软件工具系列的重要组成部分
    的头像 发表于 01-18 11:48 1042次阅读

    NVIDIA NeMo Guardrails引入三项全新NIM微服务

    NVIDIA NeMo Guardrails 包含全新 NVIDIA NIM 微服务,能够为各行业构建 AI 的企业提高 AI 的准确性、安全性和可控性。
    的头像 发表于 01-18 09:39 1121次阅读

    NVIDIA 发布保障代理式 AI 应用安全的 NIM 微服务

    NVIDIA NeMo Guardrails 包含全新 NVIDIA NIM 微服务,能够为各行业构建 AI 的企业提高 AI 的准确性、安全性和可控性。   AI 智能体有望成为能够完成各种任务
    发表于 01-17 16:29 280次阅读

    微服务容器化部署好处多吗?

    微服务容器化部署好处很多,包括环境一致性、资源高效利用、快速部署与启动、隔离性与安全性、版本控制与回滚以及持续集成与持续部署。这些优势助力应用可靠稳定运行,提升开发运维效率,是现代软件架构的优质选择。UU云小编认为
    的头像 发表于 01-17 10:22 541次阅读

    容器化能替代微服务吗?两者何区别

    容器化不能替代微服务,但它是微服务的解决方案之一。微服务架构的核心在于将大型应用程序拆分为一系列小型、独立的服务,每个
    的头像 发表于 01-13 10:40 683次阅读

    Java微服务中如何确保安全性?

    在Java微服务架构中确保安全性,可以采取以下措施: 身份验证与授权: 使用OAuth 2.0和OpenID Connect框架进行身份验证和授权。OAuth2允许用户在不分享凭证的情况下授权第三方
    的头像 发表于 01-02 15:21 1022次阅读

    宝藏级微服务架构工具合集

    宝藏级热门微服务架构工具包含Spring Boot、Eclipse Vert.X、Kubernetes、Tyk、RabbitMQ、Apache Kafka等。其中,Spring Boot简化了微服务
    的头像 发表于 12-21 16:33 895次阅读

    NVIDIA NIM微服务登陆亚马逊云科技

    经过优化的 NIM 微服务现可在 Amazon Bedrock Marketplace、SageMaker JumpStart 和 AWS Marketplace 上获取,用于各种 NVIDIA 和生态系统模型。
    的头像 发表于 12-06 13:33 1092次阅读