深入掌握k8s核心概念--Pod(二)

news2024/11/25 2:38:21

详解Pod的配置管理与调度特性等剖析

  • Kubernetes 中 Pod 的配置管理(ConfigMap)、调度策略、回滚与扩缩容详解
    • 一、Pod 配置管理:ConfigMap
      • 创建 ConfigMap 示例
      • 使用 ConfigMap 的 Pod 示例
    • 二、玩转 Pod 调度:Kubernetes 高级调度策略大揭秘(带示例)
    • 三、Pod 回滚
      • 回滚 Deployment 示例
    • 四、Pod 扩缩容
      • 扩容 Pod 示例
      • 缩容 Pod 示例
  • 大总结
    • 一、ConfigMap 概述与创建/使用示例及应用场景
    • 二、Kubernetes 调度策略及示例
    • 三、Pod 回滚
    • 四、Pod 扩缩容

Kubernetes 中 Pod 的配置管理(ConfigMap)、调度策略、回滚与扩缩容详解

一、Pod 配置管理:ConfigMap

ConfigMap 是 Kubernetes 中一种用于存储应用配置数据的资源对象,旨在将应用的配置细节从容器镜像中解耦出来,

以便在不修改镜像的前提下,能够灵活地管理和更新应用配置。

ConfigMap 主要包含两种数据类型:键值对(key-value pairs)和配置文件内容。

具备以下主要特性:

  1. 数据隔离:ConfigMap 将应用配置与镜像分离,使配置更改无需重新构建镜像,提升了灵活性和可维护性。

  2. 类型多样:支持键值对形式的数据存储,也可以存储完整的配置文件内容,满足不同应用场景的需求。

  3. 数据注入:ConfigMap 数据可以通过环境变量、命令行参数或卷挂载等方式注入到 Pod 中,供容器内应用读取。

  4. 更新热加载:当 ConfigMap 更新后,若 Pod 使用了 ConfigMap 卷,Kubernetes 可以触发 Pod 内部的配置自动更新(需应用支持)。

创建 ConfigMap 示例

apiVersion: v1
kind: ConfigMap
metadata:
  name: example-configmap
data:
  app.properties: |-
    key1=value1
    key2=value2
  database-config.yaml: |-
    username: dbuser
    password: dbpassword

上述 YAML 描述了一个名为 example-configmap 的 ConfigMap,其中包含两个配置文件内容:app.propertiesdatabase-config.yaml

使用 ConfigMap 的 Pod 示例

apiVersion: v1
kind: Pod
metadata:
  name: configmap-pod
spec:
  containers:
  - name: app-container
    image: your-app-image
    volumeMounts:
    - name: config-volume
      mountPath: /etc/config
    envFrom:
    - configMapRef:
        name: example-configmap
  volumes:
  - name: config-volume
    configMap:
      name: example-configmap

在这个例子中,我们创建了一个 Pod 并挂载了 example-configmap ConfigMap 到容器内的 /etc/config 目录,同时还将 ConfigMap 中的数据注入到容器环境变量,供应用直接读取。

使用ConfigMap的限制条件如下。

◎ ConfigMap必须在Pod之前创建。

◎ ConfigMap受Namespace限制,只有处于相同Namespace中的Pod才可以引用它。

◎ ConfigMap中的配额管理还未能实现。

◎ kubelet只支持可以被API Server管理的Pod使用ConfigMap。kubelet在本Node上通过 --manifest-url或–config自动创建的静态Pod将无法引用ConfigMap。

◎ 在Pod对ConfigMap进行挂载(volumeMount)操作时,在容器内部只能挂载为“目录”,无法挂载为“文件”。在挂载到容器内部后,在目录下将包含ConfigMap定义的每个item,如果在该目录下原来还有其他文件,则容器内的该目录将被挂载的ConfigMap覆盖。如果应用程序需要保留原来的其他文件,则需要进行额外的处理。可以将ConfigMap挂载到容器内部的临时目录,再通过启动脚本将配置文件复制或者链接到(cp或link命令)应用所用的实际配置目录下。

二、玩转 Pod 调度:Kubernetes 高级调度策略大揭秘(带示例)

