物流系统原有40T数据加上每天至少要比之前多3G数据产品,这种该怎么解决

        今天早上接到一个学生的电话,说他现在有40T物流数据,且今年比去年每天至少要多3G数据,访问量也要比去年每天多1千万次。在少量增加成本或是在原有的服务器的前提下,将系统进行升级及拓展。希望我给他提供方案。

        听完之后,首先我问题物流业务的安排(主要是查询服务、数据更新、接口对接)。其次再问到40T数据全是物流数据呢还是物流数据+日志数据。最后问到岗位安排及服务器数量。

        学生回复我说,目前物流系统最大的困难就是数据更新及自家运营统计分析。因为数据过于庞大,加上现在每日新增数,数据库的写入能力大大降低,已经排队到3分钟左右才能更新一条(物流数据),而日志数据基本要10分钟左右才能写入一条。40T数据中有12T多是物流数据,有28T多是日志数据。整个开发有40多人。有运维工程师15个,6个高级工程开发C及C++的,有8个go普通开发,还有一个DBA日常维护。业务开发6个前端(4个高级前端,2个普通前端),10个PHP开发(6个高级PHP开发,4个普通开发)。还有5个PHP与go混合开发的,能力也在高级工程师中。2个kafka开发工程师,2个rabbitmq开发工程师,3个swoole专业开发工程师。剩下就是一个部门经理与技术总监(自己)。因机房是托管的,他们已经有了40台物理服务器。留了20台服务器在做备份,其中有10台也在做测试服务器,10台是长期做备份服务的。

        听完之后,首先我问到物流业务这块,更新数据,每个订单号最长流水线是多少,而每日查看统计及分析的数据流水线是多少。每块硬盘最小多大,服务器的最小核数及CPU是多少。

        学生回复我说,每个订单号最长的流水线不超过30天,基本上都是7天内。而每日统计及分析的数据流水线是2内年。被正常调用查询的订单大多数都是3个月内的,只有少数是6个月以内的。与第三方核对订单基本上是半年一次。除了数据库服务器外,有2台服务器是8核32G的,专门做对外服务器,8台16核32G专门做内部处理服务器,还有一台6核32G专门做长链接的,swoole服务。而kafka、rabbitmq、Redis及MySQL9台服务器,都采用的是24核96G的,硬盘统一用的是10T一块。除了kafka、rabbitmq、Redis及MySQL这9台服务器采用了6块盘,而其他的都采用了2块盘。目前最大的问题是CPU及内存基本都是使用率40%左右,除了swoole、rabbitmq、kafka这几台达到80%左右,而硬盘的读写速度只有40%。

        听完之后,我沉默了5分钟。最后给了他一个解决思路:数据分仓已经是必然的,其次就是分业务库。首先说业务分库,比如说运营需要的统计、分析库,他的规律是2年以内的数据,那么他对应的数据只要存2.5年,超过2.5年的数据就自动删除掉(最好是存3年的),特殊情况,到总库查询。而第三方需要用到的数据也单独存储一套库,只要存储一年就行,超过的也是自动删除掉。而用户查询的话,到总库里面去查找。而运维库不要与业务库放到同一台服务器里面。运维日志最多存3年,超过的自动删除掉,但是异常IP要单独保留。再说数据分仓问题,不管是哪种业务库,都必须分层。访问率较低或者是业务重要性低的数据,可以使用机械硬盘,可以单独使用一套库,命名为冷数据层;访问率一般或是业务重要性一般的,可以使用固态硬盘或是机械硬盘,也是单独一套库,命名为温数据层;访问率高或是业务重要性高的数据,一定要使用固态硬盘或是内存库来解决,命名为热数据层。最后说一下备份服务器,留太多了。拿出4台加入rabbitmq队列,拿出2台加入到kafka队列,拿出4台做日志数据库。因IDC机房有自动发电机能力,就只要做好硬盘检测及硬盘备份就行。

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

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

