当前位置: 首页 > news >正文

【KVM虚拟化】· virsh管理命令

目录

🍁libvirt架构概述

🍁使用virsh管理虚拟机

🍂常用命令总结

🍁kvm基本功能管理

🍂帮助命令

🍂KVM的配置文件存放目录

🍂查看虚拟机状态

🍂虚拟机关机与开机

🍂强制虚拟机系统关闭电源

🍂通过配置文件启动虚拟机系统

🍂挂起虚拟机

🍂恢复虚拟机

🍂设置虚拟机自启

🍂导出虚拟机配置

🍂删除和导入虚拟机

🍂修改虚拟机配置文件

🍂查看虚拟机信息

🍂连接虚拟机

🍂虚拟机克隆

🍃查看虚拟机状态

🍃克隆虚拟机

🍃查看状态并启动

🍁虚拟机快照

🍃对虚拟机拍摄快照

🍃查看快照详细信息

🍃恢复快照

🍃删除快照


   🦐博客主页:大虾好吃吗的博客

   🦐专栏地址:KVM虚拟化专栏

libvirt架构概述

        libvirt是用来管理虚拟机或虚拟化功能的软件集合,主要包括:libvirt API,libvirtd进程和virsh工具集三部分。最初的目的是为不同的hypervisor提供统一的管理接口。

libvirtd该后台进程主要实现以下功能:

(1)远程代理所有remote client发送来的命令,由该进程监测执行

(2)本地环境初始化libvirt服务的启停,用户connection的响应等

(3)根据环境注册各种Driver(qemu, xen, storage…)的实现不同虚拟化技术以Driver的形式实现,由于libvirt对外提供的是统一的接口,所以各个Driver就是实现这些接口,即将Driver注册到libvirt中。

查看libvirtd服务状态

        如果libvirtd服务停止运行,那么你将不能管理虚拟机,也就是不能使用virt-manager等工具来管理虚拟机。

[root@localhost ~]# systemctl status libvirtd

查看配置文件

        虚拟机的所有配置是放置在一个xml文件中,位置在/etc/libvirt/qemu/目录中

[root@localhost ~]# ll /etc/libvirt/qemu
total 8
-rw-------  1 root root 3325 Apr 20 23:29 myvm01.xml
-rw-------  1 root root 3325 Apr 20 23:30 myvm02.xml
drwx------. 3 root root   42 Apr 17 04:32 networks

可以看到创建的2个虚拟机,libvirt的xml文件分为几个重要部分,整体结构如下:

<domain type='kvm'>

虚拟机整体信息

系统信息

硬件资源特性

突发事件处理

虚拟磁盘(单个或多个)

虚拟光盘(可选)

虚拟网络(单个或多个)

vnc/spice 配置

</domain>

使用virsh管理虚拟机

        virsh是使用libvirt management API构建的管理工具,virsh的名称的含义是virtualization shell。它有两种工作模式:

立即模式

[root@localhost ~]# virsh list --allId    Name                           State
----------------------------------------------------3     myvm02                         running4     myvm01                         running

交互模式

[root@localhost ~]# virsh
Welcome to virsh, the virtualization interactive terminal.
​
Type:  'help' for help with commands'quit' to quit
​
virsh # list --allId    Name                           State
----------------------------------------------------3     myvm02                         running4     myvm01                         running

常用命令总结

