Linux备份服务及rsync企业备份架构(应用场景)
备份服务概述
备份服务:需要使用到脚本,打包备份,定时任务.
备份服务:rsyncd服务,不同主机之间数据传输.
- 特点:
- rsync是个服务也是命令
- 使用方便,具有多种模式
- 传输数据的时候是增量传输
增量与全量:
全量 :无论多少数据全部推送走(scp)
增量:只会把修改新建了的文件传输走(rsync)
把/etc/目录传输到另外一台机器的/tmp/下面
scp -r /etc/sysconfig/ root@192。168.28.131:/tmp/
rsync -avz /etc/sysconfig/ root@192.168.28.131:/mnt/
rsync企业应用场景:
应用场景(业务场景) 应用建议
rsync作为命令使用 临时拉取,推送数据.未来这个需求可以通过scp命令实现.
定时备份:rsync服务+定时任务 定时备份,定期备份案例.(定时任务进行备份+通过rsync传输备份)
实时同步:rsync服务+sersync/lsyncd实现实时同步 解决存储服务单点问题
rsync服务与异地容灾找一个异地的服务器存放备份
注意:单点问题:同一个功能/同一个服务,只有1台节点.
rsync不同的模式
1.1rsync本地模式
rsync -a /etc/ /tmp/
rsync -a /etc /opt/
在rsync对于目录 /etc/ /etc是有区别的
/etc /etc目录+目录的内容
/etc/ /etc/目录下面的内容
1.2远程模式
格式
rsync -a 源文件 目标
推送:rsync /etc/hostname root@192.168.28.131:/tmp
拉取:rsync root@192.168.28.131:/etc/hosts /opt/
#推送/etc/hostname到192.168.28.131的/tmp/目录
rsync -a /etc/hostname root@192.168.28.131:/tmp
#推送/etc目录及目录内容到131的/tmp下面
##推送第1次 全量
rsync -av /etc root@192.168.28.131:/tmp
##推送第2次 发现没有推送
rsync -av /etc root@192.168.28.131:/tmp
##创建文件再次推送
touch /etc/wulin.txt
rsync -av /etc root@192.168.28.131:/tmp
#通过scp推送 /etc目录及目录内容到131的 /opt下面
scp -r /etc/ root@192.168.28.131:/opt/
-r递归传输
1.3守护进程模式
服务使用流程
部署
配置
启动,使用
优化
故障
自动化
(监控,日志,安全,自动部署,容器)
1.3.1检查是否安装
检查安装 更新
yum install -y rsync
检查软件包内容
/etc/rsyncd.conf #配置文件
/usr/bin/rsync #命令
/usr/lib/systemd/system/rsyncd.service #systemctl对应的配置文件
1.3.2进行配置
[root@backup /wulin]# cat/etc/rsyncd.conf
#created by wulin 2024-5-12
##rsyncd.conf start##
fake super =yes
uid = rsync
gid = rsync
use chroot = no
max connections = 2000
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
#hosts allow = 10.0.0.0/24
#hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
#####################################
[data]
comment = www by wulin 2024-5-12
path = data
#启动服务
systemctl enable rsyncd
systemctl start rsyncd
#检查进程
ps -ef |grep rsync
#检查端口
ss -lntup |grep rsync
1.3.2后续配置
#1.添加虚拟用户
useradd -s /sbin/nologin -M rsync#2.创建密码文件
密码文件格式:用户名:密码
echo 'rsync_backup:123 ' >/etc/rsync.password
chmod 600 /etc/rsync.password#3.共享目录与权限
mkdir /data/#启动服务
systemctl start rsyncd
systemctl enable rsyncd
#访问测试:
rsync -avz /etc/hosts rsync_backup@192.168.28.41::data
rsync_backup是服务端配置文件中的认证用户
data表示模块名字
本地测试:
[root@backup ~]# rsync -av /etc/hostname
rsync_backup@192.168.28.41::data
Password:
sending incremental file list
hostname
sent 102 bytes
received 43 bytes 41.43 bytes/sec
total size is 7
speedup is 0.05[root@backup ~]# ll /data/
total 4
-rw-r--r-- 1 rsync rsync 17:02 hostname
#客户端测试:
##基本测试
[root@nfs01 ~]# rsync -avz /etc/hosts
rsync_backup@172.16.1.41::data
Password:
sending incremental file list
hosts
sent 214 bytes
received 43 bytes 73.43 bytes/sec
total size is 329 speedup is 1.28
##免密码传输数据到服务器
[root@nfs01 ~]#echo ‘123’ >/etc/rsync.passwords
[root@nfs01 ~]#chmod 600 /etc/rsync.passwords
[root@nfs01 ~]#
[root@nfs01 ~]#rsync -avz /etc/hosts rsync_backup@172.16.1.41::data --password-file=/etc/rsync.passwords
sending incremental file list
sent 47 bytes received 20 bytes 134.00 bytes/sec
total size is 333 speedup is 4.97
传到客户端
[root@nfs01 ~]#rsync -avz /tmp/etc.tar.gz rsync_backup@172.16.1.41::data --password-file=/etc/rsync.passwords
sending incremental file list
etc.tar.gz
1.4守护进程补充
uid,gid与auth user
1.用户执行命令:rsync -avz /tmp/etc.tar.gz rsync_backup@backup::data --passwordfile=/etc/rsync.password
2.服务端收到数据:判断rsync_backup用户,然后等待输入密码
3.把用户名和密码与配置文件里面对比auth user和secretsfile
4.通过后,传输数据
5.数据到达服务器所有者被修改为uid和gid指定的(rsync)
6.数据写入data模块(/data/)目录下面.
免密的方式连接服务端(命令行指定客户端密码文件)
客户端密码文件只存储密码即可
echo 123 >/etc/client.rsync
chmod 600 /etc/client.rsync
rsync -avz /etc/hosts
rsync_backup@172.16.1.41::data --password-
file=/etc/client.rsync
访问控制-安全措施
hosts allow只准许指定的ip或网段访问
hosts deny拒绝.
配置只准许172.16.1.0/24网段访问
2.1rsync选项
-a
- -rlptgoD
- -r递归复制
- -l复制软连接
- -p保持权限不变
- -m保持修改时间不变
- -o所有者不变
- -g用户组不变
- -D --devices --specials设备与特殊文件
-v 显示过程
-z 传输数据时候进行压缩(公网)
-p 显示每rsync -av . root@192.168.28.131:/tmp/ --exclude=04rsync -av . root@192.168.28.131:/mnt --exclude={04,05}个文件传输过程(进度条)断点续传–partial --progress
–bwlimit 限速注意不要与-z一起使用
–exclude、–exclude-from排除
–delete目标目录与源目录保持一致的传输
限速并传输
rsync -aP --bwlimit=500kb /tmp/1g
192.168.28.131:/mnt/传输并排除
rsync -av . root@1192.168.28.1311:/tmp/ --exclude=04
rsync -av .
root@192.168.28.131:/mnt --exclude=
{04,05}通过文件内容进行排除
[root@backup /wulin]# cat /tmp/paichu.txt
03
05
10[root@backup /wulin]# rsync -av .
root@192.168.28.131:~ --exclude-from=/tmp/paichu.txt保持源与目标数据一致
rsync -avP --delete . root@192.168.28.131:/tmp/
故障总结
password mismatch
backup rsyncd[3177]: authfailed on module data from UNKNOWN(10.0.0.41) for rsync_backup: no secretsfile
no secrets file
selinux和防火墙
项目案例
可能来自于老大的一句话:网站数据需要备份,你操作一下
接下来的内容需要你自己规划,备份什么内容?如何备份?如何收集备份(统一存放备份)?保留时间?都是什么系统?什么系统的版本?
-
备份什么?
-
数据(用户数据库)数据库 存储
-
配置文件
-
脚本和代码
-
网站代码
-
日志收集
-
如何备份?
-
如何收集?
rsync服务收集备份(rsync客户端推送备份到rsync服务器)
2.2项目流程:
1)环境准备
1)环境准备
角色 主机 运行服务 | ||
---|---|---|
存放备份 backup | rsync服务端 | |
生成备份 nfs01 | rsync客户端,其他服务 | |
生产备份 web01 | rsync客户端,其他服务 |
-
项目步骤
这里为操作步骤,未来的工作还会有沟通(与其他部门进行商讨)定期汇报
| 步骤说明 详细内容 | |
| ------------------------------------------------------------ | ---- |
| rsync服务端并调试 服务端配置 、back目录 | |
| rsync客户端节点配置脚本(备份) 备份 推送 清理 | |
| 其他节点匹配定时任务 定时运行脚本 | |
| 在备份服务器上检查并发送邮件 在rsync服务端检查备份并发送邮件 | | -
配置与检查rsync服务端与客户端
vim/etc/rsyncd.conf
[root@backup ~]#mkdir -p /backup/ #创键目录chown -R rsync.rsync /backup/ll -d /backup/检查
改完了配置文件进行重启
systemctl restart rsyncd(端口号为873)
ch在客户端测试
rsync -av /etc/hostname rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.passwords
sending incremental file list
hostname
在备份服务器看是否传输过来
ll /backup/
cat /backup/hostname
4)书写备份脚本
书写脚根据企业,任务需求合理高效进行书写脚本,写脚本在多窗口化进行编写边测试(整理这个的需要命令,写成脚本(引用变量名实现脚本万能功能–在相同类型机器上省时间省力气–当然注意整体磁盘空间内存信息,在架构搭建初期各部门进行会议交流))
在nf01这个客户端上vim /server/scripts/bak_conf.sh(写脚本编写脚本边进行测试)[root@nfs01 ~]#hostname -I[root@nfs01 ~]#hostname -I |awk '{print $2}'
在存储服务器上对推送脚本进行测试
mkdir -p /backup/172.16.1.131
tar zcf /backup/172.16.1.131/etc.tar.gz /etc /var/spool/cron/
ll /backup/172.16.1.131/
tree /backup/(企业数量文件内容特别多的时候,可以采用树状结构)
rsync -a /backup/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.passwords
检查服务端是否推送过来
tree /backup/
测试成功,将脚本写入脚本
继续在客户端测试删除旧的客户端备份命令
[root@nfs01 ~]#find /backup/ -type f -name “*.tar.gz”
[root@nfs01 ~]#find /backup/ -type f -name “*.tar.gz” -mtime +7 |xargs rm -f
(这里xargs后不支持别名 ,rm删文件会接提示)
测试成功写入脚本!
整个备份服务器脚本配置文件:
脚本运行完进行测试
rm -fr /backup/
把服务端的ip可以进行删掉,这里如果删除了backup目录,备份服务器会报错
删掉客户端目录并tree
运行脚本并检查服务端是存在backup
未来我们只需要调整脚本备份内容(目录)ip即可
写定时任务:
crontab -e
查看日志tail -f /var/log/cron
date
查看结果(每2秒进行执行)
查看服务端:
(说明测试没有问题,可以在定时任务按照企业时间需求及追加目录进行配置
5)服务端备份脚本调试
检查备份并清除旧的备份脚本
vim /server/scripts/check.sh
find /backup/ -type f -name "*.tar.gz" |xargs ls -lhd
find /backup/ -type f -name "*.tar.gz" |awk '{print $NF,$5}'
find /backup/ -type f -name "*.tar.gz" |awk
-F '[ /]+' '{print $(NF-1),NF,$5}'
让内容多一点将nfs01客户端脚本文件传入到web01服务器上
[root@nfs01~]#scp/server/scripts/bak_conf.sh 192.168.28.7:/server/scripts/
[root@nfs01 ~]#scp /etc/rsync.password 192.168.28.7:/etc
[root@nfs01 ~]#scp /var/spool/cron/root 192.168.28.7:/var/spoo
l/cron/
检查传输到web01服务器内容
[root@web01 ~]#ll /etc/rsync.password
[root@web01~]#ll/etc/rsync.password /server/scripts/bak_conf.sh
[root@web01 ~]#ll /etc/rsync.password /var/spool/cron/root
[root@web01~]#head-30/etc/rsync.password /server/scripts/bak_conf.sh /var/spool/cron/root
在web01服务器运行bak_conf.sh脚本
在备份服务器进行检查如果成功会有172.16.1.7这一行
[root@backup ~]#find /backup/ -type f -name “*.tar.gz” |awk -F ‘[ /]+’ ‘{print $(NF-1),NF,$5}’
测试统计结果命令并写入脚本:
[root@backup ~]#awk -F: ‘BEGIN{print “用户名”,“UID”}{print 1 , 1, 1,3}’ /etc/passwd
完成脚本(清除旧的脚本统计结果并将结果发送到邮件)
[root@backup /backup]#sh /server/scripts/check.sh
如果在邮箱中没有见到信息,在垃圾邮箱查找(被邮箱系统屏蔽掉了)
配置定时任务:
crontab -e
然后观察日志文件及邮箱信息
[root@backup /backup]#tail -f /var/log/cron
最后将结果追加到result.txt
6)增加校验功能
简单理解校验测试(知识理解):
- 检查传输中是否有变化及检查的那个文件md5:
检查多个检验文件(find+md5)
#给/etc/下面所有的文件创建MD5保存到指定文件中
find /etc/ -type f | md5sum >etc-all.md5
#进行校验
md5sum -c etc-all.md5
#修改/etc/下某个文件比如增加个"#"
vim /etc/rsyncd.conf
#进行校验
md5sum -c etc-all.md5
#只显示md5
异常的文件
md5sum --quiet -c etc-all.md5
具体应用:
- 客户端备份的时候生成备份,创建指纹信息
安全防护措施:
给命令和较为固定的配置设置md5,定期校验
作图为清理旧的备份服务端脚本
rsync2022年漏洞
影响的版本:3.2.5版本验证不足情况
检查rsync版本:
检查yum源是否有新的rsync版本,在装yum最新版本之前,我们自己的rsync比它最新的版本很低:
去官网找rsync包:下载 Samba
下载 Sambarsync (samba.org)
https://rsync.samba.org/
二进制别人已经弄好了,我们只需要进行解压使用,但是不一定能打开
添加链接描述
https://download.samba.org/pub/rsync/binaries/
这里的版本还不能进行满足,下载这里最
新的rsync包,看是否还能进行满足:
##下载最新的rsync包
wget https://download.samba.org/pub/rsync/binaries/centos-7.9-x86_64/latest.tar.gz
[root@backup ~]#tar tf latest.tar.gz
[root@backup ~]#tree -F usr/
usr/
└── local/
├── bin/
│ ├── rsync*
│ └── rsync-ssl*
└── share/
├── doc/
│ ├── COPYING
│ ├── NEWS.md
│ └── README.md
└── man/
├── man1/
│ ├── rsync.1
│ ├── rsyncd.conf.5
│ └── rsync-ssl.1
└── man5/
会发现还是满足不了
- yum源不行
- 软件包不行
- 官网二进制也不行
- 我们使用最本制的方式:编译安装(这里有3.2.7的版本)
通过yum update rsync升级,查到的版本还是低,但是升级说不定修复了补丁(说不来)厂商已经发布升级补丁修复漏洞方式(不方便升级版本的时候使用补丁)
还是要进行改源代码–》回到本质还是编译
还可以通过漏洞扫描工具,针对具体漏洞具体处理
相关文章:

Linux备份服务及rsync企业备份架构(应用场景)
备份服务概述 备份服务:需要使用到脚本,打包备份,定时任务. 备份服务:rsyncd服务,不同主机之间数据传输. 特点: rsync是个服务也是命令使用方便,具有多种模式传输数据的时候是增量传输 增量与全量: 全量 :无论多少数据全部推…...

用手机打印需要下载什么软件
在快节奏的现代生活中,打印需求无处不在,无论是工作文件、学习资料还是生活小贴士,都可能需要一纸呈现。然而,传统的打印方式往往受限于时间和地点,让人倍感不便。今天,就为大家推荐一款便捷又省钱的手机打…...
Storm在Java中的应用
Storm在Java中的应用主要体现在构建分布式实时计算系统,用于处理大数据流。以下是一些Storm在Java中的具体应用场景和步骤: 实时数据处理:Storm可以实时地接收、处理和传输数据。对于需要快速响应的应用场景,如在线广告、金融交易…...
Java 面试题日常练习
### 基础知识 1. **什么是 JVM?解释其架构。** - JVM(Java Virtual Machine)是 Java 程序的运行时环境。其架构包括类加载器子系统、运行时数据区(堆、栈、本地方法栈、PC 寄存器、方法区)、执行引擎和本地方法接口…...

