数据库拆分方案

1. 数据库拆分:

. 分库(垂直拆):a. 将用户、商品、订单拆分到不同的库.. 分表(水平拆):a. 单表超过1亿的数据量了,需要考虑水平拆分了:(1). 如uid按照特定的算法,拆分为多张表.数据结构是一样的.

2. 微服务借鉴:

. 场景:a. 商城有用户、商品、交易 、搜索几个功能.b. 数据库拆分原理的共性来驱动微服务拆分.. 拆分的原则:a. 垂直拆分(以业务或API为基准).b. 水平拆分(以处理的功能为基准).

(1). 垂直拆分:

. 业务关系分析:a. 用户可以发布和交易商品,是逻辑关系,不是物理关系.b. 业务功能垂直拆分,形成多个单体服务(4个服务).. 以用户服务来说,垂直拆分力度够不够?a. 有注册(写请求)、登录、用户查询(查请求).b. 写的重要性肯定大于读,但是写的请求小于读,一般读写比例为10:1.c. 如果一个用户只是一个服务,如果读很大了,一定会影响写服务.d. 可以按照api再次进一步垂直拆分.(1). 写是一个服务、读是一个服务,这就是读写分离.. 仅仅是垂直拆分是不够的,因为它只是多个单机,可以形成集群服务.  =>  水平拆分

(2). 水平拆分:

.APP发起一个请求,分析请求生命周期:a. 网关服务层:(1). 不会做具体的业务逻辑.(2). 如通用参数的检查、请求的鉴权、协议转换、路由转换.b. 业务逻辑层:(1). 进行业务逻辑的处理.(2). 如微信的好友拉黑、拒收消息,不需要跟DB打交道.c. 数据访问层:(1). CURD的功能、屏蔽各种DB的差异性.d. DB. 总结:a. 一层就是一个服务,这样就水平拆分成了网关层、业务逻辑层、数据访问层.b. 上面只是同步架构,还有异步架构.c. 这几个层都是无状态化的,目的是为了高可用.

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

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

相关文章

路由器设置代理IP教程,http代理怎么固定IP地址?

路由器设置代理IP教程 一、确定代理IP地址 首先,你需要确定你要使用的代理IP地址。你可以从代理服务提供商处获取代理IP地址和端口号。 二、登录路由器管理界面 在浏览器中输入路由器的IP地址,输入账号和密码,进入路由器的管理界面。 三、设置…

【MATLAB第83期】基于MATLAB的LSTM代理模型的SOBOL全局敏感性运用

【MATLAB第83期】基于MATLAB的LSTM代理模型的SOBOL全局敏感性运用 引言 在前面几期,介绍了敏感性分析法,本期来介绍lstm作为代理模型的sobol全局敏感性分析模型。 【MATLAB第31期】基于MATLAB的降维/全局敏感性分析/特征排序/数据处理回归问题MATLAB代…

基于单片机的火灾报警器 (论文+源码)

1.系统设计 本系统由火灾检测模块、A/D转换模块、信号处理模块、声光报警模块和灭火装置模块组成。火灾检测模块由温度检测和烟雾检测构成,其温度传感器选用DS18B20,烟雾传感器选用MQ-2烟雾传感器。A/D转换模块选用常用的模数转换芯片ADC0832。声光报警模…

比PPT还好用的翻页电子书

翻页电子书是一种将纸质书籍转化为电子设备的书籍形式。它具有与纸质书相同的外观和手感,但可以通过手指翻页,实现更加便捷的阅读体验。同时,翻页电子书还具有一些独特的功能,如插入图片、音频、视频等多媒体素材,让阅…

Nginx快速入门:Nginx应用场景、安装与部署(一)