命令描述
attach-device使用XML文件中的设备定义在虚拟机中添加设备
attach-disk在虚拟机中附加新磁盘设备
attach-interface在虚拟机中附加新网络接口
create在XML配置文件生成虚拟机并启动新虚拟机
define为虚拟机输出XML配置文件
destroy强制关闭虚拟机
detach-device从虚拟机中分离设备,使用同样的XML描述作为命令attach-device
detach-disk从虚拟机中分离磁盘设备
detach-interface从虚拟机中分离网络接口
domblkstat显示正在运行的虚拟机的块设备统计
domid显示虚拟机id
domifstat显示正在运行的虚拟机的网络接口统计
dominfo显示虚拟机信息
domname显示虚拟机名称
domstate显示虚拟机状态
domuuid显示虚拟机uuid
dumpxml输出虚拟机XML配置文件
help显示帮助命令
list列出所有虚拟机
migrate列出虚拟机迁移到两外一台主机中
nodeinfo有关管理程序的输出信息
quit退出交互终端
reboot重启虚拟机
restore恢复以前保存在文件中的虚拟机
resume恢复暂停的虚拟机
save将虚拟机当前状态保存到某个文件中
setmaxmem为管理程序设定内存上限
setmem为虚拟机设定分配的内存
setvcpus修改为虚拟机分配的虚拟cpu数量
shutdown关闭虚拟机
undefine删除与虚拟机关联的所有文件
vcpuinfo显示虚拟机的虚拟cpu信息
vcpupin控制虚拟机的虚拟cpu亲和性
version显示virsh版本
start启动未激活的虚拟机
suspend暂停虚拟机

kvm基本功能管理

为了区分主机及虚拟机,这里把主机改名为kvmserver

帮助命令

[root@kvmserver ~]# virsh -h

KVM的配置文件存放目录

[root@kvmserver ~]# ll /etc/libvirt/qemu
total 8
-rw-------  1 root root 3325 Apr 20 23:29 myvm01.xml
-rw-------  1 root root 3325 Apr 20 23:30 myvm02.xml
drwx------. 3 root root   42 Apr 17 04:32 networks

查看虚拟机状态

list只能查看启动状态下的虚拟机,加参数--all可以查看全部虚拟机,但未启动的虚拟机不会有id。

[root@kvmserver ~]# virsh list --allId    Name                           State
----------------------------------------------------5     myvm01                         running-     myvm02                         shut off

虚拟机关机与开机

通过上面查看的虚拟机状态,这里把myvm01关闭,myvm02开启。

[root@kvmserver ~]# virsh shutdown myvm01
Domain myvm01 is being shutdown
​
[root@kvmserver ~]# virsh start myvm02
Domain myvm02 started

强制虚拟机系统关闭电源

        当虚拟机出现故障,通过上面温柔的关机方式,无法关闭时。这时你就需要用到暴力(拔电源)关机了,这种方式关机速度快,但是不推荐!!!

[root@kvmserver ~]# virsh list --allId    Name                           State
----------------------------------------------------6     myvm02                         running-     myvm01                         shut off[root@kvmserver ~]# virsh destroy myvm02
Domain myvm02 destroyed[root@kvmserver ~]# virsh list --allId    Name                           State
-----------------------------------------------------     myvm01                         shut off-     myvm02                         shut off

通过配置文件启动虚拟机系统

启动方式不止start一种,也可以通过启动配置文件来开启虚拟机。

[root@kvmserver ~]# virsh create /etc/libvirt/qemu/myvm01.xml
Domain myvm01 created from /etc/libvirt/qemu/myvm01.xml[root@kvmserver ~]# virsh list --allId    Name                           State
----------------------------------------------------7     myvm01                         running-     myvm02                         shut off

挂起虚拟机

        当虚拟机暂时不使用时,可以通过挂起保存当前的状态。当查看虚拟机的状态是,可以看到虚拟机的状态为被挂起。需要注意的是,挂起时的虚拟机必须为启动状态。

[root@kvmserver ~]# virsh suspend myvm01
Domain myvm01 suspended[root@kvmserver ~]# virsh list --allId    Name                           State
----------------------------------------------------7     myvm01                         paused-     myvm02                         shut off

恢复虚拟机

恢复挂起状态下的主机

[root@kvmserver ~]# virsh resume myvm01
Domain myvm01 resumed[root@kvmserver ~]# virsh list --allId    Name                           State
----------------------------------------------------7     myvm01                         running-     myvm02                         shut off

