第38讲:Ceph分布式存储集群部署

news2024/11/19 2:26:21

文章目录

    • 1.Ceph分布式存储集群安装方式
    • 2.Ceph集群环境规划
    • 3.基础环境配置
      • 3.1.设置主机名以及SSH免密登录
      • 3.2.配置Ceph yum源
    • 4.部署Ceph分布式存储集群
      • 4.1.安装Ceph-deploy自动化部署工具
      • 4.2.初始化创建一个Ceph分布集群
      • 4.3.在每个节点中部署Ceph集群所有的组件
      • 4.4.部署并配置Monitor组件
        • 4.4.1.初始化Ceph Monitor各节点形成集群模式
        • 4.4.2.将生成的Monitor admin认证文件推送到集群各节点
      • 4.5.部署配置Manager组件
      • 4.6.部署配置OSD组件
      • 4.7.在集群中部署MDS组件
      • 4.8.在集群中部署RGW组件
      • 4.9.查看集群状态

1.Ceph分布式存储集群安装方式

ceph-deploy:一个快速部署集群的工具,ceph-deploy不再维护,Ceph采用的是Nautilus版本,如果操作系统是CentOS8那么将不支持ceph-deploy方式的搭建。

Cephadm:使用容器和systemd安装和管理Ceph集群,目前比较流行的部署方式,部署Octopus版本的Ceph建议使用此方法。

ceph-ansible:使用Ansible部署和管理 Ceph 集群。

INSTALLATION (MANUAL):手动方式安装,了解部署Ceph的细节。

ROOK:部署和管理在Kubernetes中运行的Ceph集群,同时还支持通过Kubernetes API管理存储资源和配置,如果要与K8S集成,可以使用此种方式。

2.Ceph集群环境规划

由三个节点组成Ceph集群,每一个节点中添加两块网卡,一块网卡用于对外提供访问,一块网卡用于集群内部通信,每一个节点上暂时分别有2块网卡,后期做其他配置时再进行添加。

主机名Poblic通信IP服务硬盘
ceph-node-1192.168.81.70monitor、osdsda、sdb
ceph-node-2192.168.81.80monitor、osdsda、sdb
ceph-node-3192.168.81.90monitor、osdsda、sdb

在这里插入图片描述

3.基础环境配置

3.1.设置主机名以及SSH免密登录

所有节点都按如下进行配置。

1)设置主机名并配置Hosts解析

[root@localhost ~]# hostnamectl set-hostname ceph-node-1
[root@localhost ~]# hostnamectl set-hostname ceph-node-2
[root@localhost ~]# hostnamectl set-hostname ceph-node-3

# vim /etc/hosts
192.168.81.70 ceph-node-1
192.168.81.80 ceph-node-2
192.168.81.90 ceph-node-3

2)设置ssh免密登陆

# ssh-keygen 
# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.81.70
# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.81.80
# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.81.90

3)关闭防火墙以及Selinux

# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
# sed -ri '/^SELINUX/c SELINUX=disabled' /etc/sysconfig/selinux 
# sed -ri '/^SELINUX/c SELINUX=disabled' /etc/selinux/config 

4)设置ntp时间同步

在Ceph集群中非常注重时间信息,如果时间不同步,那么集群通信就可能会出现问题。

# yum -y install ntp
# crontab -e
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com

3.2.配置Ceph yum源

所有节点都需要配置。

1)使用阿里云镜像源

阿里云镜像源中提供了很多工具的yum源,地址:https://developer.aliyun.com/mirror/

在这里插入图片描述

2)配置Centos7的Base与Epel源

# mkdir /etc/yum.repos.d/back
# mv /etc/yum.repos.d/*  /etc/yum.repos.d/back
# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 
# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3)配置Ceph的镜像源

需要分布配置noarch与x86_64的镜像源。

在这里插入图片描述

# vim /etc/yum.repos.d/ceph.repo
[noarch]
name=noarch
baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/
enabled=1
gpgcheck=0

[x86_64]
name=x86_64
baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/
enabled=1
gpgcheck=0

在这里插入图片描述

4.部署Ceph分布式存储集群

4.1.安装Ceph-deploy自动化部署工具

我们的Ceph集群采用ceph-deploy的方式进行安装和部署,在集群中任意节点中安装ceph-deploy工具即可。

