基于Rook的Ceph云原生存储部署与实践指南(下)
#作者:任少近
文章目录
- 6Ceph资源对像管理
- 6.1查看services
- 6.2查看Jobs
- 6.3 查看deployments.apps
- 6.4查看daemonsets.apps
- 6.5查看configmaps
- 6.6查看clusterroles.rbac.authorization.k8s.io
- 6.7查看clusterrolebindings.rbac.authorization.k8s.io
- 6.8通过cephclusters.ceph查看OSD池信息
- 7访问ceph
- 7.1Toolbox客户端
- 7.1K8s节点访问ceph
- 7.2暴露端口web访问
- 7.3删除OSD Deployment
- 7.4Ceph的Pool(多租户)创建pool设置pg的数量
- 7.5修改登录密码
- 8安装错误汇总
- 8.1quincy版的Ceph-coomon安装报错
- 9故障处理
- 9.1ceph集群提示daemons have recently crashed, health: HEALTH_WARN
- 9.2osd down
6Ceph资源对像管理
6.1查看services
[root@k8s-master ~]# kubectl -n rook-ceph get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
rook-ceph-mgr ClusterIP 10.110.141.201 <none> 9283/TCP 13h
rook-ceph-mgr-dashboard ClusterIP 10.103.197.146 <none> 8443/TCP 13h
rook-ceph-mon-a ClusterIP 10.110.163.61 <none> 6789/TCP,3300/TCP 13h
rook-ceph-mon-b ClusterIP 10.100.49.10 <none> 6789/TCP,3300/TCP 13h
rook-ceph-mon-c ClusterIP 10.96.193.162 <none> 6789/TCP,3300/TCP 13h
6.2查看Jobs
[root@k8s-master]#kubectl -n rook-ceph get jobs
NAME COMPLETIONS DURATION AGE
rook-ceph-osd-prepare-k8s-master 1/1 6s 11h
rook-ceph-osd-prepare-k8s-node1 1/1 7s 11h
rook-ceph-osd-prepare-k8s-node2 1/1 7s 11h
rook-ceph-osd-prepare-k8s-node3 1/1 6s 11h
6.3 查看deployments.apps
[root@k8s-master]# kubectl -n rook-ceph get deployments.apps
NAME READY UP-TO-DATE AVAILABLE AGE
csi-cephfsplugin-provisioner 2/2 2 2 12h
csi-rbdplugin-provisioner 2/2 2 2 12h
rook-ceph-crashcollector-k8s-master 1/1 1 1 12h
rook-ceph-crashcollector-k8s-node1 1/1 1 1 12h
rook-ceph-crashcollector-k8s-node2 1/1 1 1 12h
rook-ceph-crashcollector-k8s-node3 1/1 1 1 12h
rook-ceph-mgr-a 1/1 1 1 12h
rook-ceph-mgr-b 1/1 1 1 12h
rook-ceph-mon-a 1/1 1 1 12h
rook-ceph-mon-b 1/1 1 1 12h
rook-ceph-mon-c 1/1 1 1 12h
rook-ceph-operator 1/1 1 1 12h
rook-ceph-osd-0 1/1 1 1 12h
rook-ceph-osd-1 1/1 1 1 12h
rook-ceph-osd-2 1/1 1 1 12h
rook-ceph-osd-3 1/1 1 1 12h
6.4查看daemonsets.apps
[root@k8s-master]# kubectl -n rook-ceph get daemonsets.apps
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
csi-cephfsplugin 4 4 4 4 4 <none> 12h
csi-rbdplugin 4 4 4 4 4 <none> 12h
6.5查看configmaps
[root@k8s-master]# kubectl -n rook-ceph get configmaps
NAME DATA AGE
kube-root-ca.crt 1 13h
rook-ceph-csi-config 1 12h
rook-ceph-csi-mapping-config 1 12h
rook-ceph-mon-endpoints 5 12h
rook-ceph-operator-config 33 13h
rook-config-override 1 12h
6.6查看clusterroles.rbac.authorization.k8s.io
[root@k8s-master # kubectl -n rook-ceph get clusterroles.rbac.authorization.k8s.io
NAME CREATED AT
cephfs-csi-nodeplugin 2023-06-13T13:56:29Z
cephfs-external-provisioner-runner 2023-06-13T13:56:29Z
rbd-csi-nodeplugin 2023-06-13T13:56:29Z
rbd-external-provisioner-runner 2023-06-13T13:56:29Z
rook-ceph-cluster-mgmt 2023-06-13T13:56:29Z
rook-ceph-global 2023-06-13T13:56:29Z
rook-ceph-mgr-cluster 2023-06-13T13:56:29Z
rook-ceph-mgr-system 2023-06-13T13:56:29Z
rook-ceph-object-bucket 2023-06-13T13:56:29Z
rook-ceph-osd 2023-06-13T13:56:29Z
rook-ceph-system 2023-06-13T13:56:29Z
6.7查看clusterrolebindings.rbac.authorization.k8s.io
kubectl -n rook-ceph get clusterrolebindings.rbac.authorization.k8s.iocephfs-csi-nodeplugin-role ClusterRole/cephfs-csi-nodeplugin
cephfs-csi-provisioner-role ClusterRole/cephfs-external-provisioner-runner
rbd-csi-nodeplugin ClusterRole/rbd-csi-nodeplugin
rbd-csi-provisioner-role ClusterRole/rbd-external-provisioner-runner
rook-ceph-global ClusterRole/rook-ceph-global
rook-ceph-mgr-cluster ClusterRole/rook-ceph-mgr-cluster
rook-ceph-object-bucket ClusterRole/rook-ceph-object-bucket
rook-ceph-osd ClusterRole/rook-ceph-osd
rook-ceph-system ClusterRole/rook-ceph-system
6.8通过cephclusters.ceph查看OSD池信息
如果你使用了 Rook Ceph Operator 来管理 Ceph 集群,还可以查看 Rook 中的自定义资源来获取 OSD 池的信息
[root@k8s-master ~]# kubectl get cephclusters.ceph.rook.io rook-ceph -o yaml
7访问ceph
7.1Toolbox客户端
部署
cd rook/deploy/examples/
kubectl apply -f toolbox.yaml
连接ceph 集群
[root@k8s-master ~]# kubectl -n rook-ceph exec -it rook-ceph-tools-7857bc9568-q9fjk /bin/bash
bash-4.4$ ceph -scluster:id: e320aa6c-0057-46ad-b2bf-5c49df8eba5ahealth: HEALTH_OKservices:mon: 3 daemons, quorum a,b,c (age 13h)mgr: b(active, since 13h), standbys: aosd: 4 osds: 4 up (since 13h), 4 in (since 13h)data:pools: 1 pools, 1 pgsobjects: 2 objects, 449 KiBusage: 45 MiB used, 200 GiB / 200 GiB availpgs: 1 active+clean
7.1K8s节点访问ceph
在节点添加ceph.conf keyring
[root@k8s-master]#mkdir /etc/ceph
[root@k8s-master]#cd /etc/ceph
[root@k8s-master]#vi ceph.conf
[global]
mon_host = 10.110.163.61:6789,10.100.49.10:6789,10.96.193.162:6789
[client.admin]
keyring = /etc/ceph/keyring[root@k8s-master]#vi keyring
[client.admin]
key = AQCGfYhkeMnEFRAAJnW4jUMwmJz2b1dPvdTOJg==
验证
telnet 10.110.163.61 6789 以上三个services地址任一个
添加yum源
[ceph]
name=ceph
baseurl=https://mirrors.aliyun.com/ceph/rpm-quincy/el8/x86_64/
enabled=1
gpgcheck=0
安装ceph-common (安装失败,详情见5.1)
[root@k8s-master]#yum install -y ceph-common
成功可在节点上直接操作如下:
7.2暴露端口web访问
执行rook/deploy/examples/dashboard-external-https.yaml
[root@k8s-master examples]#kubectl apply -f rook/deploy/examples/dashboard-external-https.yamlrook-ceph-mgr-dashboard-external-https NodePort 10.106.127.224 <none> 8443:31555/TCP
获取密码:
kubectl -n rook-ceph get secrets rook-ceph-dashboard-password -o jsonpath='{.data.password}' | base64 --decode > rook-ceph-dashboard-password.passwordG+LIkJwXQ/E*>/P&DbzB
访问,用户名为admin
https://192.168.123.194:31555/
7.3删除OSD Deployment
如果cluster.yaml中removeOSDsIfOutAndSafeToRemove: true设置为true,则Rook Operator将自动清除Deployment。默认为false。
7.4Ceph的Pool(多租户)创建pool设置pg的数量
以pool为颗粒度,如果不创建/指定,则数据会存放在默认的pool里。创建pool需要设置pg的数量,一般来说每个OSD为100个PG,也可以按照如下规则配置:
若少于5个OSD, 设置pg_num为128。
5~10个OSD,设置pg_num为512。
10~50个OSD,设置pg_num为4096。
超过50个OSD,可以参考pgcalc计算。
Pool上还需要设置CRUSH Rules策略,这是data如何分布式存储的策略。
此外,针对pool,还可以调整POOL副本数量、删除POOL、设置POOL配额、重命名POOL、查看POOL状态信息。
7.5修改登录密码
登录kubectl exec -it rook-ceph-tools-7857bc9568-q9fjk bash
bash-4.4$ echo -n ‘1qaz@WSX’ > /tmp/password.txt
bash-4.4$ ceph dashboard ac-user-set-password admin --force-password -i /tmp/password.txt,以新密码登录。
以admin/1qaz@WSX为用户名密码登录。
8安装错误汇总
8.1quincy版的Ceph-coomon安装报错
原因:aliyuncs上无el7版本的quincy依赖包,只有el8依赖包有quincy版,尝试octopus版同样报错。
--> Finished Dependency Resolution
Error: Package: 2:libcephfs2-17.2.6-0.el8.x86_64 (ceph)Requires: libstdc++.so.6(GLIBCXX_3.4.21)(64bit)
Error: Package: 2:ceph-common-17.2.6-0.el8.x86_64 (ceph)Requires: libstdc++.so.6(CXXABI_1.3.11)(64bit)
Error: Package: 2:libcephfs2-17.2.6-0.el8.x86_64 (ceph)Requires: libstdc++.so.6(GLIBCXX_3.4.20)(64bit)
Error: Package: 2:ceph-common-17.2.6-0.el8.x86_64 (ceph)Requires: libstdc++.so.6(GLIBCXX_3.4.22)(64bit)
。。。。。
。。。。。Requires: libstdc++.so.6(GLIBCXX_3.4.20)(64bit)
Error: Package: 2:librgw2-17.2.6-0.el8.x86_64 (ceph)Requires: libicuuc.so.60()(64bit)
Error: Package: 2:librgw2-17.2.6-0.el8.x86_64 (ceph)Requires: libstdc++.so.6(GLIBCXX_3.4.21)(64bit)
Error: Package: 2:librgw2-17.2.6-0.el8.x86_64 (ceph)Requires: libstdc++.so.6(CXXABI_1.3.11)(64bit)
Error: Package: 2:librgw2-17.2.6-0.el8.x86_64 (ceph)Requires: libthrift-0.13.0.so()(64bit)You could try using --skip-broken to work around the problemYou could try running: rpm -Va --nofiles --nodigest
9故障处理
9.1ceph集群提示daemons have recently crashed, health: HEALTH_WARN
bash-4.4$ ceph statuscluster:id: e320aa6c-0057-46ad-b2bf-5c49df8eba5ahealth: HEALTH_WARN3 mgr modules have recently crashedservices:mon: 3 daemons, quorum a,b,c (age 23h)mgr: b(active, since 23h), standbys: aosd: 4 osds: 4 up (since 23h), 4 in (since 23h)data:pools: 1 pools, 1 pgsobjects: 2 objects, 449 KiBusage: 45 MiB used, 200 GiB / 200 GiB avail
pgs: 1 active+clean#查看详细日志信息
bash-4.4$ ceph health detail
HEALTH_WARN 3 mgr modules have recently crashed
[WRN] RECENT_MGR_MODULE_CRASH: 3 mgr modules have recently crashed
ceph 的 crash模块用来收集守护进程出现 crashdumps (崩溃)的信息,并将其存储在ceph集群中,以供以后分析。
crash查看一下
bash-4.4$ ceph crash ls
ID ENTITY NEW
2023-06-14T13:56:38.064890Z_75a59d8c-9c99-47af-8cef-e632d8f0a010 mgr.b *
2023-06-14T13:56:53.252095Z_bc44e5d3-67e5-4c22-a872-e9c7f9799f55 mgr.b *
2023-06-14T13:57:38.564803Z_1f132169-793b-4ac6-a3c7-af48c91f5365 mgr.b *
#带*号表示为最新,上面说mgr和osd有异常信息,接下来排查下osd和mgr,看看是不是因为没有归档的原因造成bash-4.4$ ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 0.19519 root default
-5 0.04880 host k8s-master0 ssd 0.04880 osd.0 up 1.00000 1.00000
-3 0.04880 host k8s-node11 ssd 0.04880 osd.1 up 1.00000 1.00000
-9 0.04880 host k8s-node23 ssd 0.04880 osd.3 up 1.00000 1.00000
-7 0.04880 host k8s-node32 ssd 0.04880 osd.2 up 1.00000 1.00000
通过上面的命令,排查到集群状态是ok,判断crash没有归档,造成误报,接下来进行归档
#第一种方法,适合只有一两个没有归档的
#ceph crash ls
#ceph crash archive <id>
#第二种方法,适合多个归档异常的,我们这边直接执行下面的命令
#ceph crash archive-all
9.2osd down
直接看挂了,看日志。
通过ceph osd tree,发现osd.3 down了。在k8s-node2上。
相关文章:
基于Rook的Ceph云原生存储部署与实践指南(下)
#作者:任少近 文章目录 6Ceph资源对像管理6.1查看services6.2查看Jobs6.3 查看deployments.apps6.4查看daemonsets.apps6.5查看configmaps6.6查看clusterroles.rbac.authorization.k8s.io6.7查看clusterrolebindings.rbac.authorization.k8s.io6.8通过cephclusters…...
计算机网络---TCP三握四挥
文章目录 TCPTCP 的核心特点TCP 与 UDP 特性对比TCP 标志位 TCP 的三次握手(建立连接)TCP 三次握手概述图解 TCP 三次握手为什么需要三次握手,而不是两次为什么要三次握手,而不是四次三次握手连接阶段,最后一次 ACK 包…...
linux基础知识
Linux版本 内核版和开发版 奇数为开发板 偶数为稳定版 Debian 属于自由开源稳定的linux发行版本,可以由用户进行维护,目前被教育机构、商业公司、非盈利组织和政府机构使用 Red Hat Enterprise Linux(RHEL) 由red hat公司开发的开源linux版本 RHEL服…...
快检查达梦库怎么了
扁鹊的弟弟来了 要求5分钟定位达梦数据库问题 #!/bin/bash## content 实例个数 告警日志 实例状态 用户连接 活动会话 锁 集群状态 服务状态 磁盘空间 cpu mem 侦听及日志 ## scope 单机、DW、DSC Linux 多实例 ## example 将脚本保存为d.sh,用root用执行&#…...
Python可视化大框架的研究与应用
## 摘要 随着数据科学和人工智能的快速发展,数据可视化成为了数据分析中不可或缺的一部分。Python作为一种功能强大且易于学习的编程语言,提供了多种可视化工具和库。本文旨在探讨Python可视化的主要框架,分析其特点、应用场景以及未来发展趋…...
【智能音频新风尚】智能音频眼镜+FPC,打造极致听觉享受!【新立电子】
智能音频眼镜,作为一款将时尚元素与前沿科技精妙融合的智能设备,这种将音频技术与眼镜形态完美结合的可穿戴设备,不仅解放了用户的双手,更为人们提供了一种全新的音频交互体验。新立电子FPC在智能音频眼镜中的应用,为音…...
jeecgboot项目idea启动项目(二)
文章目录 一、IntelliJ IDEA1.安装2.配置maven3.配置jdk 二、IDEA启动项目三、IDEA2024.1.4破解 一、IntelliJ IDEA IntelliJ IDEA是一款由JetBrains开发的集成开发环境(IDE),主要用于Java和Kotlin编程,但也支持多种其他编程语…...
【计算机网络基础】-------计算机网络概念
1.什么是计算机网络 定义: 图解: 2.最简单的计算机网络 其中: 结点可以是计算机、集线器、交换机、路由器等链路可以是有线链路、无线链路 2.1集线器 2.2交换机 3.互连网(internet)与 路由器 路由器 与 家用路由…...
MCAL-存储器驱动
存储器驱动由内部EEPROM驱动、内部Flash驱动、RAM测试和Flash测试四部分组成。 (1)内部EEPROM驱动 内部EEPROM驱动提供初始化服务,以及对内部EEPROM的读、写、擦除等操作。该驱动模块一次只能接受一个任务。这意味着在任何给定的时间点,只能有一个操作被处理 (2)内部F…...
爬虫系列之【数据解析之正则】《二》
目录 前言 一、正则基本使用 1.1 导包 1.2 接口方法 1.3 换行匹配问题 二、实战案例 完整代码 前言 在爬虫工作中,我们主要会遇到两种类型的文本数据: JSON格式数据 HTML文档数据 对于JSON字符串数据,通常使用Python的字典操作进行键…...
【每日学点HarmonyOS Next知识】全局调整字体、h5选择框无法取消选中、margin不生效、Length转换为具体值、Prop和link比较
【每日学点HarmnoyOS Next知识】全局调整字体、h5选择框无法取消选中、margin不生效、Length转换为具体值、Prop和link比较 1、HarmonyOS 是否存在统一调整全局字体大小的方法? 是否存在统一调整全局字体大小的方法 可以用动态属性,自定义class实现At…...
ORM Bee V2.5.2.x 发布,支持 CQRS; sql 性能分析;更新 MongoDB ORM分片
Bee, 一个具有分片功能的 ORM 框架. Bee Hibernate/MyBatis plus Sharding JDBC Jpa Spring data GraphQL App ORM (Android, 鸿蒙) 小巧玲珑!仅 940K, 还不到 1M, 但却是功能强大! V2.5.2 (2025・LTS 版) 开发中... **2.5.2.1 新年 ** 支持 Mong…...
【CVPR2024】基于小波的傅里叶信息交互与频率扩散调整的水下图像恢复
论文信息 题目: Wavelet-based Fourier Information Interaction with Frequency Diffusion Adjustment for Underwater Image Restoration 基于小波的傅里叶信息交互与频率扩散调整的水下图像恢复 源码:https://github.com/ChenzhaoNju/WF-Diff 论文创新点 基于频…...
《今日AI-编程-人工智能日报》
一、AI编程工具与行业动态 OpenAI推出GPT-4.5“猎户座”研究预览版 OpenAI发布了迄今为止“最大、最有知识”的模型GPT-4.5“猎户座”,面向Pro用户开放,并计划下周向Plus用户开放。该模型在自然对话中展现出情感智能,但在编程性能上不及深度研…...
计算机网络---SYN Blood(洪泛攻击)
文章目录 三次握手过程SYN Flood攻击原理防御措施协议层优化网络层拦截系统配置调整 TCP协议是 TCP/IP 协议栈中一个重要的协议,平时我们使用的浏览器,APP等大多使用 TCP 协议通讯的,可见 TCP 协议在网络中扮演的角色是多么的重要。 TCP 协议…...
DeepSeek教unity------UI元素长按响应
主要功能说明: 长按检测:通过记录指针按下的时间,判断是否达到 longClickTime,从而触发长按事件。状态管理:使用 StateEnum 枚举管理点击项的当前状态(未按下、按下等待长按、长按已触发)。…...
virtualbox安装ubuntu,配置静态ip
一.安装virtualbox和ubuntu 在VirtualBox中安装无界面版Ubuntu(即Ubuntu Server)的步骤如下: 准备工作 下载Ubuntu Server镜像:从Ubuntu官网 https://ubuntu.com/download/server 下载ISO文件。 安装VirtualBox:确保…...
比较Spring AOP和AspectJ
1. 介绍 当前有多个可用的AOP库,这些库必须能够回答许多问题: 它与我现有的或新的应用程序兼容吗?在哪里可以实施AOP?它与我的应用程序集成的速度有多快?性能开销是多少? 在本文中,我们将着眼…...
DeepSeek掘金——DeepSeek R1驱动的PDF机器人
DeepSeek掘金——DeepSeek R1驱动的PDF机器人 本指南将引导你使用DeepSeek R1 + RAG构建一个功能性的PDF聊天机器人。逐步学习如何增强AI检索能力,并创建一个能够高效处理和响应文档查询的智能聊天机器人。 本指南将引导你使用DeepSeek R1 + RAG构建一个功能性的PDF聊天机器人…...
大模型能给舆情分析带来哪些突破?
大模型在舆情分析领域带来了多方面的突破,具体体现在以下几个方面: 1.提升分析精度与效率 大模型通过深度学习和自然语言处理技术,能够高效地处理海量数据,并从中提取关键信息。例如,大模型可以自动识别文本中的情感倾…...
C++实现3D(EasyX)详细教程
一、关于3D 我们看见,这两个三角形是相似的,因此计算很简单 若相对物体的方向是斜的,计算三角函数即可 不会的看代码 二、EasyX简介 initgraph(长,宽) 打开绘图 或initgraph(长,宽…...
Mysql100道高频面试题
一、基础概念 1. 什么是数据库?DBMS的作用是什么? 数据库:是按照数据结构来组织、存储和管理数据的仓库。它允许用户高效地访问和管理数据。 DBMS(数据库管理系统):是一种软件系统,用于创建和…...
TCP长连接与短连接
TCP长连接与短连接 TCP(传输控制协议)中的长连接和短连接是两种不同的连接管理方式,各有优缺点: 短连接 短连接是指客户端与服务器完成一次数据交换后就断开连接。下次需要通信时,再重新建立连接。 特点࿱…...
【ISP】AF自动对焦
自动对焦方案主要有两种: 主动式对焦:通过TOF、双目进行主动测距,然后使用tuning数据进行对焦。 被动式对焦:利用sensor内容算法进行对焦。 被动式对焦有两种主要的方法: 反差对焦:通过前后推拉镜头找到…...
基于Python Django的人脸识别上课考勤系统(附源码,部署)
博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...
探索Elasticsearch:认识与安装
目录 Elasticsearch的简介 Elasticsearch的定位 安装Elasticsearch 安装Kibana Elasticsearch的简介 Elasticsearch 是一款基于Apache Lucene的开源搜索引擎,在现代数据管理和分析领域占据重要地位。它以其高效的全文搜索、实时数据分析能力和灵活的分布式架构著…...
什么是DevOps
**DevOps** 是一种结合软件开发(**Development)和运维(**Operations)的方法论和文化,旨在通过自动化、协作和持续改进,缩短软件交付周期,提高系统可靠性和团队效率。其核心目标是打破开发与运维…...
Java类加载机制 双亲委派机制 八股速记版
JVM类加载机制是Java实现跨平台特性的核心机制之一,整个过程可分为以下五个阶段: 一、类加载流程 加载(Loading) 通过全限定名获取二进制字节流将字节流转换为运行时数据结构生成对应的java.lang.Class对象 验证(V…...
DeepSeek开源周Day6:DeepSeek V3、R1 推理系统深度解析,技术突破与行业启示
DeepSeek 在开源周第六天再次发文,中文原文、官方号在知乎 DeepSeek - 知乎DeepSeek-V3 / R1 推理系统概览 - 知乎deepseek-ai/open-infra-index: Production-tested AI infrastructure tools for efficient AGI development and community-driven innovation 引言 …...
校园快递助手小程序毕业系统设计
系统功能介绍 管理员端 1)登录:输入账号密码进行登录 2)用户管理:查看编辑添加删除 学生信息 3)寄件包裹管理:查看所有的包裹信息,及物流信息 4)待取件信息:查看已到达的…...
macOS - 使用 tmux
文章目录 安装 tmux使用更多快捷键说明 安装 tmux brew install tmux使用 在终端输入 tmux 进入 tmux 界面,然后 输入 Control Option B 进入交互模式 输入 % 左右分栏," 上下分割 上一个窗格:{,下一个:} PS…...
【网络安全 | 渗透测试】GraphQL精讲一:基础知识
未经许可,不得转载, 文章目录 GraphQL 定义GraphQL 工作原理GraphQL 模式GraphQL 查询GraphQL 变更(Mutations)查询(Queries)和变更(Mutations)的组成部分字段(Fields)参数(Arguments)变量别名(Aliases)片段(Fragments)订阅(Subscriptions)自省(Introspecti…...
配置后端验证功能之validation
哈喽,好久不见。最近项目内网开发导致断更了好久。今天介绍一个简单且有意思的开发技巧吧。之前用过validation后端验证功能但没进一步了解,都只是简单用一下。假如开发中要求传参必须按照规则 不能毫无底线什么都能传,本篇介绍的就是针对此功…...
C# 多线程
概述 进程和线程 进程:指在系统中运行的一个应用程序。 线程:进程中的一个执行任务。一个进程至少有一个线程,一个进程可以有多个线程,多个线程可共享数据。 多线程 多线程:在一个程序中同时运行多个线程࿰…...
钉钉MAKE AI生态大会思考
1. 核心特性 1.1 底层模型开放 除原有模型通义千问外,新接入猎户星空、智普、MinMax、月之暗面、百川智能、零一万物。 1.2 AI搜索 AI搜索贯通企业和个人散落在各地的知识(聊天记录、文档、会议、日程、知识库、项目等),通过大模型对知识逻辑化,直接生成搜索的答案,并…...
自然语言处理:文本表示
介绍 大家好,博主又来给大家分享知识了。今天给大家分享的内容是自然语言处理中的文本表示。 在当今数字化信息爆炸的时代,自然语言处理作为人工智能领域的重要分支,发挥着越来越关键的作用。 而文本表示,则是自然语言处理的基…...
flutter 网络请求封装与json序列化与反序列化
一、用到的工具库 网络请求库 dioflutter pub add diojson序列化与反序列化库 json_annotation//终端直接键入下命令安装 flutter pub add json_annotation dev:build_runner dev:json_serializable二、返回结果泛化封装 以 https://www.wanandroid.com/ api 接口返回结果为例…...
生成网页链接二维码
<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>生成二维码</title><script src"http…...
java关键字-instanceof
主要作用 A instanceof B主要判断以下三个内容(即左边的类型A能否转换为右边的B): 判断对象A是否是B类的对象;判断对象A实现了B接口;判断对象A是否继承了B类; A表示对象,B表示接口/类&#x…...
验证码识别:一文掌握手机验证码的自动化处理
文章目录 一、获取手机验证码1.1 通过短信接收验证码1.2 使用第三方短信接收服务1.3 使用ADB读取手机短信1.4 通过API获取验证码1.5 通过邮件接收验证码二、解析和提取验证码2.1 正则表达式提取2.2 JSON解析三、自动化输入验证码3.1 使用Selenium自动化Web应用3.2 使用Appium自…...
Uppy - 免费开源、功能强大的新一代 web 文件上传组件,支持集成到 Vue 项目
Uppy 这个优质的前端组件,可以解决几乎所有的文件上传问题,最近发布了 TS 重写的 4.0 新版本,实用性更强了。 Uppy 是一个 UI 外观时尚、模块化的 JavaScript 文件上传组件,这个组件可以与任何 web 技术栈集成,不仅轻…...
神经网络参数量计算
算一个只有两层的神经网络的参数量,我们需要考虑两层之间的连接权重和偏置项。以下是详细的计算步骤: 网络结构 输入层(第一层): 有 2 个神经元。 输出层(第二层): 有 3 个神经元。…...
如何为Java面试准备项目经验
1 提出问题 应届生朋友或Java程序员在找Java方面的工作时,一定会需要准备Java项目经验,但事实上不少求职者,是没有项目经验,或者只具有开源社区等的学习项目经验,这样的话,就很有可能在面试时无法有效地证…...
DeepSeek 与云原生后端:AI 赋能现代应用架构
📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 1. 引言 在当今快速发展的互联网时代,云原生(Cloud Native)架构已成为后端开发的主流趋势。云…...
自定义异常
在 Java 中,自定义异常是指根据特定需求创建的异常类。通过自定义异常,可以更好地表示应用程序中的特定错误情况,并提供更清晰的错误信息。以下是关于自定义异常的详细介绍和实现方法: 一、为什么需要自定义异常? 明确…...
题解:洛谷 P2199 最后的迷宫
题目https://www.luogu.com.cn/problem/P2199 显然,数据最大 ,数组我们开不下,动态开数组。 对于每一个查询,从起点开始,走一步判断是否能看到火焰杯。 如果已经没法走了,直接拆墙,输出 Poor…...
JDK包含内容的正确说法及API文档下载
JDK包含内容的正确说法及API文档下载 正确说法:JDK包含JRE和JDK开发工具,而JRE主要包含JVM和核心类库。 因为 旧版 JRE(Java 8 及之前):确实包含 Java 插件(Applet) 和 Java Web Start…...
CTF-web: 查看python代码抽象语法树
抽象语法树(Abstract Syntax Tree,简称 AST)是源代码的树状表示,展示了代码的语法结构。在 Python 中,ast 模块可以帮助你解析和操作 Python 代码的 AST。 1. 使用 ast 模块解析 Python 代码 我们可以使用 ast.parse …...
前端学习——HTML
VSCode常用快捷键 代码格式化:ShiftAltF 向上或向下移动一行:AltUp或AltDown 快速复制一行代码:ShiftAltUp或者ShiftAltDown 快速替换:CtrlH HTML标签 文本标签 定义着重文字 定义粗体文字 定义斜体文字 加重语气 删除字 无特…...
Ubuntu 下 nginx-1.24.0 源码分析 - ngx_open_file
ngx_open_file 定义在src/os/unix/ngx_files.h #define ngx_open_file(name, mode, create, access) \open((const char *) name, mode|create, access)#define NGX_FILE_RDONLY O_RDONLY #define NGX_FILE_WRONLY O_WRONLY #de…...