设置虚拟机自启

        设置虚拟机随宿主机开启而开启,执行创建命令时在/etc/libvirt/qemu/autostart/目录里面创建开机自启的系统文件链接。

[root@kvmserver ~]# virsh autostart myvm01
Domain myvm01 marked as autostarted[root@kvmserver ~]# cd /etc/libvirt/qemu/autostart/
[root@kvmserver autostart]# ls
myvm01.xml
[root@kvmserver autostart]# virsh list --autostartId    Name                           State
----------------------------------------------------7     myvm01                         running[root@kvmserver autostart]# virsh autostart --disable myvm01
Domain myvm01 unmarked as autostarted[root@kvmserver autostart]# virsh list --autostartId    Name                           State
----------------------------------------------------

导出虚拟机配置

下面命令是备份虚拟机myvm01,路径还是放qemu目录下。

[root@kvmserver ~]# virsh dumpxml myvm01 > /etc/libvirt/qemu/myvm01_bak.xml

删除和导入虚拟机

        删除虚拟机前需要先关闭虚拟机,让虚拟机处于关机状态。需要注意的是,上面已经备份了myvm01的虚拟机,如果没有备份,建议先备份,以便后面的导入操作。

[root@kvmserver ~]# virsh shutdown myvm01
Domain myvm01 is being shutdown[root@kvmserver ~]# virsh undefine myvm01
Domain myvm01 has been undefined

        查看删除结果,虽然文件myvm01.xml被删除了,但是不会删除磁盘文件。通过list命令查看已经没有myvm01虚拟机了。

[root@kvmserver ~]# virsh list --allId    Name                           State
-----------------------------------------------------     myvm02                         shut off[root@kvmserver ~]# ll /etc/libvirt/qemu
total 8
drwxr-xr-x  2 root root    6 Apr 21 05:04 autostart
-rw-r--r--  1 root root 4061 Apr 21 05:10 myvm01_bak.xml
-rw-------  1 root root 3325 Apr 20 23:30 myvm02.xml
drwx------. 3 root root   42 Apr 17 04:32 networks

通过备份的配置文件重新定义虚拟机

[root@kvmserver ~]# mv /etc/libvirt/qemu/myvm01_bak.xml /etc/libvirt/qemu/myvm01.xml
[root@kvmserver ~]# virsh define /etc/libvirt/qemu/myvm01.xml 
Domain myvm01 defined from /etc/libvirt/qemu/myvm01.xml[root@kvmserver ~]# virsh list --allId    Name                           State
-----------------------------------------------------     myvm01                         shut off-     myvm02                         shut off

修改虚拟机配置文件

通过vim命令直接对配置文件修改
[root@kvmserver ~]# vim /etc/libvirt/qemu/myvm01.xml
通过edit命令直接对虚拟修改
[root@kvmserver ~]# virsh edit myvm01

查看虚拟机信息

[root@kvmserver ~]# virsh dominfo myvm01 
Id:             -
Name:           myvm01
UUID:           59727769-f3a3-418c-936b-8bf4191c766a
OS Type:        hvm
State:          shut off
CPU(s):         1
Max memory:     1048576 KiB
Used memory:    1048576 KiB
Persistent:     yes
Autostart:      disable
Managed save:   no
Security model: none
Security DOI:   0

连接虚拟机

进入虚拟机后按 ctrl + ] 退出虚拟机,注意需要先启动虚拟机,等待开机完成,输入用户密码登录即可。

[root@kvmserver ~]# virsh start myvm01
Domain myvm01 started[root@kvmserver ~]# virsh console myvm01vm01 login: root
Password: 
Last login: Fri Apr 21 14:18:14 on ttyS0
[root@vm01 ~]# 

虚拟机克隆

查看虚拟机状态

[root@kvmserver ~]# virsh list --allId    Name                           State
----------------------------------------------------8     myvm01                         running-     myvm02                         shut off

