小阿轩yx-KVM+GFS 分布式存储系统构建 KVM 高可用

news2025/1/11 18:50:54

小阿轩yx-KVM+GFS 分布式存储系统构建 KVM 高可用

案例分析

案例概述

  • 使用 KVM 及 GlusterFS 技术,结合起来实现 KVM 高可用
  • 利用 GlusterFS 分布式复制卷对 KVM 虚拟机文件进行分布存储和冗余

分布式复制卷

  • 主要用于需要冗余的情况下把一个文件存放在两个或两个以上的节点,当其中一个节点数据丢失或损坏后,KVM 仍然能够通过卷组找到另一个节点上存储的虚拟机文件,保证虚拟机正常运行
  • 节点修复后,GlusterFS 会自动同步同一组卷组里有数据的节点数据

案例前置知识点

GlusterFS 分布式文件系统简介

  • 由 Gluster 公司创始人兼首席执行官 Anand BabuPeriasamy 编写
  • 于 2011 年 10 月 7 日被 Red Hat 收购

特性

  • 可扩展的分布式文件系统
  • 可运行与廉价的普通硬件上
  • 提供容错功能
  • 也可以给大量用户提供总体性能较高的服务
  • 可以根据存储需求快速调配存储,内含丰富的自动故障转移功能
  • 且摒弃集中元数据服务器的思想
  • 适用于数据密集型任务的可扩展网络文件系统
  • 免费开源

优势

  • 可用于大型的、分布式的、对大量数据进行访问的应用

特点

  • GlusterFS 体系结构,将计算、存储和 |0 资源聚合到全局名称空间中,每台服务器都被视为节点,通过添加附加节点或向每个节点添加额外存储来扩展容量。通过在更多节点之间部署存储来提高性能。
  • GlusterFS 支持基于文件的镜像和复制、分条、负载平衡、故障转移、调度、磁盘缓存、存储配额、卷快照等功能。
  • GlusterFS 各客户端之间无连接,本身依赖于弹性哈希算法,而不是使用集中式或分布式元数据模型。
  • GlusterFS 通过各种复制选项提供数据可靠性和可用性,例如复制卷、分布卷。

案例环境

主机

操作系统

主机名/IP地址

主要软件及版本

服务器

CentOS7.9

node1/192.168.10.101

GlusterFS 3.10.2

服务器

CentOS7.9

node2/192.168.10.102

GlusterFS 3.10.2

服务器

CentoS7.9

node3/192.168.10.103

GlusterFS 3.10.2

服务器

CentoS7.9

node4/192.168.10.104

GlusterFS 3.10.2

服务器

CentoS7.9

kvm/192.168.10.201

KVMGluster-client

服务器

CentoS7.9

kvm/192.168.10.202

KVMGluster-client

案例需求
  • 部署 GlusterFS 文件系统
  • 实现 KVM 虚拟主机不会因宿主机宕机而宕机
案例实现思路
  • 安装 KVM
  • 所有节点部署 GlusterFS
  • 客户端挂载 GlusterFS
  • KVM 使用挂载的 GlusterFS 目录创建虚拟机
案例实施
部署 GFS 高可用分布式存储环境

安装部署 KVM 虚拟化平台

部署 GlusterFS

先开启四台机器,并会话同步

  • 192.168.10.101
  • 192.168.10.102
  • 192.168.10.103
  • 192.168.10.104

关闭防火墙、内核机制

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0

修改 hosts 文件

[root@localhost ~]# vim /etc/hosts
//添加节点
192.168.10.101 node1
192.168.10.102 node2
192.168.10.103 node3
192.168.10.104 node4
192.168.10.201 kvm01
192.168.10.202 kvm02

设置好阿里巴巴仓库

[root@localhost ~]# rm -rf /etc/yum.repos.d/*
[root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost ~]# curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
[root@localhost ~]# yum clean all

安装 GlusterFS 包

[root@localhost ~]# yum -y install centos-release-gluster 

进入目录查看文件

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
Cent0s-Base.repo ent0S-Gluster-9.mepo Cent0S-Storage-common.repo epel.repo

查看当前查看状态

[root@localhost ~]# yum repolist

这一步的状态都是0,下面解决方法

修改 GlusterFS 文件