Kubernetes 调度策略丰富多样,主要特性包括:

  1. 节点亲和性/反亲和性:通过节点标签选择特定节点部署 Pod,或者避免在某些节点上部署,如 nodeAffinity 和 nodeAntiAffinity。

  2. 区域亲和性/反亲和性:根据区域、可用区等高级地理属性控制 Pod 分布,确保应用高可用或资源优化。

  3. 资源约束:根据节点的 CPU、内存、磁盘、GPU 等资源条件进行调度,如 resources.requests 和 resources.limits。

  4. 污点容忍度:允许 Pod 允许或容忍节点上的污点(Taint),实现精细化调度。

  • NodeSelector: 根据节点标签和字段进行选择,将 Pod 限制在具有特定特性的节点上运行。

    示例:假设您有一个 Pod 需要访问专用的 GPU 资源。您可以使用 NodeSelector 将 Pod 调度到具有 gpu=true 标签的节点上。

    apiVersion: v1
    kind: Pod
    metadata:
      name: gpu-pod
    spec:
      nodeSelector:
        gpu: "true"
      containers:
        - name: my-app
          image: my-app-image
          # ...其他容器配置
    
  • Pod Affinity & Anti-Affinity: 基于 Pod 的亲和性和反亲和性进行选择,控制 Pod 之间的距离,提升应用程序性能。

    示例:假设您有一个 Web 应用程序和一个数据库 Pod。您可以使用 Pod Affinity 将它们调度到同一节点上,降低网络延迟,提升性能。

    apiVersion: v1
    kind: Pod
    metadata:
      name: web-pod
    spec:
      affinity:
        podAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
            - weight: 100
              podAffinityTerm:
                labelSelector:
                  matchExpressions:
                    - key: app
                      operator: In
                      values:
                        - web
      containers:
        - name: my-web-app
          image: my-web-app-image
          # ...其他容器配置
    

    您可以使用 Pod Anti-Affinity 将对资源有竞争的 Pod 隔离在不同的节点上,避免争抢资源导致性能下降。

  • Tolerations & Taints: 利用容忍度和污点机制,控制 Pod 对节点瑕疵的敏感程度,灵活安排 Pod 运行位置。

    示例:假设您有一个节点,其上存在 node.unreachable: NoRouteFound 污点。您可以为 Pod 添加 Tolerations 允许它运行在该节点上。

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-pod
    spec:
      tolerations:
        - key: node.unreachable
          operator: Exists
      containers:
        - name: my-app
          image: my-app-image
          # ...其他容器配置
    
  • DaemonSet: 确保每个节点上都运行一个 Pod 副本,常用于部署集群范围的服务。
    在这里插入图片描述

    示例:假设您想在每个节点上部署一个日志收集代理。您可以使用 DaemonSet 来完成。

    apiVersion: apps/v1
    kind: DaemonSet
    metadata:
      name: logging-daemon
    spec:
      template:
        metadata:
          labels:
            app: logging
        spec:
          containers:
            - name: fluentd
              image: fluentd:latest
              # ...其他容器配置
    
  • Job: 用于运行一次性批处理作业,例如数据迁移或备份。

    示例:假设您想执行一次性数据迁移任务。您可以使用 Job 来完成。

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: data-migration
    spec:
      template:
        metadata:
          labels:
            app: data-migration
        spec:
          containers:
            - name: data-mover
              image: data-mover-image
              # ...其他容器配置
          restartPolicy: OnFailure
    
  • Cronjob: 定期运行作业,例如每日报告或每周备份。

    示例:假设您想每天生成一份系统运行状况报告。您可以使用 Cronjob 来完成。

    apiVersion: batch/v1beta1
    kind: CronJob
    metadata:
      name: report-generator
    spec:
      schedule: "0 0 * * *"  # 每天凌晨执行
      jobTemplate:
        spec:
          template:
            metadata:
              labels:
                app: report-generator
            spec:
              containers:
                - name: report-generator-container
                  image: your-report-generator-image:latest # 使用包含报告生成逻辑的镜像
                  command: ["/bin/sh", "-c"] # 假设容器内使用shell执行脚本
                  args: ["./generate_report.sh"] # 执行生成报告的脚本文件
                 volumeMounts:
                 - name: report-storage
                   mountPath: /var/reports # 将存储卷挂载至容器内的路径,以便持久化保存生成的报告
             volumes:
               - name: report-storage
                 persistentVolumeClaim:
                   claimName: report-pvc # PVC名称,需要提前创建并关联PV用于持久化存储
              restartPolicy: OnFailure # 如果任务失败,则尝试重启容器
    
    
    
    