克隆虚拟机

克隆myvm02的虚拟机,到myvm02_clong

[root@kvmserver ~]# virt-clone -o myvm02 -n myvm02_clong -f /kvm/img/vm02_clong.qcow2 
Allocating 'vm02_clong.qcow2'                                     | 8.0 GB  00:00:12     Clone 'myvm02_clong' created successfully.

参数:-o 需要克隆的虚拟机名称;-n 新虚拟机名称; -f 指定克隆到哪个文件目录并命名

查看状态并启动

[root@kvmserver ~]# virsh list --allId    Name                           State
----------------------------------------------------8     myvm01                         running-     myvm02                         shut off-     myvm02_clong                   shut off[root@kvmserver ~]# virsh start myvm02_clong 
Domain myvm02_clong started[root@kvmserver ~]# virsh list --allId    Name                           State
----------------------------------------------------8     myvm01                         running9     myvm02_clong                   running-     myvm02                         shut off

虚拟机快照

        快照实际上做的是虚拟机的XML配置文件,默认快照XML文件,在/var/lib/libvirt/qemu/snapshot/虚拟机名/下,快照只支持qcow2磁盘格式的系统。

对虚拟机拍摄快照

        拍摄快照有两种方式,第一种是随机生成名称,第二种是指定名称,最后查看虚拟机快照,生成两个虚拟机快照。

[root@kvmserver ~]# virsh list --allId    Name                           State
----------------------------------------------------8     myvm01                         running9     myvm02_clong                   running-     myvm02                         shut off[root@kvmserver ~]# virsh snapshot-create myvm01
Domain snapshot 1682069915 created
[root@kvmserver ~]# virsh snapshot-create-as myvm01 as1
Domain snapshot as1 created
[root@kvmserver ~]# virsh snapshot-list myvm01Name                 Creation Time             State
------------------------------------------------------------1682069915           2023-04-21 05:38:35 -0400 runningas1                  2023-04-21 05:39:04 -0400 running

查看快照详细信息

[root@kvmserver ~]# virsh snapshot-current myvm01
<domainsnapshot><name>as1</name><state>running</state><parent><name>1682069915</name></parent><creationTime>1682069944</creationTime>
#省略部分内容

恢复快照

恢复myvm01虚拟机到快照1682069915

[root@kvmserver ~]# virsh snapshot-revert myvm01 1682069915[root@kvmserver ~]# virsh snapshot-current myvm01 
<domainsnapshot><name>1682069915</name><state>running</state><creationTime>1682069915</creationTime>			#虚拟机快照版本号<memory snapshot='internal'/>
#省略部分内容

删除快照

先查看myvm01有哪些快照,删除as1快照后查看是否删除。

[root@kvmserver ~]# virsh snapshot-list myvm01Name                 Creation Time             State
------------------------------------------------------------1682069915           2023-04-21 05:38:35 -0400 runningas1                  2023-04-21 05:39:04 -0400 running[root@kvmserver ~]# virsh snapshot-delete myvm01 as1
Domain snapshot as1 deleted[root@kvmserver ~]# virsh snapshot-list myvm01Name                 Creation Time             State
------------------------------------------------------------1682069915           2023-04-21 05:38:35 -0400 running

相关文章:

【KVM虚拟化】· virsh管理命令

目录 &#x1f341;libvirt架构概述 &#x1f341;使用virsh管理虚拟机 &#x1f342;常用命令总结 &#x1f341;kvm基本功能管理 &#x1f342;帮助命令 &#x1f342;KVM的配置文件存放目录 &#x1f342;查看虚拟机状态 &#x1f342;虚拟机关机与开机 &#x1f342;强制虚…...

JS Es6中判断b数组对象是否有跟a数组对象相同的数值(例如:id),有的话就过滤掉