卷爆短剧出海:五大关键,由AIGC重构
短剧高温下,谈谈AIGC的助攻路线。 短剧,一个席卷全球的高温赛道。 以往只是踏着霸总题材,如今,内容循着精品化、IP化的自然发展风向,给内容、制作、平台等产业全链都带来新机,也让短剧消费走向文化深处&am…...

LLM实战:当网页爬虫集成gpt3.5
1. 背景 最近本qiang~关注了一个开源项目Scrapegraph-ai,是关于网页爬虫结合LLM的项目,所以想一探究竟,毕竟当下及未来,LLM终将替代以往的方方面面。 这篇文章主要介绍下该项目,并基于此项目实现一个demo页面&#x…...
Flutter底部导航栏和顶部Tab切换完整代码
题记 —— 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天。 目前市场上绝大部分App的布局结构基本统一:底部导航顶部导航,底部导航页里嵌套顶部导航栏,顶部导航页里嵌套图文…...
Jupyter 使用手册: 探索交互式计算的无限可能
什么是 Jupyter? Jupyter 是一个开源的 Web 应用程序,可用于创建和共享包含实时代码、可视化和叙述性文本的文档。它最初是作为 IPython 项目的一部分开发的,后来发展成为支持多种编程语言的交互式计算环境。 应用场景 作为一个开源的交互式计算环境,Jupyter 在以下几个领域…...