1.安装依赖的python软件
[root@ceph-node-1 ~]# yum -y install python-setuptools

2.安装ceph-deploy
[root@ceph-node-1 ~]# yum -y install ceph-deploy

3.查看ceph-deploy安装的版本
[root@ceph-node-1 ~]# ceph-deploy --version
2.0.1

在这里插入图片描述

4.2.初始化创建一个Ceph分布集群

这一步主要是用来生成集群配置文件和认证文件的。

1.创建一个目录存放部署各个组件的配置文件
[root@ceph-node-1 ~]# mkdir /data/ceph-deploy/

2.创建一个ceph集群,集群节点数建议是奇数
[root@ceph-node-1 ceph-deploy]# ceph-deploy new --public-network 192.168.81.0/24 --cluster-network 192.168.81.0/24 ceph-node-1 ceph-node-2 ceph-node-3


--public-network:指定公共网络地址,也就是对外提供服务的地址。
--cluster-network:指定集群内部使用的网络地址,集群连接通信通过这个网络进行通信。

在这里插入图片描述

3.查看ceph-deploy生成的集群配置文件
[root@ceph-node-1 ceph-deploy]# ll
总用量 12
-rw-r--r--. 1 root root  264 3月  30 21:06 ceph.conf				#配置文件
-rw-r--r--. 1 root root 3038 3月  30 21:06 ceph-deploy-ceph.log		#日志文件,可以查看monitor配置文件的生成过程
-rw-------. 1 root root   73 3月  30 21:06 ceph.mon.keyring			#认证文件
#如果创建集群时没有指定参数,则可以在生成的文件中进行配置。
[root@ceph-node-1 ceph-deploy]# cat ceph.conf
[global]
fsid = 25c120bc-ac9e-440e-8120-89ba5c2b9dc9
public_network = 192.168.81.0/24
cluster_network = 192.168.81.0/24
mon_initial_members = ceph-node-1, ceph-node-2, ceph-node-3
mon_host = 192.168.81.250,192.168.81.220,192.168.81.160
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

4.3.在每个节点中部署Ceph集群所有的组件

1.安装ceph集群各组件
[root@ceph-node-1 ceph-deploy]# yum -y install ceph ceph-mon ceph-mgr ceph-radosgw ceph-mds
[root@ceph-node-2 ~]# yum -y install ceph ceph-mon ceph-mgr ceph-radosgw ceph-mds
[root@ceph-node-3 ~]# yum -y install ceph ceph-mon ceph-mgr ceph-radosgw ceph-mds

2.安装完成后会在/var/lib/ceph生成文件
[root@ceph-node-1 ceph-deploy]# ll /var/lib/ceph/
总用量 0
drwxr-x---. 2 ceph ceph  6 6月  30 2021 bootstrap-mds
drwxr-x---. 2 ceph ceph  6 6月  30 2021 bootstrap-mgr
drwxr-x---. 2 ceph ceph  6 6月  30 2021 bootstrap-osd
drwxr-x---. 2 ceph ceph  6 6月  30 2021 bootstrap-rbd
drwxr-x---. 2 ceph ceph  6 6月  30 2021 bootstrap-rbd-mirror
drwxr-x---. 2 ceph ceph  6 6月  30 2021 bootstrap-rgw
drwxr-x---. 3 ceph ceph 20 3月  30 21:46 crash
drwxr-x---. 2 ceph ceph  6 6月  30 2021 mds
drwxr-x---. 2 ceph ceph  6 6月  30 2021 mgr
drwxr-x---. 3 ceph ceph 25 3月  30 21:52 mon
drwxr-x---. 2 ceph ceph  6 6月  30 2021 osd
drwxr-xr-x. 2 root root  6 6月  30 2021 radosgw
drwxr-x---. 2 ceph ceph  6 3月  30 21:53 tmp

3.查看ceph的版本
[root@ceph-node-1 ceph-deploy]# ceph -v
ceph version 14.2.22 (ca74598065096e6fcbd8433c8779a2be0c889351) nautilus (stable)

4.4.部署并配置Monitor组件

4.4.1.初始化Ceph Monitor各节点形成集群模式

初始化Monitor组件需要先安装Monitor组件包,然后利用ceph-deploy工具根据生成的集群配置文件,初始化各个节点中的Monitor组件,形成集群模式,初始化完Monitor组件会在/etc/ceph目录中成一些配置文件和一些key文件,并启动Monitor组件。