如下[数组]对象a和b let a[{id:1,value:this},{id:2,value:is}] let b[{id:1,value:hello},{id:3,value:world}]filter() 方法创建一个新的数组&#xff0c;新数组中的元素是通过检查指定数组中符合条件的所有元素。 some() 方法用于检测数组中的元素是否满足指定条件&#x…...

python获取某电商平台口红数据并制作词云

目录标题 前言开发环境:模块使用数据来源分析代码展示获取数据制作词云 尾语 &#x1f49d; 前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 开发环境: Python 3.8 Pycharm 模块使用 requests jieba 结巴分词 wordcloud 词云 第三方模块安装&#xff1a; win R 输…...

阿里成立AIDC,用“增长”解题国际化

随着阿里巴巴集团2023财年年报的披露&#xff0c;AIDC也随即浮出了水面。 AIDC是阿里国际数字商业集团的英文简称&#xff0c;AIDC即Alibaba International Digital Commerce。阿里是在5月18日公布的截至2023年3月31日的2023财年Q4及全年财报&#xff0c;财报数据之外&#xff…...

全面理解:在计算机科学中同步、异步、并行、并发,他们之间到底有什么区别,如果正确更好的区分它们?

同步&#xff0c;异步&#xff0c;并行&#xff0c;并发的基础概念 在计算机中同步的基础概念 在计算机科学中&#xff0c;同步&#xff08;Synchronization&#xff09;是指在多个过程或线程中&#xff0c;它们的执行在时间上是有序的。换句话说&#xff0c;要执行一个特定的…...

9、Ray核心框架介绍

9、Ray核心框架介绍 导航 1.简介和背景 2.Ray的基本概念和核心组件 3.分布式任务调度和依赖管理 4.对象存储和数据共享 5.Actor模型和并发编程 6.Ray的高级功能和扩展性 7.使用Ray构建分布式应用程序的案例研究 8.Ray社区和资源 9.核心框架介绍 10.扩展1...

【华为OD机试python】工单调度策略【 2023 Q1 A卷|100分】

华为OD机试- 题目列表 2023Q1 点这里!! 2023华为OD机试-刷题指南 点这里!! ■ 题目描述 当小区通信设备上报警时,系统会自动生成待处理的工单, 工单调度系统需要根据不同的策略,调度外线工程师(FME)上站去修复工单对应的问题。 根据与运营商签订的合同,不同严重程度…...

[论文阅读72]Parameter-Efficient Transfer Learning for NLP

1. 基本信息 题目论文作者与单位来源年份Parameter-Efficient Transfer Learning for NLPNeil Houlsby等Google Research&#xff0c;雅盖隆大学-波兰PMLR2019 Houlsby N, Giurgiu A, Jastrzebski S, et al. Parameter-efficient transfer learning for NLP[C]//Internationa…...

0基础转行居然拿到9.5K!尘埃深处是繁花,强者从未停下!

人总是越长大越胆小&#xff0c;很多事情不敢做&#xff0c;以后就更不敢做了。 为梦想颠簸的人有很多&#xff0c;可能不差你这个&#xff0c;不如意的时候我们都会想要放弃&#xff0c;但是生活不是一个点&#xff0c;它是一条长长的线&#xff0c;唯有行动&#xff0c;才能摆…...

软考初级程序员上午单选题(13)

1、下列不能兼作输入设备和输出设备的是______。 A&#xff0e;可擦除型光盘 B&#xff0e;软盘 C&#xff0e;硬盘 D&#xff0e;键盘 2、文件型计算机病毒主要感染______。 A&#xff0e;.TXT文件 B&#xff0e;.GIF文件 C&#xff0e;.EXE文件 D&#xff0e;.MP3文件 3、_…...

【WSN覆盖】基于麻雀搜索算法的三维无线传感器网络覆盖优化 三维WSN覆盖优化【Matlab代码#26】

