微服务架构七种模式

微服务架构七种模式

  • 目录
    • 概述
      • 需求:
    • 设计思路
    • 实现思路分析
  • 参考资料和推荐阅读

Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.

目录

在这里插入图片描述

概述

微服务架构七种模式

需求:

1.聚合器微服务设计模式
2. 代理微服务设计模式
3. 链式微服务设计模式
4. 分支微服务设计模式
5. 数据共享微服务设计模式
6. 异步消息传递微服务设计模式

设计思路

1.聚合器微服务设计模式
其主要功能是将不同的微服务功能模块组合成一个单一的API,从而提高整个系统的可用性和可扩展性。
具体来说,聚合器微服务设计模式的实现需要以下步骤:

对于需要聚合的功能模块,使用独立的微服务进行开发和维护,并尽可能地保持每个服务的独立性和可扩展性;

设计一个聚合器微服务,该服务将调用所有需要的功能模块,并将它们的响应结果汇总成一个单一的API响应。这个聚合器微服务可以被视为一个路由器,它将路由所有的请求到正确的服务;

当聚合器微服务收到一个请求时,它会调用所有需要的功能模块,并将它们的响应结果汇总成一个单一的API响应。这个响应结果可以是JSON格式的数据,也可以是其他格式的数据;

对于特定的业务需求,可以在聚合器微服务中实现各种聚合逻辑,例如对多个响应结果进行组合、聚合或过滤等等。

  1. 代理微服务设计模式

安全代理:代理微服务可以在客户端和后端服务之间提供安全层,对数据进行加密、身份验证和授权等操作,确保只有授权的用户可以访问服务。

负载均衡代理:代理微服务可以根据负载情况动态分配请求到多个后端实例,以避免某个实例过载从而导致服务不可用的情况。

缓存代理:代理微服务可以在客户端和后端服务之间提供缓存层,从而提高服务的响应速度和性能。

带宽限制代理:代理微服务可以限制对后端服务的访问速率,从而避免后端服务因过多请求而崩溃。

记录数据代理:代理微服务可以对所有请求和响应数据

  1. 链式微服务设计模式
    链式微服务设计模式是一种可扩展的设计模式
    该模式将各个微服务连接起来,形成一条链,每个微服务都完成一部分功能,然后将结果传递给下一个服务,直到完成整个过程。

该模式将各个微服务连接起来,形成一条链,每个微服务都完成一部分功能,然后将结果传递给下一个服务,直到完成整个过程。

在链式微服务设计模式中,每个微服务都是独立的,它们都有自己的输入和输出,并且可以使用异步消息传递或同步调用等不同的通信方式。每个微服务都是可插拔的,可以轻松添加或删除服务,而不需要修改整个系统。

这种设计模式允许每个微服务专注于自己的任务,而不需要关注整个系统的细节。它还可以提高系统的可扩展性和性能,因为每个微服务都可以进行水平扩展,以处理更多的请求。

另外,链式微服务设计模式可以帮助开发人员更好地组织代码和模块化系统。每个微服务都可以作为一个模块,可以单独测试和部署,从而更容易实现持续交付和部署。

分支微服务设计模式是一种用于构建大型系统的微服务架构模式,它将系统分成多个小的、相互独立的子系统。

在分支微服务设计模式中,每个微服务代表一个子系统,负责处理该子系统的所有业务逻辑。这种模式允许每个子系统独立开发、测试和部署,从而提高了系统的可伸缩性和可维护性。

  1. 分支微服务设计模式
    分支微服务设计模式主要有以下几个特点:

  2. 每个微服务都是独立的,具有自己的数据库和API接口。

  3. 不同的微服务之间可以通过RESTful API或消息队列进行通信。

  4. 每个微服务都遵循单一职责原则,只负责处理特定的业务逻辑。

  5. 分支微服务模式允许系统中的不同部分独立开发和升级,从而提高了系统的可伸缩性和可维护性。

  6. 通过使用分支微服务模式,可以将系统中的风险降到最低,因为每个微服务都可以独立测试和部署。

数据共享微服务是一种模式,它允许不同的应用程序和服务共享数据,以便实现更高效的业务流程。下面是一些常用的数据共享微服务设计模式:

数据聚合模式:将多个数据源的数据聚合到一个中心库或数据湖中,并提供统一的API接口供其他服务调用。