1. Nginx简介 Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个非常流行的开源 Web 服务器软件。它是由俄罗斯程序员 Igor Sysoev 开发的,最初是为了解决在高并发场景下的C10k 问题(即一个服务器进程只能处理 10,000 个并发连接&#x…

pandas 笔记:corr(计算各列之间的相似性)

1 基本使用方法 DataFrame.corr(methodpearson, min_periods1, numeric_onlyFalse) 2 主要参数 method {‘pearson’, ‘kendall’, ‘spearman’} 或可调用对象 Pearson 相关系数 变量之间线性关系的强度和方向。取值范围在 -1 到 1 之间,其中 1 表示完全正相关…

嵌入式中串口输入

学习目标 掌握串口初始化流程掌握串口接收逻辑了解中断接收逻辑熟练掌握串口开发流程学习内容 需求 串口接收PC机发送的数据。 串口数据接收 串口初始化 static void USART_config() {uint32_t usartx_tx_rcu = RCU_GPIOA;uint32_t usartx_tx_port = GPIOA;uint32_t usartx…

Leetcode 376 摆动序列

题意理解: 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 如果是摆动序列,前后差值呈正负交替出现 为保证摆动序列尽可能的长,我们可以尽可能的保留峰值,,删除上下坡的中间值&…

中心下标-----来自力扣

本题使用go语言完成: 思路:1.先求出整个数组的和 2.用一个循环整个和减去左和看是否等于右和,如果等于,返回索引下标 寻找数组的中心索引 给你一个整数数组 nums ,请计算数组的 中心下标 。 数组 中心下标 是数组的一…

​在vsCode 运行终端命令时提示 “无法加载文件”

在vsCode 运行python,打开终端时,提示 “无法加载文件”C:\XXX\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本” 的错误。 解决方法: 以管理员身份运行PowerShell;执行:get-ExecutionPolicy…

Mongodb复制集架构

目录 复制集架构 复制集优点 复制集模式 复制集搭建 复制集常用命令 复制集增删节点 复制集选举 复制集同步 oplog分析 什么是oplog 查看oplog oplog大小 复制集架构 复制集优点 数据复制: 数据在Primary节点上进行写入,然后异步地复制到Secondary节点&a…

14 v-model绑定输入框

概述 v-model用于实现双向数据绑定,使用v-model绑定输入框是Vue3中最常见的用法之一。 比如,在制作登录界面的时候,我们会使用v-model绑定用户名和密码,这里的用户名和密码都是输入框。 基本用法 我们创建src/components/Demo…

cleanmymacX安全吗?有用吗

苹果电脑以其流畅的操作系统和卓越的性能而备受用户喜爱。然而,随着时间的推移,系统可能会积累大量垃圾文件,影响性能。本文将介绍苹果电脑怎么清理垃圾文件的各种方法,以提升系统运行效率。 CleanMyMac X是一款专业的Mac清理软件…

Android Studio问题解决:Gradle Download 下载超时 Connect reset

文章目录 一、遇到问题二、解决办法 一、遇到问题 Gradle Download下载超时Sync了很多次,一直失败 二、解决办法 手动通过gradle网站下载 https://gradle.org/releases/可能也会出现超时,最好开个VPN软件会比较快。 下载好的软件,放到本机的…

工业缺陷检测新时代!OpenCV4六种方法助你轻松应对生产难题!

OpenCV4工业缺陷检测的六种方法 机器视觉缺陷检测好书推荐工业上常见缺陷检测方法方法一:方法二:方法三:方法四:方法五:方法六: 写在末尾: 主页传送门:📀 传送 送书系列…

MyBatis的CRUD中的不同参数绑定查询

com.by.pojo下的User类 package com.by.pojo;import java.io.Serializable; import java.util.Date;public class User implements Serializable {private Integer id;private String username;private Date birthday;private String sex;private String address;public Integ…

hive企业级调优策略之分组聚合优化

测试用表准备 hive企业级调优策略测试数据 (阿里网盘下载链接):https://www.alipan.com/s/xsqK6971Mrs 订单表(2000w条数据) 表结构 建表语句 drop table if exists order_detail; create table order_detail(id string comment 订单id,user_id …

clangd:Couldn‘t build compiler instance

在使用vscode clangd 搭建RK3588 5.10版本linux内核代码开发环境时,使用bear生成 compile_commands.json时,clangd生成标签失败代码无法跳转,查看clangd日志,发现标签生成失败,失败原因:Couldnt build comp…

C++ OJ题测试—排序算法效率

目录 OJ链接 一、直接插入排序 二、希尔排序 三、直接选择排序 常规: 第二种: 四、 堆排序 五、冒泡排序 六、快速排序 常规: 三路划分优化效率 七、归并排序 八、计数排序 OJ链接 ​ 一、直接插入排序 class Solution { pub…

CentOS 7 部署 Nacos-2.3.0 (单机版)

CentOS 7 部署 Nacos-2.3.0 (单机版) 1. 下载 Nacos 安装包 历史版本:https://github.com/alibaba/nacos/releases/ 我选的是 2.3.0 版本,https://github.com/alibaba/nacos/releases/download/2.3.0/nacos-server-2.3.0.tar.g…