相关文章

Ubuntu 22.04 安装 KVM

首先检查是否支持 CPU 虚拟化,现在的 CPU 都应该支持,运行下面的命令,大于0 就是支持。 egrep -c (vmx|svm) /proc/cpuinfo安装 Libvirt apt install -y qemu-kvm virt-manager libvirt-daemon-system virtinst libvirt-clients bridge-uti…

华为FreeBuds 6i戴久了会耳朵胀痛吗?该怎么办?

华为FreeBuds 6i戴久了,会有耳朵胀痛的感觉吗?其实可能是没选对适合自己的耳塞,给你们分享几个佩戴更舒服的方法,一起来看看~ 首先和大家说说为什么华为FreeBuds 6i戴久了不舒服,一方面是耳塞尺寸不合适,另…

数据结构-5.5.二叉树的存储结构

一.二叉树的顺序存储: a.完全二叉树: 1.顺序存储中利用了静态数组,空间大小有限: 2.基本操作: (i是结点编号) 1.上述图片中i所在的层次后面的公式应该把n换成i(图片里写错了); 2.上述图片判断i是否有左…

VLAN:虚拟局域网

VLAN:虚拟局域网 交换机和路由器协同工作后,将原先的一个广播域,逻辑上,切分为多个广播域。 第一步:创建VLAN [SW1]dispaly vlan 查询vlan VID(VLAN ID):用来区分和标定不同的vlan 由12位二进制构成 范围: 0-4…

@Autowired List<PayStrategy> payStrategies

在Java中&#xff0c;Autowired注解是Spring框架提供的一个强大的依赖注入工具&#xff0c;它允许自动地将Spring容器中的bean注入到类中。在您给出的代码片段中&#xff0c;Autowired被用来注入一个List< PayStrategy>类型的bean列表。这里有几个关键点需要解释&#xf…

Python中函数的使用方法

1 问题 在python的学习中&#xff0c;一个相同的程序可能会有多种不同的代码输入方式&#xff0c;那么函数这种方式是否方便快捷呢&#xff1f;今天我们来简单介绍函数的部分使用方法。 2 方法 定义函数&#xff1a;代码清单1Def function name (arguments):return result在上面…

手撕数据结构 —— 带头双向循环链表(C语言讲解)

目录 0.前言 1.什么是带头双向循环链表 理解带头 ​编辑 理解双向 理解循环 2.带头双向循环链表的实现 List.h文件中接口总览 具体实现 结点的定义 申请结点 初始化 打印链表 尾插 尾删 头插 头删 ​编辑​编辑 获取大小 查找 在指定位置前插入 ​编辑…

基于顺序表实现通讯录项目

目录 1.通讯录的基本构成 2.通讯录的底层原理 3.通讯录的底层——顺序表 ——————————————————————————————————————————— 正文开始 1. 通讯录的基本构成 1.1 联系人信息的主要内容 ●姓名 ●性别 ●年龄 ●电话 ●住址 1.2 数…

基于ABAQUS的传热学、热应力分析和有限元计算的相关概念和原理

背景 在工业产品生产和结构制造中&#xff0c;热分析往往是设计和生产不可或缺的环节&#xff0c;该方面的计算分析越来越受到工程界的重视。宏新环宇&#xff08;北京&#xff09;信息技术研究院有限公司特举办《ABAQUS热传导与热应力分析》研修班。研修班将系统地梳理传热学…

第33次CCF计算机软件能力认证-第4题十滴水

题干&#xff1a; 十滴水是一个非常经典的小游戏。 小 C C C 正在玩一个一维版本的十滴水游戏。 我们通过一个例子描述游戏的基本规则。 游戏在一个 1 c 1c 1c 的网格上进行&#xff0c;格子用整数 x ( 1 ≤ x ≤ c ) x(1≤x≤c) x(1≤x≤c) 编号&#xff0c;编号从左往…