上述 YAML 配置片段展示了一个完整的 CronJob 示例,它将在每天凌晨执行一个名为 report-generator 的任务来生成系统运行状况报告。

其中,spec.jobTemplate.spec.template.spec.containers 包含一个容器的具体配置,包括:

name: 容器的名字,这里填写为 report-generator-container。
image: 指定运行报告生成逻辑的应用镜像及其版本。
command 和 args:指定了容器启动后执行的命令及参数,这里假设运行一个 shell 脚本来生成报告。

volumeMounts:配置了容器内的文件目录挂载,将持久卷 report-storage 挂载到 /var/reports 目录下,便于存储生成的报告。

volumes:定义了使用的持久卷,这里引用了一个名为 report-pvc 的 PersistentVolumeClaim,确保生成的报告数据能够持久化存储。
restartPolicy: 设置当 Job 中的容器遇到故障时的重启策略,此处设置为 OnFailure,即当容器执行失败时,会尝试重新启动容器以生成报告。

要使此 CronJob 正常工作,你需要确保已有一个合适的 Docker 镜像用于报告生成,并且已经创建了相应的 PersistentVolumeClaim(PVC),使其能够绑定到合适的 PersistentVolume(PV)。

三、Pod 回滚

  1. 回滚功能 对于 Deployment 或 StatefulSet 等控制器管理的 Pod,具有以下特性:

  2. 版本历史记录:Kubernetes 会自动保留每次 Deployment 更新的历史记录,用于后续回滚操作。

  3. 无缝切换:回滚操作可以快速将 Pod 滚回到前一个已知的良好版本,无需人工干预,业务连续性得到保障。

  4. 可视化管理:通过 kubectl rollout history 命令查看 Deployment 的滚动更新历史,以便决定回滚到哪个版本。

回滚 Deployment 示例

kubectl rollout undo deployment/my-deployment

这条命令将会把 my-deployment 的当前版本回滚到前一个已知的稳定版本。

四、Pod 扩缩容

扩缩容功能 支持自动或手动调整 Pod 数量,主要特性如下:

  1. 弹性伸缩:根据 CPU 或内存使用率、自定义指标或外部指标自动调整 Pod 副本数,以应对负载变化。

  2. 一键操作:通过 kubectl scale 命令快速调整 Deployment 或 ReplicaSet 控制器管理的 Pod 副本数。

  3. 滚动更新策略:在扩缩容过程中,Kubernetes 采用滚动更新策略,逐步替换旧 Pod,保证服务不间断。

扩容 Pod 示例

kubectl scale deployment/my-deployment --replicas=5

这将把 my-deployment 的副本数调整为 5。

缩容 Pod 示例

kubectl scale deployment/my-deployment --replicas=3

以上命令将减少 my-deployment 的副本数至 3。

ConfigMap 为 Pod 提供了灵活的配置管理,而 Kubernetes 强大的调度策略和伸缩机制,则帮助我们轻松应对复杂的应用部署与运维挑战。

在实际操作中,合理运用这些功能,能够有效提升云原生环境下的应用部署与管理效率。

大总结

一、ConfigMap 概述与创建/使用示例及应用场景

特性描述示例应用场景
数据隔离应用配置与镜像分离,方便独立更新如上所示的 example-configmap 创建与挂载示例配置频繁变动的应用,如数据库连接信息、API 密钥
数据类型支持键值对和完整配置文件内容app.propertiesdatabase-config.yamlSpring Boot 应用的属性文件、数据库连接配置
数据注入通过环境变量、命令行参数、卷挂载注入 PodenvFrom 使用 ConfigMap 注入环境变量无需修改应用代码即可传递配置信息
热加载更新ConfigMap后,符合条件的Pod可自动刷新配置config-volume 卷挂载 ConfigMap实现实时配置更新,比如调整应用阈值

创建 ConfigMap 示例:

apiVersion: v1
kind: ConfigMap
metadata:
  name: example-configmap
data:
  app.properties: |-
    key1=value1
    key2=value2
  database-config.yaml: |-
    username: dbuser
    password: dbpassword