1.初始化Monitor
[root@ceph-node-1 ceph-deploy]# ceph-deploy mon create-initial 
#初始化的时候会对集群中所有的节点都进行操作

2.查看生成的配置文件
#配置文件
[root@ceph-node-1 ceph-deploy]# ll /etc/ceph/
总用量 8
-rw-r--r--. 1 root root 264 3月  30 21:53 ceph.conf
-rw-r--r--. 1 root root  92 6月  30 2021 rbdmap
-rw-------. 1 root root   0 3月  30 21:52 tmpdpAGYU
#key文件
[root@ceph-node-1 ceph-deploy]# ll
总用量 48
-rw-------. 1 root root   113 3月  30 21:53 ceph.bootstrap-mds.keyring
-rw-------. 1 root root   113 3月  30 21:53 ceph.bootstrap-mgr.keyring
-rw-------. 1 root root   113 3月  30 21:53 ceph.bootstrap-osd.keyring
-rw-------. 1 root root   113 3月  30 21:53 ceph.bootstrap-rgw.keyring
-rw-------. 1 root root   151 3月  30 21:53 ceph.client.admin.keyring
-rw-r--r--. 1 root root   264 3月  30 21:06 ceph.conf
-rw-r--r--. 1 root root 18651 3月  30 21:53 ceph-deploy-ceph.log
-rw-------. 1 root root    73 3月  30 21:06 ceph.mon.keyring

3.查看ceph进程,此时每个节点都会起到mon组件
[root@ceph-node-1 ceph-deploy]# ps aux | grep ceph
root       25265  0.0  0.4 189132  9172 ?        Ss   21:46   0:00 /usr/bin/python2.7 /usr/bin/ceph-crash
ceph       26057  0.2  1.7 503888 33728 ?        Ssl  21:53   0:00 /usr/bin/ceph-mon -f --cluster ceph --id ceph-node-1 --setuser ceph --setgroup ceph

在这里插入图片描述

4.4.2.将生成的Monitor admin认证文件推送到集群各节点

Monitor组件初始化完成后,还需要将ceph.client.admin.keyring这个admin的认证文件推送到节点的/etc/ceph目录下,否则无法执行ceph命令查看集群信息。

推送完成后再将ceph集群的不安全模式禁用,否则查看集群信息时会提示“mon允许不安全的global_id回收”。

1.推送admin认证文件
[root@ceph-node-1 ceph-deploy]# ceph-deploy admin ceph-node-1 ceph-node-2 ceph-node-3

#如果现在想要在其他的节点中执行ceph命令,则可以将admin文件推送到其他的节点。

2.查看推送过来的文件
[root@ceph-node-1 ceph-deploy]# ll /etc/ceph/
总用量 12
-rw-------. 1 root root 151 3月  30 22:00 ceph.client.admin.keyring
-rw-r--r--. 1 root root 264 3月  30 22:00 ceph.conf
-rw-r--r--. 1 root root  92 6月  30 2021 rbdmap
-rw-------. 1 root root   0 3月  30 21:52 tmpdpAGYU

在这里插入图片描述

3.禁用ceph的不安全模式
[root@ceph-node-1 ceph-deploy]# ceph config set mon auth_allow_insecure_global_id_reclaim false
#如果不关闭的话,查看集群信息的时候会提示mon is allowing insecure global_id reclaim

4.查看ceph集群的信息
[root@ceph-node-1 ceph-deploy]# ceph -s
  cluster:
    id:     25c120bc-ac9e-440e-8120-89ba5c2b9dc9			#集群的ID
    health: HEALTH_OK									  #集群的健康状态
 
  services:
    mon: 3 daemons, quorum ceph-node-1,ceph-node-2,ceph-node-3 (age 3m)					#monitor组件的节点
    mgr: no daemons active								  #mgr节点,现在换没有mgr
    osd: 0 osds: 0 up, 0 in								  #osd节点
 
  data:													#资源池信息
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs:     

4.5.部署配置Manager组件

Manager组件是监控组件,在集群中所有的节点中部署。

**注意:**ceph-deploy命令生成的只是配置文件和启动该组件,执行该命令前需要实际的将ceph-mgr包安装好。

