【k8s中安装rabbitmq】k8s中安装rabbitmq并搭建镜像集群-hostpath版
文章目录
- 简介
- 一.条件及环境说明
- 二.需求说明
- 三.实现原理及说明
- 四.详细步骤
- 4.1.规划节点标签
- 4.2.创建configmap配置
- 4.3.创建三个statefulset和service headless配置
- 4.4.创建service配置
- 五.安装完后的配置
- 六.安装说明
简介
k8s集群中搭建rabbitmq集群服务一般都会用到pvc,但是考虑到有些自建k8s环境下,搭建的共享存储可能会存在稳定性及性能问题,所以这次是通过采用节点亲和性和hostpath来实现,目前的operator的基本都是采用共享存储的方法。本文将根据现有环境及不同需求将rabbitmq镜像集群的搭建采用hostpath+亲和性的权重+多副本来实现数据持久化和高可用。
一.条件及环境说明
k8s版本k8s-1.29.4,环境搭建在电信机房,六个worker节点,每个节点有一块非系统盘的ssd盘挂载到/data/路径,不采用ceph或nas之类的共享存储,也未采用operator,目前rabbitmq-operator基本都是采用了共享存储。
二.需求说明
- 搭建rabbitmq镜像模式集群。
- 高可用:有一个k8s节点死掉或重启pod之后也不影响使用。
- 高性能:读写本地磁盘实现高性能的io,共享存储如果资源及硬件性能不够的话,io将会是性能瓶颈。
- 数据安全:在发生切换,节点故障以后,数据要尽可能的保证完整
- 安装简单、管理维护容易
三.实现原理及说明
四.详细步骤
4.1.规划节点标签
节点名称 | 角色 | 标签 |
---|---|---|
k8s-worker-120-81 | 主 | storage-selector=node-a-master |
k8s-worker-120-82 | 主 | storage-selector=node-b-master |
k8s-worker-120-83 | 主 | storage-selector=node-c-master |
k8s-worker-120-84 | 备 | storage-selector=node-a-slve |
k8s-worker-120-85 | 备 | storage-selector=node-a-slve |
k8s-worker-120-86 | 备 | storage-selector=node-a-slve |
注:这里的rabbitmq是三节点的镜像集群,每个redis的pod分别落在三个主的节点上,当主节点发生故障是,就通过权重分配切换到备节点,例如:名称为autotest-rabbitmq-a-0的pod,默认落在标签为storage-selector=node-a-master的节点上,当该节点发生故障是,就会根据权重匹配罗在storage-selector=node-a-slve的节点上。
4.2.创建configmap配置
将如下配置保存到autotest-rabbitmq-config.yaml,配置中配置默认的vhost和用户密码,并初始化好集群节点【安装前规划好节点名称】信息。
apiVersion: v1
kind: ConfigMap
metadata:name: autotest-rabbitmq-confignamespace: zx-applabels:appname: pcauto-zxapp: autotest-rabbitmq-config
data:enabled_plugins: |[rabbitmq_management,rabbitmq_prometheus].rabbitmq.conf: |#listeners.tcp.default = 5672default_vhost = /default_user = admindefault_pass = admindefault_user_tags.administrator = truedefault_user_tags.management = truedefault_user_tags.custom_tag = truechannel_max = 1024tcp_listen_options.backlog = 2048cluster_partition_handling = autohealcluster_partition_handling.pause_if_all_down.recover = autohealcluster_formation.peer_discovery_backend = classic_configcluster_formation.classic_config.nodes.1 = rabbit@autotest-rabbitmq-a-0.autotest-rabbitmq-a.zx-app.svc.cluster.localcluster_formation.classic_config.nodes.2 = rabbit@autotest-rabbitmq-b-0.autotest-rabbitmq-b.zx-app.svc.cluster.localcluster_formation.classic_config.nodes.3 = rabbit@autotest-rabbitmq-c-0.autotest-rabbitmq-c.zx-app.svc.cluster.local# cluster_formation.node_type = disc# cluster_keepalive_interval = 10000log.file.level = errorlog.console = true
4.3.创建三个statefulset和service headless配置
1.autotest-a.yaml 节点a的statuflset配置和无头服务配置
apiVersion: apps/v1
kind: StatefulSet
metadata:name: autotest-rabbitmq-a namespace: zx-app labels:appname: pcauto-zxapp: autotest-rabbitmq-aappgroup: autotest-rabbitmq
spec:serviceName: "autotest-rabbitmq-a"replicas: 1selector:matchLabels:app: autotest-rabbitmq-aappgroup: autotest-rabbitmqtemplate:metadata:labels:app: autotest-rabbitmq-aappgroup: autotest-rabbitmqspec:affinity:nodeAffinity:preferredDuringSchedulingIgnoredDuringExecution:- weight: 80preference:matchExpressions:- key: storage-selectoroperator: Invalues:- node-a-master- weight: 20preference:matchExpressions:- key: storage-selectoroperator: Invalues:- node-a-slavecontainers:- name: rabbitmq-serverimage: xxx-vpc.cn-shenzhen.cr.aliyuncs.com/public/rabbitmq:3.12.14-management imagePullPolicy: IfNotPresentcommand: ["/bin/sh","-c"]args: - mkdir -p /home/rabbitmq/${POD_NAME};chown rabbitmq.rabbitmq -R /home/rabbitmq/${POD_NAME};rabbitmq-serverenv:- name: RABBITMQ_ERLANG_COOKIEvalue: "YZSDHWMFSMKEMBDHSGGZ"- name: K8S_SERVICE_NAMEvalue: autotest-rabbitmq-a- name: POD_IPvalueFrom:fieldRef:fieldPath: status.podIP- name: POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name- name: POD_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespace- name: RABBITMQ_MNESIA_BASEvalue: /home/rabbitmq/$(POD_NAME)/mnesia- name: RABBITMQ_USE_LONGNAMEvalue: "true"- name: RABBITMQ_NODENAMEvalue: rabbit@$(POD_NAME).$(K8S_SERVICE_NAME).$(POD_NAMESPACE).svc.cluster.localports:- name: httpcontainerPort: 15672 - name: amqpcontainerPort: 5672 volumeMounts:- name: rbmq-datamountPath: /home/rabbitmq - name: rabbitmq-config-volumemountPath: /etc/rabbitmq/ restartPolicy: Always terminationGracePeriodSeconds: 30volumes:- name: rbmq-datahostPath:path: /data/rabbitmqtype: ""- name: rabbitmq-config-volumeconfigMap:name: autotest-rabbitmq-configtolerations:- key: node.kubernetes.io/not-readyoperator: Existseffect: NoExecutetolerationSeconds: 3600- key: node.kubernetes.io/unreachableoperator: Existseffect: NoExecutetolerationSeconds: 3600
---
apiVersion: v1
kind: Service
metadata:name: autotest-rabbitmq-anamespace: zx-applabels:appname: pcauto-zxapp: autotest-rabbitmq-a
spec:ports:- port: 5672clusterIP: Noneselector:app: autotest-rabbitmq-a
2.autotest-b.yaml 节点b的statuflset配置和无头服务配置
apiVersion: apps/v1
kind: StatefulSet
metadata:name: autotest-rabbitmq-b namespace: zx-app labels:appname: pcauto-zxapp: autotest-rabbitmq-bappgroup: autotest-rabbitmq
spec:serviceName: "autotest-rabbitmq-b"replicas: 1selector:matchLabels:app: autotest-rabbitmq-bappgroup: autotest-rabbitmqtemplate:metadata:labels:app: autotest-rabbitmq-bappgroup: autotest-rabbitmqspec:affinity:nodeAffinity:preferredDuringSchedulingIgnoredDuringExecution:- weight: 80preference:matchExpressions:- key: storage-selectoroperator: Invalues:- node-b-master- weight: 20preference:matchExpressions:- key: storage-selectoroperator: Invalues:- node-b-slavecontainers:- name: rabbitmq-serverimage: xxx-vpc.cn-shenzhen.cr.aliyuncs.com/public/rabbitmq:3.12.14-management imagePullPolicy: IfNotPresentcommand: ["/bin/sh","-c"]args: - mkdir -p /home/rabbitmq/${POD_NAME};chown rabbitmq.rabbitmq -R /home/rabbitmq/${POD_NAME};rabbitmq-serverenv:- name: RABBITMQ_ERLANG_COOKIEvalue: "YZSDHWMFSMKEMBDHSGGZ"- name: K8S_SERVICE_NAMEvalue: autotest-rabbitmq-b- name: POD_IPvalueFrom:fieldRef:fieldPath: status.podIP- name: POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name- name: POD_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespace- name: RABBITMQ_MNESIA_BASEvalue: /home/rabbitmq/$(POD_NAME)/mnesia- name: RABBITMQ_USE_LONGNAMEvalue: "true"- name: RABBITMQ_NODENAMEvalue: rabbit@$(POD_NAME).$(K8S_SERVICE_NAME).$(POD_NAMESPACE).svc.cluster.localports:- name: httpcontainerPort: 15672 - name: amqpcontainerPort: 5672 volumeMounts:- name: rbmq-datamountPath: /home/rabbitmq - name: rabbitmq-config-volumemountPath: /etc/rabbitmq/ restartPolicy: Always terminationGracePeriodSeconds: 30volumes:- name: rbmq-datahostPath:path: /data/rabbitmqtype: ""- name: rabbitmq-config-volumeconfigMap:name: autotest-rabbitmq-configtolerations:- key: node.kubernetes.io/not-readyoperator: Existseffect: NoExecutetolerationSeconds: 3600- key: node.kubernetes.io/unreachableoperator: Existseffect: NoExecutetolerationSeconds: 3600
---
apiVersion: v1
kind: Service
metadata:name: autotest-rabbitmq-bnamespace: zx-applabels:appname: pcauto-zxapp: autotest-rabbitmq-b
spec:ports:- port: 5672clusterIP: Noneselector:app: autotest-rabbitmq-b
3.autotest-c.yaml 节点c的statuflset配置和无头服务配置
apiVersion: apps/v1
kind: StatefulSet
metadata:name: autotest-rabbitmq-c namespace: zx-app labels:appname: pcauto-zxapp: autotest-rabbitmq-cappgroup: autotest-rabbitmq
spec:serviceName: "autotest-rabbitmq-c"replicas: 1selector:matchLabels:app: autotest-rabbitmq-cappgroup: autotest-rabbitmqtemplate:metadata:labels:app: autotest-rabbitmq-cappgroup: autotest-rabbitmqspec:affinity:nodeAffinity:preferredDuringSchedulingIgnoredDuringExecution:- weight: 80preference:matchExpressions:- key: storage-selectoroperator: Invalues:- node-c-master- weight: 20preference:matchExpressions:- key: storage-selectoroperator: Invalues:- node-c-slavecontainers:- name: rabbitmq-serverimage: xxx-vpc.cn-shenzhen.cr.aliyuncs.com/public/rabbitmq:3.12.14-management imagePullPolicy: IfNotPresentcommand: ["/bin/sh","-c"]args: - mkdir -p /home/rabbitmq/${POD_NAME};chown rabbitmq.rabbitmq -R /home/rabbitmq/${POD_NAME};rabbitmq-serverenv:- name: RABBITMQ_ERLANG_COOKIEvalue: "YZSDHWMFSMKEMBDHSGGZ"- name: K8S_SERVICE_NAMEvalue: autotest-rabbitmq-c- name: POD_IPvalueFrom:fieldRef:fieldPath: status.podIP- name: POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name- name: POD_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespace- name: RABBITMQ_MNESIA_BASEvalue: /home/rabbitmq/$(POD_NAME)/mnesia- name: RABBITMQ_USE_LONGNAMEvalue: "true"- name: RABBITMQ_NODENAMEvalue: rabbit@$(POD_NAME).$(K8S_SERVICE_NAME).$(POD_NAMESPACE).svc.cluster.localports:- name: httpcontainerPort: 15672 - name: amqpcontainerPort: 5672 volumeMounts:- name: rbmq-datamountPath: /home/rabbitmq - name: rabbitmq-config-volumemountPath: /etc/rabbitmq/ restartPolicy: Always terminationGracePeriodSeconds: 30volumes:- name: rbmq-datahostPath:path: /data/rabbitmqtype: ""- name: rabbitmq-config-volumeconfigMap:name: autotest-rabbitmq-configtolerations:- key: node.kubernetes.io/not-readyoperator: Existseffect: NoExecutetolerationSeconds: 3600- key: node.kubernetes.io/unreachableoperator: Existseffect: NoExecutetolerationSeconds: 3600
---
apiVersion: v1
kind: Service
metadata:name: autotest-rabbitmq-cnamespace: zx-applabels:appname: pcauto-zxapp: autotest-rabbitmq-c
spec:ports:- port: 5672clusterIP: Noneselector:app: autotest-rabbitmq-c
4.4.创建service配置
给amqp端口5672和管理端口15672配置一个service的代理服务,注意其中的selector是指向到appgroup,这是将三个statefulset定义了一个appgroup的标签。
apiVersion: v1
kind: Service
metadata:name: autotest-rabbitmq-managenamespace: zx-applabels:app: autotest-rabbitmq-manageappname: pcauto-zx
spec:ports:- port: 5672name: amqp- port: 15672name: httpselector:appgroup: autotest-rabbitmqsessionAffinity: ClientIPtype: LoadBalancer
五.安装完后的配置
将rabbitmq的集群设置成3节点的镜像集群,在4.4步骤操作完以后就可以通过loadbalancer的IP进行登录控制台了:http://ip:15672,用configmap中设置的 default_user和default_pass来登录。
镜像模式设置:
设置后:
镜像模式可以通过命令设置:
设置demo的vhost的镜像执行命令:
rabbitmqctl set_policy -p demo ha-all "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
设置默认vhost /的镜像模式:
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
六.安装说明
- 需要先在k8s的节点创建/data/rabbitmq的路径来存放数据。
- 使用配置前将配置中的autotest替换成自己需要的命名,配置的命名空间为:zx-app,修改成自己的命名空间,appname为pcauto-zx,修改成自己的应用名称,该标签也可以删除。
- 配置中的镜像地址采用了私有的镜像地址,镜像是dockerhub上下载的rabbitmq:3.12.14-management 镜像到私有镜像仓库的,如果能直通外网的k8s可以直接用rabbitmq:3.12.14-management 。否则配置一个可以通的镜像地址。
- 默认的用户名和密码是admin。
- 节点标签的命名规则若有更改需要在每个statefulset中的affinity: 中的标签名称进行修改。
相关文章:
【k8s中安装rabbitmq】k8s中安装rabbitmq并搭建镜像集群-hostpath版
文章目录 简介一.条件及环境说明二.需求说明三.实现原理及说明四.详细步骤4.1.规划节点标签4.2.创建configmap配置4.3.创建三个statefulset和service headless配置4.4.创建service配置 五.安装完后的配置六.安装说明 简介 k8s集群中搭建rabbitmq集群服务一般都会用到pvc&#x…...
(5) 深入探索Python-Pandas库的核心数据结构:Series详解
目录 前言1. Series 简介2. Series的特点3. Series的创建3.1 使用列表创建Series3.2 使用字典创建Series3.3 使用列表和自定义索引创建Series3.4 指定数据类型和名称 4. Series的索引/切片4.1 下标索引:基于整数位置的索引4.2 基于标签的索引4.3 切片4.4 使用.loc[]…...
JAVA之开发神器——IntelliJ IDEA的下载与安装
一、IDEA是什么? IEAD是JetBrains公司开发的专用于java开发的一款集成开发环境。由于其功能强大且符合人体工程学(就是更懂你)的优点,深受java开发人员的喜爱。目前在java开发工具中占比3/4。如果你要走java开发方向,那…...
通过Umijs从0到1搭建一个React项目
有一阵时间没写react了,今天通过umi搭建一个demo项目复习一下react;umi是一个可扩展的企业级前端应用框架,在react市场中还是比较火的一个框架。 Umi官方文档:Umi 介绍 (umijs.org) 一、构建项目。 1、安装包管理工具。 官方推…...
Redis 数据过期及淘汰策略
Redis 数据过期及淘汰策略 过期策略 定时过期 在设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对key进行删除。到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好&a…...
vue vite+three在线编辑模型导入导出
文章目录 序一、1.0.0版本1.新增2.编辑3.导出4.导入 总结 序 要实现一个类似于数字孪生的场景 可以在线、新增、删除模型 、以及编辑模型的颜色、长宽高 然后还要实现 编辑完后 保存为json数据 记录模型数据 既可以导入也可以导出 一、1.0.0版本 1.新增 先拿建议的立方体来…...
去水印小程序源码修复版-前端后端内置接口+第三方接口
去水印小程序源码,前端后端,内置接口第三方接口, 修复数据库账号密码错误问题,内置接口支持替换第三方接口, 文件挺全的,可以添加流量主代码,搭建需要准备一台服务器,备案域名和http…...
机器学习:预测评估8类指标
机器学习:8类预测评估指标 R方值、平均值绝对误差值MAE、均方误差MSE、均方误差根EMSE、中位数绝对误差MAD、平均绝对百分误差MAPE、可解释方差分EVS、均方根对数误差MLSE。 一、R方值 1、说明: R方值,也称为确定系数或拟合优度ÿ…...
【深度学习基础】MAC pycharm 专业版安装与激活
文章目录 一、pycharm专业版安装二、激活 一、pycharm专业版安装 PyCharm是一款专为Python开发者设计的集成开发环境(IDE),旨在帮助用户在使用Python语言开发时提高效率。以下是对PyCharm软件的详细介绍,包括其作用和主要功能&…...
排序相关算法--1.插入排序+冒泡排序回顾
1.基本分类 2.插入排序 特点:有实践意义(例如后期快排的优化),适应性强,一般不会到时间复杂度最坏的情况。 将第一个元素视为已经排好序的序列。取出下一个元素,在已经排好序的序列中从后往前比较…...
变阻器的故障排除方法有哪些?
变阻器,特别是滑动变阻器,作为电子电路中的常见元件,其故障排除方法主要依据具体的故障现象来确定。以下是一些常见的故障现象及其排除方法: 一、接触不良 现象:电阻器不起作用或电压不稳定。 排除方法: …...
软考《信息系统运行管理员》-3.1信息系统设施运维的管理体系
3.1信息系统设施运维的管理体系 1 信息系统设施运维的对象 基础环境 主要包括信息系统运行环境(机房、设备间、配线室、基站、云计算中心 等)中的空调系统、供配电系统、通信应急设备系统、防护设备系统(如消防系统、安全系统) 等,能维持系统安全正常运转…...
Nginx重定向
Nginx重定向 location 匹配 location匹配的就是后面的URL /WordPress 192.168.118.10/wordpress location匹配的分类和优先级 1.精确匹配 location/对字符串进行完全匹配,必须完全符合2.正则匹配 ^~ 前缀匹配,以什么为开头~ 区分大小写的匹配~* 不区分大小写!~: 区分大小…...
私有化地图离线部署方案之高程检索服务
私有化地图离线部署整体解决方案,除硬件之外,一般主要由基础地图服务、查询定位服务、路径规划服务和高程检索服务构成。 我们已经分享过基础地图服务、查询定位服务和路径规划服务,现在再为你分享高程检索服务的方法。 私有化高程检索服务…...
PostgreSQL 中如何实现数据的增量更新和全量更新的平衡?
文章目录 一、增量更新与全量更新的概念增量更新全量更新 二、考虑的因素1. 数据量2. 数据更改的频率和规模3. 数据一致性要求4. 系统性能和资源利用5. 业务逻辑和流程 三、解决方案(一)混合使用增量更新和全量更新(二)使用临时表…...
数据结构--二叉树相关习题5(判断二叉树是否是完全二叉树 )
1.判断二叉树是否是完全二叉树 辨别: 不能使用递归或者算节点个数和高度来判断。 满二叉树可以用高度和节点来判断,因为是完整的。 但是完全二叉树前面是满的,但是最后一层是从左到右连续这种 如果仍然用这种方法的话,如下图…...
Python 轻松生成多种条形码、二维码 (Code 128、EAN-13、QR code等)
条形码和二维码是现代信息交换和数据存储的重要工具,它们将信息以图形的形式编码,便于机器识别和数据处理,被广泛应用于物流、零售、医疗、教育等各领域。 本文将介绍如何使用Python快速生成各种常见的条形码如Code 128、EAN-13,…...
Python: 分块读取文本文件
在处理大文件时,逐行或分块读取文件是很常见的需求。下面是几种常见的方法,用于在 Python 中分块读取文本文件: 1、问题背景 如何分块读取一个较大的文本文件,并提取出特定的信息? 问题描述: fopen(blank.txt,r) quot…...
服务攻防——中间件Jboss
文章目录 一、Jboss简介二、Jboss渗透2.1 JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)2.2 JBoss JMXInvokerServlet 反序列化漏洞(CVE-2015-7501)2.3 JBossMQ JMS 反序列化漏洞(CVE-2017-7504)2.4 Adminis…...
宏碁F5-572G-59K3笔记本笔记本电脑拆机清灰教程(详解)
1. 前言 我的笔记本开机比较慢,没有固态,听说最近固态比较便宜,就想入手一个,于是拆笔记本看一下有没有可以安的装位置。(友情提示,在拆机之前记得洗手并擦干,以防静电损坏电源器件)…...
基于FPGA的LDPC编译码算法设计基础知识
基于FPGA的LDPC编译码算法设计基础知识 数字电路(数电)知识模拟电路(模电)知识1. 放大器1.1. 晶体管放大器1.2. 运算放大器1.3. 管子放大器(真空管放大器)微处理器/单片机知识其他相关知识 基于FPGA的算法设…...
国际网课平台Udemy上的亚马逊云科技AWS免费高分课程和创建、维护EC2动手实践
亚马逊云科技(AWS)是全球云行业最🔥火的云平台,在全球经济形势不好的大背景下,通过网课学习亚马逊云科技AWS基础备考亚马逊云科技AWS证书,对于找工作或者无背景转行做AWS帮助巨大。欢迎大家关注小李哥,及时了解世界最前…...
空中交通新动能!2024深圳eVTOL展动力电池展区核心内容抢先看!
空中交通新动能!2024深圳eVTOL展动力电池展区核心内容抢先看! 关键词:2024深圳eVTOL展 动力电池 高能量密度电池 高性能电池材料 作为2024深圳eVTOL展重要组成部分,2024深圳eVTOL动力电池展将于9月23-25日在深圳坪山燕子湖国际会…...
代码江湖:Python 中的进程与线程
大家好,我是阔升。今天,咱们来聊聊 Python 中的两个"老熟人"——进程和线程。这两个概念可以说是 Python 多任务编程中的"双子星",既相似又不同,让不少小伙伴们头疼不已。不过别担心,今天我们就来…...
根据H在有限域GF(2^m)上求解生成矩阵G
原理 有时间再补充。 注1:使用高斯消去法。如果Py不为单位阵,则说明进行了列置换,此时G不是系统形式。 注2:校验矩阵H必须是行满秩才存在对应的生成矩阵G,且生成矩阵G通常不唯一。 matlab实现:只做列置…...
Django 实现子模版继承父模板
背景 Django的占位符,如果不继承父模板的内容,会被子模版所覆盖,有些业务场景子模版也需要使用到父模板中的内容 可以使用Django自带的标签{% block super %}来实现此效果 base.html 最基础html,相当于第一层html,bl…...
数据安全治理:从库级权限申请到表级权限申请
背景 随着数据安全意识的提高,企业越来越重视数据治理和权限管理。传统数仓大多对库级别进行读写授权,仅对人工标记的敏感库进行表级别授权,但由于敏感等级是由人为标记,错误率较高,故期望将权限申请流程细化到表级申…...
vue3源码(六)渲染原理-runtime-core
1.依赖关系 runtime-dom 依赖于runtime-core,runtime-core 依赖于reactivity和sharedruntime-core提供跨平台的渲染方法createRenderer,用户可以自己传递节点渲染的渲染方法renderOptions,本身不关心用户使用什么APIruntime-dom提供了为浏览器而生的渲染…...
python拆分Excel数据,自动发邮箱
import pandas as pd import poplib import email from email.header import decode_header from email.parser import Parser df = pd.read_excel("年假明细表.xlsx") depts = df["部门"].unique() for dept in depts: department_df = df[df[&q…...
2024年福州延安中学夏季拿云杯拔尖创新人才素养测试(小高组)
1、选择题 那么,mn的值是( ) A、1243 B、1343 C、4029 D、4049 2、填空题 一副扑克牌共54张,其中1到13点各有 4张,每个数字黑色红色各两张,还有两张王牌,至少要取出( )…...
企业通用网站模板/点击软件
之前把VCenter安装在了一个虚拟机上,因为要节约资源就将这个机停掉了。在此期间都是通过VClient直接连接的EXS主机,也删除过虚拟机也新建过虚拟机。由于一些需要,我再次打开安装有VCenter的虚拟接,然后使用VClient连接VCenter&…...
wordpress 限制游客/企业网站策划
调度算法一、先来先服务FCFS (First Come First Serve)1.思想:选择最先进入后备/就绪队列的作业/进程,入主存/分配CPU2.优缺点优点:对所有作业/进程公平,算法简单稳定缺点:不够灵活,对紧急进程的优先处理权…...
wordpress本地mp3/河南疫情最新情况
在Linux系统下,重启Tomcat使用命令操作的!创建文件夹mkdir name newname————————————————————————————————————————删除文件夹实例:rm -rf /var/log/httpd/access将会删除/var/log/httpd/access目录…...
360网站收录/搜索引擎付费推广
分布式事务以及解决方法参考文章: (1)分布式事务以及解决方法 (2)https://www.cnblogs.com/aoshicangqiong/p/7726323.html 备忘一下。...
网站建设 网站专题 网络推广/线下推广方案
atom个数限制 t xxx 进程数限制 P xxxx ets表个数限制 e xxx ports个数限制 Q xxxx 查看限制 string:tokens(binary_to_list(erlang:system_info(info)),"\n"). 转载于:https://www.cnblogs.com/ziyouchutuwenwu/p/4345183.html...
扬中市做网站/免费推广产品的网站
忽然之间,美国食品药物管理局(以下简称FDA)成了AI医疗亲密无间的好朋友和坚定的支持者。 2018年上半年,FDA相继批准癫痫监测与警报AI手表Embrace、AI临床监测平台Wave、脑卒中护理软件Viz.ai、自闭症筛查AI软件Cognoa以及血糖预测…...