【Flutter、H5、Web?前端个人总结】分享从业经历经验、自我规范准则,纯干货

前言 hi&#xff0c;正式接触web前端已经经过了两年的时间&#xff0c;从大学的java后端转型到web前端&#xff0c;再到后续转战Flutter&#xff0c;逐渐对前端有了一些心得体会&#xff0c;其实在当下前端的呈现形式一直在变化&#xff0c;无论你是用原生、还是web还是混编的…

初始项目托管到gitee教程,开箱即用

0.本地仓库与远程仓库关联&#xff08;需先在gitee创建仓库&#xff09; ①打开powershell生成ssh key ssh-keygen -t ed25519 -C "Gitee SSH Key"-t key 类型-C 注释 生成成功如下&#xff0c;并按下三次回车 ②查看公私钥文件 ls ~/.ssh/输出&#xff1a; id_…

如何将智合同与现有的企业管理系统进行集成?

#企业管理系统 #系统集成 #人工智能 #API接口 #安全性 #要素提取 #智能审查 #合同智能对比 随着人工智能技术的发展&#xff0c;合同智能应用赋能企业管理&#xff0c;简化企业管理流程&#xff0c;节约时间和人力成本&#xff0c;提高企业管理质量。智合同利用人工智能技…

怎么提取伴奏?5个人声分离方法一步搞定!

在进行音乐创作或混音等操作时&#xff0c;提取出音乐中的伴奏是一个常见的需求。伴奏是指音乐中除了主旋律和歌唱部分之外的音轨&#xff0c;通常包括鼓、贝斯、吉他等乐器的演奏&#xff0c;提取出伴奏可以让我们更方便地对音乐进行处理。 本文分享几个可以提取伴奏的方法&a…

el-table表头加红色星标

代码&#xff1a; <el-table-column prop"name" label"姓名" width"auto"><template #header><span style"color: red; margin-right: 4px">*</span><span>姓名</span></template></el…

Mysql—高可用集群MHA

1:什么是MHA&#xff1f; MHA&#xff08;Master High Availability&#xff09;是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点的问题。 MySQL故障切换过程中&#xff0c;MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切…

WordPress 中使用 wp_localize_script 从 PHP 传递参数给 JavaScript

WordPress 的 wp_localize_script 函数从它名字可以看出它是用来进行前端本地化的&#xff0c;它的工作方式是加载翻译之后的文本&#xff0c;接着将它们当做一个 JavaScript 对象输出到 HTML 中&#xff0c;然后 JS 脚本就用该对象去输出对应语言的文本了。 使用 wp_localize…

22个无版权的4K高清视频素材网站,各种风格视频都有!

平时我也会做一些短视频和宣传片&#xff01; 所以&#xff0c;对找素材这回事不在话下&#xff0c;国内外也有不少高清无水印的视频素材网站&#xff0c;今天就分享一些高清剪辑必备的视频素材渠道&#xff0c;不少也是免费哒&#xff0c;平时需要找素材的同学千万不要错过啦…

解决 Django 数据库迁移报错:无法添加带有 `auto_now_add=True` 的字段20241008

解决 Django 数据库迁移报错&#xff1a;无法添加带有 auto_now_addTrue 的字段 引言 在使用 Django 进行开发时&#xff0c;数据库迁移是不可避免的一部分。然而&#xff0c;添加新字段特别是带有 auto_now_addTrue 的日期时间字段时&#xff0c;可能会遇到一些令人头疼的错…

Python中的数据可视化艺术:用Matplotlib和Seaborn讲故事

Python中的数据可视化艺术&#xff1a;用Matplotlib和Seaborn讲故事 数据可视化不仅仅是图表的绘制&#xff0c;更是通过视觉形式传达复杂信息的一种艺术。使用Python中的两个强大的库——Matplotlib和Seaborn&#xff0c;可以将数据转化为清晰、优美的图表&#xff0c;帮助我…