1.安装manager组件
[root@ceph-node-1 ceph-deploy]# ceph-deploy mgr create ceph-node-1 ceph-node-2 ceph-node-3

2.查看mgr组件启动的进程
[root@ceph-node-1 ceph-deploy]# ps aux | grep mgr
ceph       19530 11.7  6.5 1033180 121880 ?      Ssl  11:39   0:01 /usr/bin/ceph-mgr -f --cluster ceph --id ceph-node-1 --setuser ceph --setgroup ceph

3.再次查看集群的状态
[root@ceph-node-1 ceph-deploy]# ceph -s
  cluster:
    id:     25c120bc-ac9e-440e-8120-89ba5c2b9dc9
    health: HEALTH_WARN
            OSD count 0 < osd_pool_default_size 3
 
  services:
    mon: 3 daemons, quorum ceph-node-3,ceph-node-2,ceph-node-1 (age 3m)
    mgr: ceph-node-1(active, since 36s), standbys: ceph-node-2, ceph-node-3		#可以看到mgr已经有三个节点了
    osd: 0 osds: 0 up, 0 in
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs:  

在这里插入图片描述

4.6.部署配置OSD组件

OSD组件是真正存储数据的组件,需要与磁盘关联,每一个OSD组件需要关联至少一块磁盘。

OSD关联数据盘有两种方式:

  • --data指定数据盘,数据直接落入盘中。
  • --journal配合ssd磁盘,首先将数据写入journal,然后在刷到磁盘里,起到一个加速的作用。

OSD组件在前面已经安装过了,下面来配置OSD,将服务器中的两块硬盘都加入到OSD集群中。

ceph-deploy工具一次只能将一个磁盘创建成OSD。

1.将ceph-node-1节点的/dev/sdb、/dev/sdc磁盘加入到osd中
[root@ceph-node-1 ceph-deploy]# ceph-deploy osd create ceph-node-1 --data /dev/sdb
[root@ceph-node-1 ceph-deploy]# ceph-deploy osd create ceph-node-1 --data /dev/sdc


2.将ceph-node-2节点的/dev/sdb、/dev/sdc磁盘加入到osd中
[root@ceph-node-1 ceph-deploy]# ceph-deploy osd create ceph-node-2 --data /dev/sdb
[root@ceph-node-1 ceph-deploy]# ceph-deploy osd create ceph-node-2 --data /dev/sdc

3.将ceph-node-3节点的/dev/sdb、/dev/sdc磁盘加入到osd中
[root@ceph-node-1 ceph-deploy]# ceph-deploy osd create ceph-node-3 --data /dev/sdb
[root@ceph-node-1 ceph-deploy]# ceph-deploy osd create ceph-node-3 --data /dev/sdc

在这里插入图片描述

OSD创建过程中,会自动配置指定的磁盘,并且启动OSD程序。
在这里插入图片描述

4.集群创建完OSD之后再次查看集群的状态
[root@ceph-node-1 ceph-deploy]# ceph -s
  cluster:
    id:     25c120bc-ac9e-440e-8120-89ba5c2b9dc9
    health: HEALTH_OK
 
  services:
    mon: 3 daemons, quorum ceph-node-3,ceph-node-2,ceph-node-1 (age 15m)
    mgr: ceph-node-1(active, since 12m), standbys: ceph-node-2, ceph-node-3
    osd: 6 osds: 6 up (since 66s), 6 in (since 66s)				#显示集群中当下有3个OSD
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   6.0 GiB used, 54 GiB / 60 GiB avail
    pgs: 
    
5.查看OSD的详细信息
[root@ceph-node-1 ceph-deploy]# ceph osd tree
ID CLASS WEIGHT  TYPE NAME            STATUS REWEIGHT PRI-AFF 
-1       0.05878 root default                                 
-3       0.01959     host ceph-node-1                         
 0   hdd 0.00980         osd.0            up  1.00000 1.00000 
 4   hdd 0.00980         osd.4            up  1.00000 1.00000 
-5       0.01959     host ceph-node-2                         
 1   hdd 0.00980         osd.1            up  1.00000 1.00000 
 5   hdd 0.00980         osd.5            up  1.00000 1.00000 
-7       0.01959     host ceph-node-3                         
 2   hdd 0.00980         osd.2            up  1.00000 1.00000 
 3   hdd 0.00980         osd.3            up  1.00000 1.00000 
 #会显示出每一个节点中的OSD信息

