【文末送书】微服务拆分规范

news2024/11/24 5:35:42

目录

  • 一. 🦁 什么是微服务?
  • 二. 🦁 拆分模型
    • Ⅰ. 压力模型拆分
      • 1. 垂直拆分(Vertical Decomposition)
      • 2. 水平拆分(Horizontal Decomposition)
      • 3. 动态拆分(Dynamic Decomposition)
    • Ⅱ. 业务模型拆分
      • 1. 基于业务功能拆分
      • 2. 基于业务流程拆分
      • 3. 基于用户场景拆分
      • 4. 基于数据拆分
    • Ⅲ. 领域模型拆分
      • 1. 按业务流程拆分
      • 2. 按业务领域拆分
      • 3. 按分层架构拆分
  • 三. 🦁 福利抽奖

一. 🦁 什么是微服务?

系统的业务功能划分为极小的独立微服务每个微服务只关注于完成某个小的任务。系统中的单个微服务可以被独立部署和扩展,且各个微服务之间是高内聚、松耦合的。微服务之间采用轻量化通信机制暴露接来实现通信。
那么微服务可以怎么拆分呢?

二. 🦁 拆分模型

Ⅰ. 压力模型拆分

压力模型简单来说就是用户访问量,我们要识别出某些超高并发量的业务,尽可能把这部分业务独立拆分出来。
可分为三个拆分维度:

1. 垂直拆分(Vertical Decomposition)

按照业务功能将系统划分为多个微服务,每个微服务只负责其中一个或几个相关功能模块。

2. 水平拆分(Horizontal Decomposition)

按照系统请求流量将系统划分为多个微服务,每个微服务只负责处理部分请求。

3. 动态拆分(Dynamic Decomposition)

根据系统压力动态地调整微服务的数量和节点位置。根据请求流量等因素,自动创建或删除微服务节点,以实现扩展和收缩。

Ⅱ. 业务模型拆分

1. 基于业务功能拆分

按照业务功能对微服务进行拆分,每个微服务负责一个或多个功能模块。例如,一个电商网站可以把商品管理、订单管理、支付管理等功能分别拆分成不同的微服务。

2. 基于业务流程拆分

照业务流程对微服务进行拆分,每个微服务负责一个或多个业务流程。例如,一个在线教育平台可以把课程购买、学习记录、作业评分等业务流程分别拆分成不同的微服务。

3. 基于用户场景拆分

按照用户场景对微服务进行拆分,每个微服务负责一种或多种用户场景。例如,一个社交媒体平台可以把用户登录、好友圈、私信聊天等用户场景分别拆分成不同的微服务。

4. 基于数据拆分

按照数据模型对微服务进行拆分,每个微服务负责一种或多种数据。例如,一个企业应用可以把员工信息、薪资信息、绩效信息等数据分别拆分成不同的微服务。

Ⅲ. 领域模型拆分

1. 按业务流程拆分

整个业务流程拆分为多个服务,每个服务负责一个特定的业务流程。这种方式适用于业务流程比较简单,不涉及多个领域的复杂场景。

2. 按业务领域拆分

将整个业务系统拆分为多个服务,每个服务负责一个特定的业务领域,例如订单、支付、用户管理等。这样可以使每个服务专注于自己的业务领域,减少耦合,提高扩展性和可维护性。

3. 按分层架构拆分

将整个业务系统拆分为多个服务,每个服务负责特定的应用程序层或技术架构层,例如Web服务、数据服务、缓存服务等。这种方式适用于需要将不同的技术架构分开管理、部署和扩展的情况。

在这里插入图片描述


三. 🦁 福利抽奖

🦁 送书抽奖活动 (五选一)🦁

在这里插入图片描述

详情点击:https://item.jd.com/13251159.html

在这里插入图片描述

详情点击:https://item.jd.com/13568136.html

在这里插入图片描述

详情点击:https://item.jd.com/13432555.html

在这里插入图片描述

详情点击:https://item.jd.com/13836258.html

在这里插入图片描述

详情点击:https://item.jd.com/13432555.html

本次活动赠书5本,评论区抽取5位小伙伴送书

活动时间: 截止到2023-06-18 20: 00
参与方式: 点赞、收藏本文章,并评论“Java不卷,我们不卷”
抽奖时间: 2023.06.18
公布时间: 2023.06.18
通知方式:交流群内公布或私信通知

更多活动可继续关注上方🦁的博客,好运总会轮到你!!!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

初识网络之http协议

目录 一、http协议含义 二、 认识URL 三、urlencode与urldecode 1. urlencode 2. urldecode 四、http协议响应与请求格式 1. http协议请求格式 2.http协议响应格式 3. http请求实际形式 3.1 程序准备 3.2 浏览器发起请求 3.3 请求行内容 3.4 请求报头内容 4. htt…

2022年国赛高教杯数学建模E题小批量物料的生产安排解题全过程文档及程序

2022年国赛高教杯数学建模 E题 小批量物料的生产安排 原题再现 某电子产品制造企业面临以下问题:在多品种小批量的物料生产中,事先无法知道物料的实际需求量。企业希望运用数学方法,分析已有的历史数据,建立数学模型&#xff0c…

mysql联合索引详解

比较简单的是单列索引(btree)。遇到多条件查询时,不可避免会使用到多列索引。联合索引又叫复合索引。 btree结构如下: 每一个磁盘块在mysql中是一个页,页大小是固定的,mysql innodb的默认的页大小是16k&a…

【工作中遇到的性能优化问题】

项目场景: 页面左侧有一列表数据,点击列表项会查对应的表格数据和表单信息(表单是根据数据配置生成的),并在右侧展示。如果数据量大,则非常卡。 需要对此页面进行优化。 问题描述 问题一、加载左侧数据时…