使用 ConfigMap 的 Pod 示例:

apiVersion: v1
kind: Pod
metadata:
  name: configmap-pod
spec:
  containers:
  - name: app-container
    image: your-app-image
    volumeMounts:
    - name: config-volume
      mountPath: /etc/config
    envFrom:
    - configMapRef:
        name: example-configmap
  volumes:
  - name: config-volume
    configMap:
      name: example-configmap

应用场景举例:

  • 数据隔离:在一个电商网站中,数据库密码需要定期更换,通过 ConfigMap 存储并更新密码,避免每次修改都需重建应用镜像。
  • 数据类型:Web 服务器配置文件(如 Nginx 的 nginx.conf),可通过 ConfigMap 存储并挂载到容器内,实现配置统一管理与更新。
  • 数据注入:微服务应用中,通过环境变量传递API密钥,保持密钥安全且易于管理。
  • 热加载:在线游戏服务器,根据流量调整限流阈值,更新 ConfigMap 后,游戏服务器能实时感知并应用新配置。

二、Kubernetes 调度策略及示例

调度策略描述示例应用场景
NodeSelector根据节点标签调度 Pod根据 gpu=true 标签调度 Pod 到 GPU 节点GPU 高性能计算任务
Pod Affinity/Anti-Affinity控制 Pod 间的亲和/反亲和关系同一节点部署 Web 与 DB Pod,保证低延迟微服务架构中关联性强的服务部署
资源约束根据节点资源进行调度设置 CPU 请求为 1, 限制为 2保证 Pod 不过度消耗节点资源
Tolerations控制 Pod 对污点节点的容忍度能够容忍 node.kubernetes.io/unreachable 污点的 Pod在问题节点上运行监控诊断工具
DaemonSet确保每个节点运行单个 Pod 实例部署日志收集代理到集群所有节点全局日志收集、监控代理
Job执行一次性任务执行全量数据迁移作业数据库迁移、定期全量备份
CronJob定时执行任务每天凌晨生成系统运行状况报告定期报表生成、清理任务

资源约束示例:

apiVersion: v1
kind: Pod
metadata:
  name: resource-constraint-pod
spec:
  containers:
  - name: my-app
    image: my-app-image
    resources:
      requests:
        cpu: "1"
      limits:
        cpu: "2"

DaemonSet 示例:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: log-collector-daemonset
spec:
  selector:
    matchLabels:
      app: log-collector
  template:
    metadata:
      labels:
        app: log-collector
    spec:
      tolerations:
      - operator: Exists
        effect: NoSchedule # 保证 DaemonSet 的 Pod 运行在所有节点上
      containers:
      - name: log-agent
        image: log-collector-image:v1.0
        ports:
        - containerPort: 5000 # 假设这是日志收集端口
        volumeMounts:
        - mountPath: /var/log
          name: host-logs
      volumes:
      - name: host-logs
        hostPath:
          path: /var/log

上述配置创建了一个名为 log-collector-daemonset 的 DaemonSet,它确保集群中的每个节点都运行一个名为 log-agent 的容器,用于从每个节点上的 /var/log 目录收集日志。由于设置了 tolerations,这些 Pod 将会被调度至所有节点,即使节点上有其他污点(如未调度)。

此外,Kubernetes 还提供了其他高级调度策略,例如:

  • Inter-Pod Affinity and Anti-Affinity:除了 Pod 之间的亲和性和反亲和性之外,还可以定义跨命名空间的 Pod 之间的亲和规则。

  • PriorityClass:通过给 Pod 分配优先级等级来影响其调度决策,高优先级 Pod 更有可能被优先调度。

这些策略灵活组合使用,可以帮助管理员实现更加复杂且精准的资源管理和应用部署方案,以适应各种不同的业务需求。

三、Pod 回滚

特性描述示例应用场景
版本历史记录自动保留更新历史,可用于回滚操作N/A发现新版本存在问题时,迅速恢复到先前正常运行版本
无缝切换快速回滚至前一稳定版本,不影响服务N/A应用出现 bug 或不可预见的问题,需要快速回滚至无问题版本
可视化管理使用 kubectl rollout history 查看并决定回滚版本kubectl rollout history deployment/my-deployment开发、测试环境中对比不同版本表现,或生产环境中排查问题时选择合适的回滚版本
回滚操作示例回滚至上一个修订版kubectl rollout undo deployment/my-deployment生产环境中因新版本发布引发故障,立即回滚至已知良好状态