4.7.在集群中部署MDS组件

事先一定要将MDS组件在集群中安装好,然后使用ceph-deploy工具配置MDS组件。

[root@ceph-node-1 ceph-deploy]# ceph-deploy mds create ceph-node-1 ceph-node-2 ceph-node-3

在这里插入图片描述

[root@ceph-node-1 ceph-deploy]# ceph -s
  cluster:
    id:     25c120bc-ac9e-440e-8120-89ba5c2b9dc9
    health: HEALTH_OK
 
  services:
    mon: 3 daemons, quorum ceph-node-3,ceph-node-2,ceph-node-1 (age 2h)
    mgr: ceph-node-1(active, since 2h), standbys: ceph-node-2, ceph-node-3
    mds:  3 up:standby					#MDS组件准备就绪
    osd: 6 osds: 6 up (since 2h), 6 in (since 2h)
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   6.0 GiB used, 54 GiB / 60 GiB avail
    pgs:  

4.8.在集群中部署RGW组件

部署好的RGW组件都有单独的访问地址,可以配置Keepalived+nginx/haproxy形成高可用集群。

[root@ceph-node-1 ceph-deploy]# ceph-deploy rgw create ceph-node-1 ceph-node-2 ceph-node-3

在这里插入图片描述

4.9.查看集群状态

到此为止Ceph集群搭建完毕。

在这里插入图片描述

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

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

相关文章

【在Linux世界中追寻伟大的One Piece】DNS与ICMP