数据复制模式:将数据从一个数据源复制到另一个数据源,以便在不同的应用程序或服务中使用。

数据传输模式:使用消息队列或其他数据交换机制,将数据从一个服务传输到另一个服务。

数据缓存模式:使用缓存服务将数据缓存起来,以便其他服务可以更快地访问它们。

数据仓库模式:构建一个数据仓库,将数据从多个数据源导入其中,并提供查询接口供其他服务使用。

异步消息传递是一种常见的微服务设计模式,它允许不同的服务之间通过消息传递进行通信。这种方式可以帮助解决微服务架构中的耦合性和性能问题。

在异步消息传递模式中,一个服务可以通过消息队列向另一个服务发送消息,而不需要直接调用该服务的 API。这种方式可以让服务之间解耦,因为发送方不需要知道接收方的实现细节,只需要知道如何发送消息,并且接收方会在消息队列中接收并处理消息。

另外,异步消息传递还可以提高系统的性能和可伸缩性。因为消息队列可以处理大量的消息,不同的服务可以异步地处理这些消息,从而让整个系统的吞吐量得到提高
以下是异步消息传递微服务设计模式的几个关键要点:

1.使用消息队列作为服务之间通信的中介。消息队列可以是开源的,比如RabbitMQ和Apache Kafka,也可以是云服务商提供的管理的消息队列,比如AWS SQS和Azure Service Bus。

2.定义标准的消息格式和协议,以确保不同的服务可以理解和处理消息。

3.使用异步方式发送消息,这意味着发送方不需要等待接收方处理完消息才能继续执行。

4.确保消息处理的幂等性,即使同一个消息被处理多次,也应该保证最终结果是一样的。

实现思路分析

参考资料和推荐阅读

参考资料
官方文档
开源社区
博客文章
1.https://edu.iask.sina.com.cn/jy/3o7lgs8RzuF.html
书籍推荐

欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!同时,期望各位大佬的批评指正~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/114797.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1773_把vim的tab键设置为4个空格显示

全部学习汇总: GitHub - GreyZhang/editors_skills: Summary for some common editor skills I used. 有时候自己觉得自己很奇怪,看着Linux的命令窗口就觉得很顺眼。那些花花绿绿的字符以及繁多的方便命令工具,确实是比Windows强不少。不过&a…

大数据时代下的精准营销

在大数据时代,人们的信息越来越透明,留在网络上的各种数据也是企业进行营销的一个重要的生产要素。一直以来,营销的科学性正是因为运用了自然科学中一级互联网中的数据收集手段,严谨的记录、搜集和分析消费者的各项数据和日常生活…

Openlayer系列:利用GeoServer和Openlayer地图显示区域掩模

前言 利用GeoServer和Openlayer地图显示区域掩模 利用GeoServer进行图层发布 Openlayer地图显示区域掩模 对界面地图进行切换,卫星图利用GeoServer,水系等根据geojson文件生成图层,效果如下 卫星图部分代码如下: // 创建卫星图…

在CentOS7中,安装并配置Redis【个人笔记】

一、拓展——Ubuntu上安装Redis 输入命令su --->切换到root用户【如果已经是,则不需要进行该操作】apt search redis --->使用apt命令来搜索redis相关的软件包【查询后,检查redis版本是否是你需要的,如果不是则需要看看其他资料~】ap…

蓝牙运动耳机哪个牌子好、好用的运动蓝牙耳机推荐

作为一个热爱运动的人,我对耳机非常关注。我相信许多喜欢运动的人在锻炼时都会佩戴耳机,这样可以为运动增添一份乐趣,享受自己喜爱的音乐或聆听有趣的小说,激发内心的动力。但很多人都不知道要怎么选一款优质的运动耳机&#xff0…

安捷伦Agilent E8362C网络分析仪

产品概述 Agilent E8362C网络分析仪提供通用网络分析,带有可选软件和/或硬件,可根据您的应用进行定制,如多端口、脉冲射频等。 Agilent E8362C网络分析仪的显示窗口数量不限,可以调整大小和重新排列,每个窗口最多有24…

python-数据分析-numpy、pandas、matplotlib的常用方法

一、numpy import numpy as np1.numpy 数组 和 list 的区别 输出方式不同 里面包含的元素类型 2.构造并访问二维数组 使用 索引/切片 访问ndarray元素 切片 左闭右开 np.array(list) 3.快捷构造高维数组 np.arange() np.random.randn() - - - 服从标准正态分布- - - …