文章目录 【可更换其他算法&#xff0c;获取资源请见文章第5节&#xff1a;资源获取】1. SSA算法2. 三维覆盖模型3. 部分代码展示4. 仿真结果展示5. 资源获取 【可更换其他算法&#xff0c;获取资源请见文章第5节&#xff1a;资源获取】 1. SSA算法 2. 三维覆盖模型 三维覆盖模…...

【学习日记2023.5.20】 之 菜品模块完善

文章目录 3. 功能模块完善之菜品模块3.1 公共字段自动填充3.1.1 问题分析3.1.2 实现思路3.1.3 代码开发1.3.1 步骤一1.3.2 步骤二1.3.3 步骤三 3.1.4 功能测试3.1.5 提交代码 3.2 新增菜品3.2.1 需求分析与设计3.2.2 代码开发3.2.2.1 文件上传实现3.2.2.2 新增菜品实现 3.2.3 功…...

MySQL高级SQL语句

创建两个表用于演示 location store_info use kgc; create table location (Region char(20),Store_Name char(20)); insert into location values(East,Boston); insert into location values(East,New York); insert into location values(West,Los Angeles); insert into lo…...

rem和em的区别和使用场景,以及如何在实际开发中灵活运用它们

在前端开发中&#xff0c;我们经常使用rem和em作为长度单位来设置页面元素的大小。虽然它们都可以用于实现响应式布局&#xff0c;但是它们之间存在着一些区别。本文将深入探讨rem和em的区别和使用场景&#xff0c;以及如何在实际开发中灵活运用它们。 什么是rem rem是相对于…...

JDK源码阅读环境搭建

本次针对jdk8u版本的搭建 1.新建项目 新建java项目JavaSourceLearn &#xff0c;这里我创建的是maven 2.获取JDK源码 打开Project Structure 找到本地JDK安装位置将src.zip解压到项目java包中 整理下项目结构&#xff0c;删除用不到的目录 提示: 添加源码到项目之后首次运行…...

基本定时器工作模式

计数和定时 BasicTimer支持8位或16位向上计数模式。当计数值大于等于比较寄存器&#xff08;CMPH、CMPL&#xff09;&#xff0c;会产生计数中断标志&#xff0c;并从自动重载寄存器&#xff08;LOADH、LOADL&#xff09;加载新的比较值。这样可以实时调整每个计数周期的计数长…...

【华为OD机试真题2023B卷 JAVA】报文重排序

华为OD2023(B卷)机试题库全覆盖,刷题指南点这里 报文重排序 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 对报文进行重传和重排序是常用的可靠性机制,重传缓冲区内有一定数量的子报文,每个子报文在原始报文中的顺序已知,现在需要恢复出原始报文。。 输入描…...

【Docker】- 02 Docker-Compose

Docker-Compose Docker-Compose1 下载并安装Docker-Compose1.1 下载Docker-Compose1.2 设置权限1.3 配置环境变量1.4 测试 2 Docker-Compose管理MySQL和Tomcat容器3 使用docker-compose命令管理容器4 docker-compose配合Dockerfile使用4.1 docker-compose文件4.2 Dockerfile文件…...

工业相机的Pixel Binning和Pixel Skipping

一般图像传感器的不同分辨率都对应着不同的帧率。如果想要提高帧率&#xff0c;就要考虑是否需要缩小视野。若不希望视野缩小&#xff0c;就需要减小分辨率&#xff08;resolution&#xff09;。常用的减少分辨率的两种采样方式是&#xff1a;Skipping和Binning。 什么是Binni…...

c++ 11标准模板(STL) std::set(八)

定义于头文件 <set> template< class Key, class Compare std::less<Key>, class Allocator std::allocator<Key> > class set;(1)namespace pmr { template <class Key, class Compare std::less<Key>> using se…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

Kafka入门-生产者

生产者 生产者发送流程&#xff1a; 延迟时间为0ms时&#xff0c;也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于&#xff1a;异步发送不需要等待结果&#xff0c;同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...