四、Pod 扩缩容

特性描述示例应用场景
弹性伸缩根据负载自动调整副本数CPU 或内存利用率驱动,由 Horizontal Pod Autoscaler 控制应对流量高峰和低谷,自动增加或减少服务实例,节约资源成本
一键操作快速调整 Pod 数量扩容至5个副本:kubectl scale deployment/my-deployment --replicas=5
缩容至3个副本:kubectl scale deployment/my-deployment --replicas=3
针对突发业务需求,手动快速增加服务容量;非高峰期手动减少副本以节省资源
滚动更新策略保证服务连续性在扩缩容过程中,Kubernetes 逐步替换旧 Pod,维持服务不受中断服务升级、扩缩容时,确保在线用户不受影响,维持 SLA 和用户体验

晚安

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

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

相关文章

【笔记】ASP.NET Core Web API之Token验证

在实际开发中经常需要对外提供接口以便客户获取数据,由于数据属于私密信息,并不能随意供其他人访问,所以就需要验证客户身份。那么如何才能验证客户的身份呢?一个简单的小例子,简述ASP.NET Core Web API开发过程中&…

CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀)

CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀) 文章目录 CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀)前端验证—MIME绕过有关MIMEMIME的作用 解题时有…

RACE IPEMD:构建安全基石的密码学原理与实践

title: RACE IPEMD:构建安全基石的密码学原理与实践 date: 2024/4/16 16:53:56 updated: 2024/4/16 16:53:56 tags: IPEMD哈希算法SHA-1SHA-2/3消息摘要数字签名安全分析 前言 在当今信息爆炸的时代,数据安全和隐私保护变得尤为重要。密码学作为信息安…

C语言100题练习打卡(2)

14&#xff0c;将一个正整数分解质因数。 例如&#xff1a;输入90&#xff0c;打印出902*3*3*5 #include<stdio.h> /*分析&#xff1a; * 1&#xff0c;如果这话质数恰巧等于&#xff08;小于的时候&#xff0c;继续执行循环&#xff09;n&#xff0c; 则说明分解质因数…

案例分析-redis

案例需求&#xff1a;在7002这个slave节点执行手动故障转移&#xff0c;重新夺回master地位 步骤如下&#xff1a; 1&#xff09;利用redis-cli连接7002这个节点 2&#xff09;执行cluster failover命令 如图&#xff1a; 效果&#xff1a; 4.5.RedisTemplate访问分片集群 …

Gitea是一个开源、轻量级的自托管Git解决方案

Gitea介绍 Gitea是一个由Go语言编写的、轻量级的、自托管的Git解决方案&#xff0c;类似于GitHub、GitLab等平台。它是用Go语言编写的开源软件&#xff0c;提供了Git版本控制系统的基本功能&#xff0c;包括代码托管、问题跟踪、代码审查、Wiki等。Gitea的设计目标是简单易用、…

ssm 体检预约管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 ssm 体检预约管理系统是一套完善的信息系统&#xff0c;结合springMVC框架完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库&#xff0c; 系统主要采用B/S…

深度学习 Lecture 7 迁移学习、精确率、召回率和F1评分

一、迁移学习&#xff08;Transfer learning) 用来自不同任务的数据来帮助我解决当前任务。 场景&#xff1a;比如现在我想要识别从0到9度手写数字&#xff0c;但是我没有那么多手写数字的带标签数据。我可以找到一个很大的数据集&#xff0c;比如有一百万张图片的猫、狗、汽…

SD-WAN企业组网:多样化的应用场景

随着企业网络环境的快速发展&#xff0c;SD-WAN技术正成为实现站点间网络互通的关键所在。它不仅支持企业站点对因特网、SaaS云应用和公有云等多种业务的高效访问&#xff0c;更能满足多样化的业务需求。深入探讨SD-WAN的组网应用场景&#xff0c;我们能够发现其广泛的适用性和…

Day 14 网络协议