systemV的工作原理+原理代码

概念 我们知道进程间的通信有管道的方式进程通信管道制作_云的小站的博客-CSDN博客 但是我们的管道通信其实属于一种取巧的方式,利用了打开的文件可读写的特性上,两个进程对此分别进行读写操作就会产生所谓的通信现象,但是外面的管道依旧得…

【社区图书】快速入门go程序开发——《Go程序开发实战宝典》书评

《Go程序开发实战宝典》书评 一、介绍二、简要概述三、内容分析3.1、第一部分:Go语言基础知识3.2、第二部分:介绍服务端开发经常需要处理的问题3.3、第三部分:Go语言开发实践实战案例 四、我的看法和评价4.1、对本书整体评价4.2、我对这本书的…

Office Visio 2021安装

哈喽,大家好。今天一起学习的是Visio 2021的安装,这是一个绘制流程图的软件,用有效的绘图表达信息,比任何文字都更加形象和直观。Office Visio 是office软件系列中负责绘制流程图和示意图的软件,便于IT和商务人员就复杂…

Vue.js 中的插槽和动态组件

Vue.js 中的插槽和动态组件 Vue.js 是一款流行的 JavaScript 框架,它提供了一种简单而灵活的方式来构建交互式 Web 应用程序。在 Vue.js 中,插槽和动态组件是两个常用的概念。它们可以帮助开发者更方便地组织和管理组件的结构和行为。但是这两个概念有什…

(opencv)图像几何变换——平移

图像的平移操作是将图像的所有像素坐标进行水平或垂直方向移动,也就是将所有像素点按照给定的偏移量在水平方向沿x轴、垂直方向上沿y轴移动。平移变换分为两种类型:图像大小变化与图像大小不变。第一种类型保证图像平移的完整信息,第二种图像…

Vue.js 中的 $refs 和 $emit 有什么关系?

Vue.js 中的 $refs 和 $emit 有什么关系? 在 Vue.js 中,$refs 和 $emit 都是非常常用的 API。$refs 用于访问组件、元素和子组件等,而 $emit 则用于在组件之间进行通信。本文将会从语法、使用方式、适用场景等方面进行介绍,并探讨…

接招吧! selenium环境+元素定位大法

selenium 与 webdriver Selenium 是一个用于 Web 测试的工具,测试运行在浏览器中,就像真正的用户在手工操作一样。支持所有主流浏览器 WebDriver 就是对浏览器提供的原生API进行封装,使其成为一套更加面向对象的Selenium WebDriver API。 …

【数据结构与算法分析】使用C语言实现队列的两种(带头结点与不带头结点)链式存储,并且给出一种循环队列的设计思想

文章目录 前言队列实现带头结点单向队列不带头结点单向队列循环队列 总结 前言 当我们编写程序时,经常需要处理各种数据结构。队列是一种常见的数据结构,它有着广泛的应用场景。队列的基本操作包括入队和出队,应用于模拟等待队列、消息队列、…

LVS-DR集群

LVS-DR集群 一.LVS-DR工作原理 1.数据包流向 数据包流向分析: (1)客户端发送请求到 Director Server(负载均衡器),请求的数据报文(源 IP 是 CIP,目标 IP 是 VIP)到达内核空间。 &…

Flowable工作流入门完整SpringBoot案例

文章目录 一 、Flowable 的出现是为了什么二、Flowable 的优势三、常见的Java类/实例3.1 ProcessEngine3.2 RepositoryService3.3 ProcessDefinition3.4 Deployment3.5 RuntimeService3.6 ProcessInstance3.7 TaskService3.8 JavaDelegate3.9 其他 四、核心数据库表4.1 数据库4…

CET4写译学习

学习记录笔记: 05.四级写译技巧(上)_哔哩哔哩_bilibili 不会的东西不要往上写。寻找可以替换的词。 保证写的所有内容都是正确的。 切题,论证清楚。 要有自己的观点,然后去论证。 词汇,语法,句子结构都整好。 文…

【软件测试】接口测试工具APIpost

说实话,了解APIpost是因为,我的所有接口相关的文章下,都有该APIpost水军的评论,无非就是APIpost是中文版的postman,有多么多么好用,虽然咱也还不是什么啥网红,但是不知会一声就乱在评论区打广告…

Linux日志

rsyslog系统日志管理 哪类程序产生的什么日志放到什么地方 处理日志的进程 第一类: rsyslogd:系统专职日志程序,处理绝大部分日志记录,系统操作相关的信息,如登录信息,程序启动关闭相关信息&#xff0c…

C#语言实现4K图片放大缩小和平移显示性能的速度测试

在介绍“熊猫视图.Net图形控件”系列文章中, 【“熊猫视图.Net图形控件”介绍链接】https://blog.csdn.net/mosangbike/article/details/126026801有对显示图像文件的测试结果,当时测试的不太严谨。今天抽时间详细测试了一下。 从网上找了一张Jpg图像作…

亲宝宝 实习 面经

目录 1.char varchar 长度是字符数还是字节数 编码格式2.整型数据类型3.decimal及其实现4.慢查询5.索引失效6.explain7.for foreach性能差异8.数据库事务隔离级别9.binlog redolog 二阶段提交10.redis数据类型11.redis实现消息队列12.mybatis传参方法13.insert返回主键 1.char …

数据库实验一 数据库和数据表的建立、修改和删除

任务描述 本关任务:建立数据库 为了完成本关任务,你需要掌握: 如何创建数据库,显示已经建立的数据库 相关知识 创建数据库 创建数据库是在系统磁盘上划分一块区域用于数据的存储和管理。 命令格式: CREATE DATABA…