目录 1 -> DNS(Domain Name System) 1.1 -> DNS背景 2 -> 域名简介 2.1 -> 域名解析过程 3 -> 使用dig工具分析DNS 4 -> ICMP协议 4.1 -> ICMP功能 4.2 -> ICMP报文格式 4.3 -> Ping命令 4.4 -> traceroute命令 1 -> DNS(Domain Na…

【JS】判断快乐数

思路 这里主要是需要熟悉对取值各个位数上的单数操作&#xff0c;也就是数字拆分方法&#xff1a; 转化为字符串&#xff0c;使用split方法 // 将数字转换为字符串&#xff0c;以便拆分为单个数字 let arr ( (totalCount || n)).split(); 使用数学运算符 let sum 0; // 初始…

hgkhjhkj

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…

Android Media3 1.4.0 新特性解析

Android Media3 1.4.0 新特性解析 Media3 1.4.0 的发布为 Android 开发者带来了众多重要的新特性和增强功能,进一步提升了媒体播放体验。本文将详细介绍该版本中的关键更新,涵盖 ExoPlayer 预载工具、HDR 支持的改进、字幕处理优化、PlayerView 中的图像支持,以及 MediaSes…

GAMES104:16 游戏引擎的玩法系统:基础AI-学习笔记

文章目录 一&#xff0c;寻路/导航系统Navigation1.1 Walkable Area1.1.1 Waypoint Network1.1.2 Grid1.1.3 Navigation Mesh1.1.4 Sparse Voxel Octree 1.2 Path Finding1.2.1 Dijkstra Algorithm迪杰斯特拉算法1.2.2 A Star&#xff08;A*算法&#xff09; 1.3 Path Smoothin…

Docsify搭建个人博客

前提&#xff1a;电脑安装了Node.js 安装到本地 CMD命令下输入node -v查看是否已经安装了Node.js 安装docsify-cli工具&#xff1a;npm i docsify-cli -g 使用git下载docsify-Plus项目&#xff0c;Gitee地址&#xff1a;https://gitee.com/librarycodes/docsify-plus cd…

基于SpringBoot的国家基础信息管理功能的设计与实现

目录 前言 一、标准信息参考 1、信息来源 二、后台基础信息的维护管理 1、实体类和Mapper类 2、业务层和控制层设计 3、前端界面实现 三、管理页面效果 1、列表管理界面 2、国家信息调整 四、总结 前言 在之前的博客中&#xff0c;我们基于GeoTools工具实现了全球各个…

Base64字符串转图片在线工具

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 基本原理 Base64编码&#xff0c;作为一种将二进制数据转换为文本格式的方法&#xff0c;其核心在于利用64个可打印字符来表征任意的二进制信息。这一编码方式的出现&#…

应急响应:DHCP$DNS劫持实战

目录 DHCP DHCP安全性&#xff1a; DHCP常见的攻击手段&#xff1a; DNS DNS常见的攻击方式&#xff1a; DNS&DHCP攻击实战演练&#xff1a; 环境配置&#xff1a; 利用&#xff1a; 排查&#xff1a; 防御&#xff1a; DHCP 介绍&#xff1a; DHCP&#xff08;…

【Redis】Set类型的常用命令与应用场景

目录 1.命令小结 2.命令解析 3.编码方式与应用场景 1.命令小结 &#xff08;1&#xff09;set的特点 1&#xff09;set中存放的数据也都是String类型 2&#xff09;set集合中的元素是无须的 3&#xff09;set集合中的元素是唯一的&#xff0c;不可重复 &#xff08;2&a…

苦瓜检测系统源码分享

苦瓜检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision 研究…

以光塑形:光固化3D打印机原理图文解析

公众号端&#xff1a; 光固化打印机介绍https://mp.weixin.qq.com/s?__bizMzkwMjc0MTE3Mw&mid2247484073&idx1&sn0d0fd026b373b06cd7c340ec8f56a006&chksmc0a1af73f7d62665a632baebbde4e5e00ffb9c6bd31bf547b4a86855d5524535619a6175a428#rd 光固化打印机…

linux如何与网络时间对齐(雪花算法ID重复)

文章目录 前言一、可能引发什么问题&#xff1f;二、调整步骤1.查看当前系统时间2.修改为中国时区3.同步网络时间4. 雪花id重复 总结 前言 linux服务器是部署服务的不二之选,有个小问题不可忽略&#xff1a; 会发现默认的服务器时间并非中国时区,时间也是相差八小时,中国时区…

python全栈学习记录(二十四)元类、异常处理

元类、异常处理 文章目录 元类、异常处理一、元类1.元类控制类的实例化2.属性/方法的查找顺序3.单例 二、异常处理 一、元类 1.元类控制类的实例化 类的__call__方法会在产生的对象被调用时自动触发&#xff0c;args和kwargs就是调用实例时传入的参数&#xff0c;返回值是调用…

Hotspot是什么?

Hotspot 简单来说&#xff0c;JVM的一种。 一、HotSpot 的官方定义 HotSpot 是 Oracle 公司开发的一个高性能的 Java 虚拟机&#xff08;JVM&#xff09;。它通过一系列先进的技术和优化手段&#xff0c;为 Java 应用程序提供高效的运行环境&#xff0c;实现了跨平台的代码执行…

文献下载/影响因子查询/文献检索/文献翻译平台推荐

文献下载平台 科研通 文献互助平台 - 科研通(AbleSci.com) 每天签到可领10积分&#xff0c;右上角求助文献&#xff0c;一篇10积分&#xff0c;基本实现免费下载。 尽量输入doi&#xff08;类似文献id&#xff09;&#xff0c;如果没有doi则输入标题作者摘要等信息&#xff0…

SpringBoot 整合JPA

spring data jpa JPA(java persistence api) JPA是Java Persistence API的简称&#xff0c;中文名Java持久层API&#xff0c;是JDK 5.0注解或XML描述对象&#xff0d;关系表的映射关系&#xff0c;并将运行期的实体对象持久化到数据库中。 [1] Sun引入新的JPA ORM规范出于两…

链表Set_LinkList(建立)

用单链保存集合元素&#xff0c;元素由键盘输入。输入以-1结束&#xff0c;将所建链表打印输出。 链表结构如下图所示&#xff1a; 提示&#xff1a; 1.链表中数据元素为整型&#xff0c;typedef int ElemType; 2.用结构体自定义链表结构Set_LinkList &#xff1b; 3.初始化链表…

【每日刷题】Day135

【每日刷题】Day135 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. LCR 011. 连续数组 - 力扣&#xff08;LeetCode&#xff09; 2. 【模板】二维前缀和_牛客题霸_牛客…

基于SSM的共享读书网站

文未可获取一份本项目的java源码和数据库参考。 1.1 题目背景 进入新时代&#xff0c;中国的经济建设和社会发展需要与之相适应的人力资源相匹配。如何提升人力资源的素养&#xff0c;是新时代中国持续发展亟待解决的问题[1]。阅读不失为其中一个有效的手段。有效有益的阅读能…