[root@localhost yum.repos.d]# vim CentOS-Gluster-9.repo
//修改前
mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=$releasever&repostorage-qluster-9
#baseurl=http://mirror.centos,org/$contentdir/$releasever/storage/$basearch/gluste~-9/
//修改后
#mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=$releasever&repostorage-qluster-9
baseurl=http://mirrors.aliyun.com/$contentdir/$releasever/storage/$basearch/gluste~-9/

再次查看

[root@localhost ~]# yum repolist
源标识                      源名称                                            状态
base/7/x86 64              Cent0S-7- Base - mirrors.aliyun.com               10,072
centos-gluster9/7/x86_64   Cent0s-7 - Gluster 9                              181
epel/x86_64                Extra Packages for Enterprise Linux 7 - x86 64    13,791
extras/7/x86_64            Cent0S-7- Updates - mirrors.aliyun.com            526
updates/7/x86 64           Cent0S-7-Extras - mirrors.aliyun.com              6,173
repolist: 30,743

安装软件包

[root@localhost ~]# yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

启动服务并设置开机自启

[root@localhost ~]# systemctl start glusterd
[root@localhost ~]# systemctl enable glusterd

这里取消会话同步

在101上加入其它节点

[root@localhost ~]# gluster peer probe node2
peer probe: success
[root@localhost ~]# gluster peer probe node3
peer probe: success
[root@localhost ~]# gluster peer probe node4
peer probe: success

查看状态

[root@localhost ~]# gluster peer status
Hostname: node2
Uuid:b5f43fc7-2f68-4bf9-8721-eb6d1bbdd98b
State: Peer in Cluster (connected)

Hostname: node3
Uuid:bblcdlad-f396-403e-bf68-c96147466043
State: Peer in Cluster (Connected)

Hostname: node4
Uuid: ea66c509-4fcf-4b17-9bf-1d7b00608a7e
State: Peer in Cluster (Connected)

开启会话同步

创建目录

[root@localhost ~]# mkdir /data

取消会话同步

在101上创建分布式复制卷

[root@localhost ~]# gluster volume create models replica 2 node1:/data node2:/data node3:/data node4:/data force
volume create: models: success: please start the volume to access data

启动

[root@localhost ~]# gluster volume start models

查看信息

[root@localhost ~]# gluster volume info models

201和202恢复kvm01快照,XShell 连接客户端

  • 192.168.10.201
  • 192.168.10.202

开启会话同步

打开 hosts 文件添加节点

[root@localhost ~]# vim /etc/hosts
//添加节点
192.168.10.101 node1
192.168.10.102 node2
192.168.10.103 node3
192.168.10.104 node4

安装 glusterfs 客户端软件

[root@kvm01 ~]# yum -y install glusterfs glusterfs-fuse

创建挂载目录

[root@kvm01 ~]# mkdir /kvmdata

挂载 models 卷

[root@kvm01 ~]# mount -t glusterfs node1:models /kvmdata/

修改 fstab 文件

[root@localhost ~]# vi /etc/fstab
//添加配置
node1:models        /kvmdata     glusterfs  defaults,_netdev  0 0

查看挂载卷

[root@kvm01 ~]# df

取消会话同步

进入目录
[root@kvm01 ~]# cd /opt
在201上打开 Xftp把用到的系统镜像上传到/opt目录中。这里直接使用CentOS官方提供的qcow2格式的系统镜像(CentOS-7-x86_64-GenericCloud-2009.qcow2),这个镜像可以直接部署到kvm或openstack的平台中

 拷贝镜像到新目录下
[root@kvm01 opt]# cp CentOS-7-x86_64-GenericCloud-2009.qcow2 /kvmdata/test01.qcow2

为系统镜像设置密码

[root@kvm01 ~]# virt-customize -a /kvmdata/test01.qcow2 --root-password password:123
[  0.0] Examining the guest ...
[ 17.3] Setting a random seed
[ 17.4] Setting passwords
[ 19.3] Finishing off
用新的镜像文件生成虚拟机
[root@kvm01 opt]# virt-install --name=test01 -r 1024 --vcpus=1 --disk device=disk,bus=virtio,path='/kvmdata/test01.qcow2',size=10 -w bridge:br0 --virt-type=kvm --boot hd
登录测试
[root@kvm01 opt]# virt-manager
测试实时迁移环境

配置kvm01的无密码登录环境(生成密钥对)