IP地址显示“不安全”怎么办|已解决
解决IP地址显示“不安全”的问题,通常需要确保网站或服务使用HTTPS协议进行加密通信,可以通过部署SSL证书来解决,以下是具体的解决步骤: 1 申请IP地址SSL证书:网站管理员应向证书颁发机构(CA)申…...
国内安全实用的图纸透明加密软件厂家,靠谱的透明加密软件供应商--安秉信息
设计类图纸安全已经成为企业需要注意的问题,在当前互联网设计行业、汽车制造设计、机械制造行业等相关企业都需要对企业内部图纸的保护需求,现在在互联网中,企业数据泄露的事情已经层出不穷,企业对核心图纸的数据安全工作需要重点…...

【kubernetes】探索k8s集群中kubectl的陈述式资源管理
目录 一、k8s集群资源管理方式分类 1.1陈述式资源管理方式:增删查比较方便,但是改非常不方便 1.2声明式资源管理方式:yaml文件管理 二、陈述式资源管理方法 2.1查看版本信息 2.2查看资源对象简写 2.3配置kubectl自动补全 2.4node节点…...
VUE 创建组件常见的几种方式
在 Vue.js 中,组件的创建和使用通常遵循以下三种方法: 1. 全局组件 全局组件是通过 Vue.component() 方法创建的,注册后的组件可以在任何新创建的 Vue 实例(包括根实例)的模板中使用。 Vue.component(my-component,…...
华为OBS命令行简单使用
华为OBS(Object Storage Service)是一种云存储服务,提供了高可靠、高性能、安全的数据存储能力。通过使用OBS的命令行工具obsutil,用户可以方便地进行文件上传、下载、删除等操作,而无需依赖图形界面。下面,…...
避免超卖!深入解析高并发分布式锁架构
1.引入并发控制的必要性 并发控制是一切分布式系统设计的基石,确保数据一致性、系统稳定性和最终的用户体验。要理解为什么需要并发控制,就必须先探讨并发对系统可能造成的问题。 1.1. 理解并发问题 多线程和分布式环境中,无数的进程和线程…...
latent diffusion 原理+代码
latent diffusion - Github 以下代码来自 作者: 李宝璐 链接: https://libaolu312.github.io/2023/11/27/Latent-Diffusion-Models-原理和代码/ 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处&…...
Unity开发——好用的数值概率公式
1、血量、伤害两个因素作用,击杀目标 正常状态下:hp - attackValue; 特殊状态下:attackValue *2; //伤害翻倍 如飞机/坦克大战中,击杀对方;受到伤害时,装备道具磨损失效; public int…...

微信小程序的自定义组件
一、创建自定义组件 (1)定义: 把页面重复的代码部分封装成为一个自定义组件,以便在不同的页面中重复使用,有助于代码的维护。 (2)组成: 自定义组件的组成:json文件&a…...
【算法刷题day57】Leetcode:739. 每日温度、496.下一个更大元素 I
文章目录 Leetcode 739. 每日温度解题思路代码总结 Leetcode 496.下一个更大元素 I解题思路代码总结 草稿图网站 java的Deque Leetcode 739. 每日温度 题目:739. 每日温度 解析:代码随想录解析 解题思路 维护一个单调栈,当新元素大于栈顶&a…...

【EXCEL_VBA_实战】两组数据比对是否一致(字符串数组)
工作背景:比对两组数据是否一致(位置非一一对应) 思路构建:两组数据转换为两组字符串数组,比对所包含元素是否相同 问题点:A数组的第一个元素不一定与B数组的第一个元素对应,此时无法通过公式…...

寻找峰值 ---- 二分查找
题目链接 题目: 分析: 因为题目中要找的是任意一个峰值即可, 所以和<山脉数组的峰值索引>这道题差不多因为峰值左右都小于峰值, 所以具有"二段性", 可以使用二分查找算法如果nums[mid] < nums[mid 1], mid一定不是峰值, 所以left mid 1如果nums[mid] &…...

Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...

04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...

【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...

java高级——高阶函数、如何定义一个函数式接口类似stream流的filter
java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用(Math::max) 2 函数接口…...

HTTPS证书一年多少钱?
HTTPS证书作为保障网站数据传输安全的重要工具,成为众多网站运营者的必备选择。然而,面对市场上种类繁多的HTTPS证书,其一年费用究竟是多少,又受哪些因素影响呢? 首先,HTTPS证书通常在PinTrust这样的专业平…...

RabbitMQ 各类交换机
为什么要用交换机? 交换机用来路由消息。如果直发队列,这个消息就被处理消失了,那别的队列也需要这个消息怎么办?那就要用到交换机 交换机类型 1,fanout:广播 特点 广播所有消息:将消息…...

未授权访问事件频发,我们应当如何应对?
在当下,数据已成为企业和组织的核心资产,是推动业务发展、决策制定以及创新的关键驱动力。然而,未授权访问这一隐匿的安全威胁,正如同高悬的达摩克利斯之剑,时刻威胁着数据的安全,一旦触发,便可…...