【高阶数据结构】map和set的介绍和使用 {关联式容器;键值对;map和set;multimap和multiset;OJ练习}

map和set的介绍和使用 一、关联式容器 关联式容器和序列式容器是C STL中的两种不同类型的容器。 关联式容器是基于键值对的容器,其中每个元素都有一个唯一的键值,可以通过键值来访问元素。关联式容器包括set、multiset、map和multimap。 序列式容器是…

常静相伴:深度解析C++中的const与static关键字

个人主页:北海 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏✨收录专栏:C/C🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!&#x1f9…

玩转 PI 系列-看起来像服务器的 ARM 开发板矩阵-Firefly Cluster Server

前言 基于我个人的工作内容和兴趣,想要在家里搞一套服务器集群,用于容器/K8s 等方案的测试验证。 考虑过使用二手服务器,比如 Dell R730, 还搞了一套配置清单,如下: Dell R7303.5 尺寸规格硬盘CPU: 2686v4*2 内存&a…

DBO优化SVM的电力负荷预测,附MATLAB代码

今天为大家带来一期基于DBO-SVM的电力负荷预测。 原理详解 文章对支持向量机(SVM)的两个参数进行优化,分别是:惩罚系数c和 gamma。 其中,惩罚系数c表示对误差的宽容度。c越高,说明越不能容忍出现误差,容易过拟合。c越小&#xff0…

链表OJ练习(1)

一、移除链表元素 本题为力扣原题203 题目介绍&#xff1a; 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 列表中的节点数目范围在 0~10000内 1<Node.val<50 0<val<50 …

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)十一:通用表单组件封装实现

一、本章内容 本章实现通用表单组件,根据实体配置识别实体属性,并自动生成编辑组件,实现对应数据填充、校验及保存等逻辑。 1. 详细课程地址: 待发布 2. 源码下载地址: 待发布 二、界面预览 三、开发视频 3.1 B站视频地址:

OpenCV

文章目录 OpenCV学习报告读取图片和网络摄像头1.1 图片读取1.2 视频读取1.1.1 读取视频文件1.1.2读取网络摄像头 OpenCV基础功能调整、裁剪图像3.1 调整图像大小3.2 裁剪图像 图像上绘制形状和文本4.1 图像上绘制形状4.2图像上写文字 透视变换图像拼接颜色检测轮廓检测人脸检测…

【Nacos】使用Nacos进行服务发现、配置管理

Nacos Nacos是 Dynamic Naming and Configuration Service 的首字母简称&#xff0c;一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 版本说明&#xff1a;版本说明 alibaba/spring-cloud-alibaba Wiki GitHub <properties><java.version>…

传统分拣弊端明显,AI机器视觉赋能物流行业包裹分类产线数智化升级

随着电子商务的快速发展&#xff0c;物流行业的包裹数量持续增长&#xff0c;给物流企业带来了巨大的运营压力。目前&#xff0c;国内大型物流运转中心已开始采用机器视觉自动化设备&#xff0c;但多数快递公司处于半自动化状态&#xff0c;中小型物流分拣中心目前仍靠人工录入…

AI机器视觉赋能电池缺陷检测,深眸科技助力新能源行业规模化发展

新产业周期下&#xff0c;新能源行业风口已至&#xff0c;现代社会对于新能源电池产品需求量加大&#xff0c;对产品的质量安全也更加重视。当前&#xff0c;传统的检测方法已经不能满足新能源电池行业的发展&#xff0c;越来越多的厂商开始应用创新机器视觉技术与产品于生产环…

Python 实战之ChatGPT + Python 实现全自动数据处理/可视化详解

本文目录 一、引言 二、成果演示——口述式数据可视化 三、远原理述 四、实现过程 &#xff08;一&#xff09;环境配置 &#xff08;二&#xff09;申请OpenAI账号 &#xff08;一&#xff09;调用ChatGPT API &#xff08;二&#xff09;设计AI身份&#xff0c;全自动处理数据…

java基于微信小程序的讲座预约系统的研究与实现

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 1 简介2 技术栈第三章 系统分析3.1初步需求分析 3.2 系统用例分析3.2.1 公告管理用例分析3.2.2 系…