[root@kvm01 ~]# ssh-keygen -t rsa

把公钥拷贝给kvm02

[root@kvm01 ~]# ssh-copy-id kvm02

kvm01留一份

[root@kvm01 ~]# ssh-copy-id kvm01

配置kvm02的无密码登录环境(生成密钥对)

[root@kvm02 ~]# ssh-keygen -t rsa

拷贝给kvm01

[root@kvm02 ~]# ssh-copy-id kvm01

再拷贝给自己

[root@kvm02 ~]# ssh-copy-id kvm02

将 kvm01 迁移到 kvm02 上

[root@kvm01 opt]# virsh migrate --persistent --undefinesource test01 qemu+ssh://kvm02/system

查看状态

[root@kvm01 opt]# virsh list --all
Id            名称        状态
--------------------------------

查看 kvm02 上的状态

[root@kvm01 opt]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 1     test01                         running

把 kvm02 迁回到 kvm01上

[root@kvm01 opt]# virsh migrate --persistent --undefinesource test01 qemu+ssh://kvm01/system

202上查看状态

[root@kvm02 ~]# virsh list --all
Id        名称        状态
---------------------------------

201再查看状态

[root@kvm01 opt]# virsh list --all
Id        名称        状态
---------------------------------
3         test01      running
创建虚拟机资源

退出 /opt 目录,为配置文件创建共享目录

[root@kvm01 ~]# mkdir /kvmdata/config

将 test01 的配置文件拷贝到共享目录

[root@kvm01 ~]# cp /etc/libvirt/qemu/test01.xml /kvmdata/config/

关闭 test01

[root@kvm01 ~]# virsh shutdown test01
域    test01 被关闭

取消定义 test01 虚拟机

[root@kvm01 ~]# virsh undefine test01
域    test01 已经被取消定义

查看状态

[root@kvm01 ~]# virsh list --all
Id        名称        状态
--------------------------------

重新定义 test01 虚拟机

[root@kvm02 ~]# virsh define /kvmdata/config/test01.xml
定义域    test01 (从 /kvmdata/config/test01.xml)

查看状态

[root@kvm01 ~]# virsh list --all
Id        名称        状态
---------------------------------
-         test01      关闭

启动 test01

[root@kvm01 ~]# virsh start test01
域 test01 已开始

再查看状态