常见网络设备&#xff1a;交换机 路由器 中继器 多协议网关&#xff08;路由器的前身&#xff09; 交换机&#xff1a;用于连接统一网络的设备&#xff0c;实现内网设备通信。 从广义上分为&#xff1a;局域网交换机&#xff0c;广域网交换机 从网络构成分为&#xff1a;接…

UbuntuServer22.04安装docker

通过ubuntuserver安装docker是搭建开发环境最便捷的方式之一。下面介绍一下再ubuntu22.04上如何安装docker。相关内容参考官网链接&#xff1a;Install Docker Engine on Ubuntu 根据官网推荐&#xff0c;利用apt命令的方式安装&#xff0c;首先需要设置docker仓库&#xff0c…

【个人博客搭建】(5)Sqlsugar实体创建数据库数据

1、在appsettings.json文件中配置SqlServer数据库连接字符串信息。&#xff08;后续考虑添加MySQL数据库等类型&#xff09; "DBS": [/*对应下边的 DBTypeMySql 0,SqlServer 1,*/{"ConnId": "plateau.poetize.2024","DBType": 1,&qu…

分类损失函数与评估指标

目录 1 评估指标 1.1 准确率 1.2 精确率 1.3 召回率 1.4 F1 score 1.5 ROC曲线 1.6 AUC 1.7 PRC曲线的优势 2 损失函数 1. 负对数似然损失 2. 交叉熵损失 3. 指数损失 3 分类问题为什么用交叉熵损失不用 MSE 损失 1 评估指标 混淆矩阵 TP(True Positive) ---- 正…

锂电池充放电管理-单片机通用

锂电池充放电管理-单片机通用 一、锂电池充放电检测的原理二、power.c的实现三、power.h的实现四、锂电池检测和充电电路 一、锂电池充放电检测的原理 ①两节锂电池通过电阻分压检测ADC&#xff0c;再根据电压划分电量等级&#xff1b;②充电使用的是锂电池充电IC方案&#xf…

区块链与数字身份:Web3的身份验证革命

随着数字化时代的发展&#xff0c;个人身份认证在日常生活和商业活动中变得越来越重要。然而&#xff0c;传统的身份认证方式存在着许多问题&#xff0c;如安全性不足、数据泄露、信息篡改等。而区块链技术的出现为数字身份认证带来了全新的解决方案。本文将深入探讨区块链与数…

无人零售行业展望:智能化与便利性引领未来

无人零售行业展望&#xff1a;智能化与便利性引领未来 无人零售&#xff0c;这一依靠智能化技术如人工智能、物联网、和大数据的零售模式&#xff0c;正逐步成为全球零售行业的新趋势。该模式允许消费者在没有店员的情况下自助完成购物&#xff0c;提供了24小时服务&#xff0…

【Web】陇原战“疫“2021网络安全大赛 题解

目录 CheckIN eaaasyphp EasyJaba CheckIN 拿到附件&#xff0c;贴出关键代码 func getController(c *gin.Context) {cmd : exec.Command("/bin/wget", c.QueryArray("argv")[1:]...)err : cmd.Run()if err ! nil {fmt.Println("error: ", …

Web3.0与AI的交融:开启智能互联网新时代

目前有140 多个 Web3 AI 概念项目&#xff0c;覆盖了基础设施、数据、预测市场、计算与算力、教育、DeFi & 跨链、安全、NFT & 游戏 & 元宇宙、搜索引擎、社交 & 创作者经济、AI 聊天机器人、DID & 消息传递、治理、医疗、交易机器人等诸多方向。持续关注…

SQLite数据库中JSON 函数和运算符

返回&#xff1a;SQLite—系列文章目录 上一篇:维护SQLite的私有分支&#xff08;二十六&#xff09; 下一篇&#xff1a;SQLite—系列文章目录 ​ 1. 概述 默认情况下&#xff0c;SQLite 支持 29 个函数和 2 个运算符 处理 JSON 值。还有两个表值函数可用于分解 JSON…

二级综合医院云HIS系统源码,B/S架构,采用JAVA编程,集成相关医保接口

二级医院云HIS系统源码 云HIS系统是一款满足基层医院各类业务需要的健康云产品。该产品能帮助基层医院完成日常各类业务&#xff0c;提供病患预约挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查询、医生工作站和护士工作站等一系列常规功能&#xff0c;还能与公卫…