[root@kvm01 ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 6     test01                         running

202 进入目录并查看状态

[root@kvm02 ~]# cd /kvmdata/
[root@kvm02 kvmdata]# ls
test01.qcow2
[root@kvm02 kvmdata]# virsh list --all
Id                名称            状态
--------------------------------------
部署群集

这里201和202会话同步

设置好阿里巴巴仓库

[root@kvm01 ~]# rm -rf /etc/yum.repos.d/*
[root@kvm01 ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@kvm01 ~]# curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
[root@kvm01 ~]# yum clean all

安装群集组件(201和202都要安装)

[root@kvm01 ~]# yum -y install pcs pacemaker fence-agents-all
[root@kvm02 ~]# yum -y install pcs pacemaker fence-agents-all
  • Pacemaker 是一个集群管理器。它利用OpenAIS 或 heartbeat提供的消息和成员能力,由辅助节点和系统进行故障检测和回收,实现性群集服务(亦称资源)的高可用性。
  • Fence agent是集群管理中的一个概念,用于在发生电源故障或其他故障时确保集群的稳定性。
  • pcs 是集群管理的一个守护进程,利用pcs提供的工具可以对集群环境进行状态的管理

查看 passwd 检查 hacluster 账号

[root@kvm01 ~]# cat /etc/passwd
hacluster:x:189:189:cluster user:/home/hacluster:/sbin/nologin

设置密码

[root@kvm01 ~]# passwd hacluster

  • 两台 kvm 机器密码要一致

启动服务并设置开机自启

[root@kvm01 ~]# systemctl start pcsd
[root@kvm01 ~]# systemctl enable pcsd
Created symlink from /etc/systemd/system/multi-user.target.wants/pcsd.service to
/usr/lib/systemd/system/pcsd.service.

取消会话同步

认证组成群集的节点(只在kvm01上操作)

[root@kvm01 ~]# pcs cluster auth kvm01 kvm02 -u hacluster -p aptech
kvm01: Authorized
kvm02: Authorized

自动生成配置文件(只在kvm01上操作)

[root@kvm01 ~]# pcs cluster setup --name cluster-kvm kvm01 kvm02

启动群集(只在kvm01上操作)

[root@kvm01 ~]# pcs cluster start --all
kvm01: Starting Cluster (corosync)...
kvm02: Starting Cluster (corosync)...
kvm0l: Starting Cluster (pacemaker)...
kvm@2: Starting Cluster (pacemaker)...

设置开机自启

[root@kvm01 ~]# pcs cluster enable --all
kvm01: Cluster Enabled
kvm02: Cluster Enabled
  • enable:将群集设置为开机自启

201和202查看pcs群集状态

[root@kvm01 ~]# pcs status

2 nodes configured
0 resource instances configured

Online: [ kvm01 kvm02 ]

No resource
[root@kvm02 ~]# pcs status

2 nodes configured
0 resource instances configured

Online: [ kvm01 kvm02 ]

No resource

关闭其中一个节点

[root@kvm01 ~]# pcs cluster stop kvm01
kvm01: Stopping Cluster (pacemaker)...
kvm01: Stopping Cluster (corosync)...

在另一个节点查看状态

[root@kvm02 ~]# pcs status

Online: [ kvm02 ]
OFFLINE: [ kvm01 ]

启动服务

[root@kvm01 ~]# pcs cluster start kvm01
kvm01: Starting Cluster (pacemaker)...
kvm01: Starting Cluster (corosync)...

查看状态

[root@kvm02 ~]# pcs status

2 nodes configured
0 resource instances configured

Online: [ kvm01 kvm02 ]

No resource

开启会话同步

关闭隔离设备的功能(每个设备都执行)

[root@kvm01 ~]# pcs property set stonith-enabled=false

取消会话同步

向群集中添加资源

[root@kvm01 ~]# pcs resource create test01 VirtualDomain hypervisor="qemu:///system" config="/kvmdata/config/test01.xml" migration_transport=ssh meta allow-migrate="true"

Assumed agent name 'ocf:heartbeat:VirtualDomain'(deduced from 'VirtualDomain')
  • meta allow-migrate="true"  :允许迁移模式

查看群集状态

[root@kvm01 ~]# pcs status
Cluster name: cluster-kvm

WARNINGS:
No stonith devices and stonith-enabled is not false

Stack: corosync
Current DC: kvm02 (version 1.1.23-1.el7_9.1-9acf116022) - partition with quorum
Last updated: Wed Aug 31 19:55:48 2022
Last change: Wed Aug 31 19:55:43 2022 by root via cibadmin on kvm01

2 nodes configured
1 resource instance configured

Online: [ kvm01 kvm02 ]

Full list of resources:

 test01	(ocf::heartbeat:VirtualDomain):	Started kvm01

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled
KVM 群集验证

kvm01 的状态

[root@kvm01 ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 6     test01                         running

查看资源限制

[root@kvm01 ~]# pcs constraint
//查询限制情况,如下显示结果为无限制
Location Constraints:
Ordering Constraints:
Colocation Constraints:
Ticket Constraints:

清除某个 pcs 资源只能在某个主机上运行的限制

[root@kvm01 ~]# pcs resource clear test01

手动迁移

[root@kvm01 ~]# pcs resource move test01
Warning: Creating location constraint cli-ban-test01-on-kvm@l with a score of -INFINITY for resource test@l on node kvm01.
This will prevent test0l from running on kvm0l until the constraint is removed.his will be the case even if kvm0l is the last node in the cluster.
  • 会自动选择其他节点进行迁移

201上查看状态

[root@kvm01 ~]# pcs status
Cluster name: cluster-kvm
Stack: corosync
Current DC: kvm01 (version 1.1.23-1.el7_9.1-9acf116022) - partition with quorum
Last updated: Wed Aug 31 21:54:15 2022
Last change: Wed Aug 31 21:52:31 2022 by root via crm_resource on kvm01

2 nodes configured
1 resource instance configured

Online: [ kvm01 kvm02 ]

Full list of resources:

 test01	(ocf::heartbeat:VirtualDomain):	Started kvm02

Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled
[root@kvm01 ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     test01                         关闭

202上查看状态

[root@kvm02 ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 2     test01                         running
  • 迁移后,test01运行在kvm02上

查看是否有限制

[root@kvm02 ~]# pcs constraint
Location Constraints:
    Resource: test0l
        Disabled on: kvm01(score:-INFINITY)(role: Started)
Ordering Constraints:
Colocation Constraints:
Ticket Constraints:
  • Resource: test01:被限制了 

202上清除 test01 限制

[root@kvm02 ~]# pcs resource clear test01

202查看限制情况

[root@kvm02 ~]# pcs constraint
//查询限制情况,如下显示结果为无限制
Location Constraints:
Ordering Constraints:
Colocation Constraints:
Ticket Constraints:

201查看限制情况

[root@kvm01 ~]# pcs constraint
//查询限制情况,如下显示结果为无限制
Location Constraints:
Ordering Constraints:
Colocation Constraints:
Ticket Constraints:

202虚拟机挂起模拟故障

201上查看状态

[root@kvm01 ~]# pcs status

2 nodes configured
1 resource instance configured

Online: [ kvm@l ]
OFFLINE: [ kvm02 ]

Full list of resources:
    test01 (ocf::heartbeat:VirtualDomain): Started kvm01

查看状态

[root@kvm01 ~]# virsh list --all
Id            名称            状态
--------------------------------------
5             test01          running

小阿轩yx-KVM+GFS 分布式存储系统构建 KVM 高可用

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

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

相关文章

刚起步的海外仓怎么选WMS系统,要注意什么

对于刚起步的海外仓企业来说,最紧要的事情就是把核心业务打磨平稳,形成核心竞争力,才能在激烈的竞争中赢得一席之地。 而要实现这个目的,WMS海外仓系统的引入当然是必要的一环,不过因为刚起步,业务和资源都…

AI产品经理的职责与能力:将AI技术转化为实际价值

一、AI产品经理的职责 发现和解决问题:AI产品经理需要具备敏锐的洞察力,能够发现用户需求和痛点,并提出相应的解决方案。传递价值给用户:AI产品经理需要确保产品能够满足用户的需求,提供价值,并提升用户体…

大模型之语言大模型技术

本文作为大模型综述第二篇,介绍语言大模型基本技术。 近年来,在 Transformer 架构基础上构建的预训练语言模型为自然语言处理领域带来了一系列突破式进展,成为人工智能主流技术范式。预训练语言模型采用“预训练+微调”方法,主要分为两步: 1)将模型在大规模无标注数据上…

No static resource favicon.ico.问题解决

一,问题 Spring Boot项目调用接口时报错 org.springframework.web.servlet.resource.NoResourceFoundException: No static resource favicon.ico. at org.springframework.web.servlet.resource.ResourceHttpRequestHandler.handleRequest(ResourceHttpReques…

餐饮卫生数字化防线:EasyCVR明厨亮灶/透明厨房/阳光厨房视频监管方案

近期有新闻报道,某互联网大厂办事处发生了一起大规模食物中毒事件,导致近60人住院。餐饮食品卫生安全直接关系到人民群众的身体健康和生命安全,是社会关注的焦点。 传统的监管方式往往依赖于人力巡查和抽检,存在效率低、覆盖面窄…

企业邮箱安全稳定吗?

企业邮箱安全稳定吗?企业邮箱通过GDPR等国际标准保护数据,采用加密技术、反垃圾邮件、身份验证等措施确保安全。服务器全球分布,灾难恢复和备份确保稳定。Zoho邮箱提供多种版本和注册流程,支持邮件协作、备份与恢复等功能。 一、…

成为一名月薪 2 万的 web 安全工程师需要掌握哪些技能?

现在 web 安全工程师比较火,岗位比较稀缺,现在除了一些大公司对学历要求严格,其余公司看中的大部分是能力。 有个亲戚的儿子已经工作 2 年了……当初也是因为其他的行业要求比较高,所以才选择的 web 安全方向。 资料免费分享给你…

“电商兴农 走进柳湖”明天赵堡准时启动,邀您一起来采摘

为了进一步推动农村电子商务普及应用,营造农村电商发展浓厚氛围,培育电商新业态、新模式,宣传推广崆峒农特产品,推动城乡生产与消费有效对接,拓宽农特产品销售渠道,释放农村消费潜能,挖掘乡村文…

凡图公益行|温暖新庞村:“守护童心、预防霸凌”公益活动圆满落幕!

凡图公益行|温暖新庞村:“守护童心、预防霸凌”公益活动圆满落幕! 在当今社会,霸凌这一现象如同阴霾般笼罩在部分孩子的生活之中,成为了一个不容忽视的社会问题。 它不仅给受害者带来深重的身心伤害,还对整个社会的和…

Haption力反馈设备在核工业遥操作机器人中的应用探讨

核工业作为能源领域的重要组成部分,其安全性和工作效率的提升越来越受到人们的关注。在核工业环境中,由于存在高辐射、高风险等特性,传统的人工操作方式并不适用于该领域,因此遥操作机器人技术应运而生。Haption力反馈设备作为虚拟…

springboot报错

springboot报错:g.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length 1 解决办法: file->settings 搜索encoding 然后选择File encodings 也可以直接找 File encodings 全部都更改整utf-8&#xff…

Midjourney咒语之风景大片极简抽象神秘特效

风景大片 Himalayas, landscape, very detailed, --ar 16:9 --style raw --v 5.1 Serene blue mountains landscape. hills, mist, morning fog, Wide-angle lens, Low ISO, EOS 5D Mark IV, --ar 16:9

Vue2中渲染功能,添加功能,删除功能,统计功能

上述是代码运行结果&#xff0c;完整代码如下 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport"…

防近视台灯有效果吗?家长们要注意台灯怎么选才靠谱

近年来&#xff0c;电子产品的广泛应用进一步加重了学生的用眼负担。平板电脑、智能手机和笔记本电脑成为日常学习不可或缺的一部分&#xff0c;而长时间使用这些设备无疑加剧了视力疲劳。根据权威机构的预测&#xff0c;到2050年&#xff0c;全球近视人数将达到约49.49亿人&am…

Spring Boot 动态数据源

目录 前言 前置环境 pom yml Entity Dao 枚举类 数据源 AOP Controller 启动类 演示 前言 大多数系统中&#xff0c;都需要数据库来持久化数据&#xff0c;在大多数情况下&#xff0c;一个系统只需要配置一个数据源便能够完成所有业务的查询&#xff0c;保存操作。…

Interceptor拦截器开发

因为1登录后的接口都需要token验证代码,会出现重复代码;2当前的接口不防刷,会被恶意攻击 所以在controller层增加请求拦截,如果你的token不合法,就不让你做后续的处理了 拦截器的作用是什么 作用: 1、对controller层代码的访问进行拦截,合法的请求,那此层代码就处理,反…

三好夫人是正规牌子吗?99%不知道的秘密:三好夫人竟成宠夫神器

三好夫人是正规品牌&#xff0c;是2023年在中国国家商标局注册的第30类商标。所属公司为苏州好夫人健康科技有限公司。 当下的社会&#xff0c;健康与爱情成为了现代人追求的两大宝藏。在众多养生品牌中&#xff0c;“三好夫人”如同一股清流&#xff0c;悄然间成为了许多家庭中…

【华为战报】2024年7月 HCIA-HCIP-HCIE考试,通过率100%

了解更多往期考试→点击 【考试战报】 HCIA 华为认证工程师 7月 微思 | HCIA 考试战报 HCIP 华为认证高级工程师 7月 微思 | HCIP 考试战报 HCIE 华为认证专家 7月 微思 | HCIE 考试战报 END 微思网络&#xff0c;始于2002年 专业IT认证培训22年&#xff0c;面向全国招生&a…

智能体互联网IoA架构核心思想解读

零、常用概念 智能体&#xff1a;融合了大模型能力&#xff0c;具有感知记忆、自主规划、调用工具、执行任务能力的AgentInternet of Agents &#xff08;IoA&#xff09;—— “智能体互联网”&#xff1a;Agent 之间互相发现&#xff0c;大规模连接、协作。 一、现状问题 生…

hadoop学习笔记4-mapreduce

5.MapReduce 5.1Linux中安装IDEA IDEA官网&#xff1a;https://www.jetbrains.com.cn/idea/ 点击右上角的下载 选择Linux进行下载压缩包 下载完成后找到压缩包并解压压缩包到当前目录下 tar -zxvf ideaIC-2024.1.4.tar.gz 运行idea ./idea.sh 5.2配置开发环境 1.mapreduce简…