- 博客(247)
- 收藏
- 关注
原创 记录一次使用docker部署gitlab完成后,推送代码成功,但是gitlab仓库中显示不出来项目信息的错误
Gitlab是我用docker部署在阿里云服务器上,当时gitlab的版本使用的是:gitlab/gitlab-ce:latest;这个版本的gitlab,阿里云云防火墙检测报了一个 敏感信息泄漏漏洞,建议要求升级Gitliab 至 14.8.2、14.7.4或14.6.5 及其以上。上述日志视乎没什么报错的地方,但是有个ip信息,这个ip是我机子的ip,使用这个ip给gitlab服务器发送请求,来获取项目信息;我的ip发送的请求被拦截了,其中的部分功被云安全中心判定为漏洞攻击;
2024-04-26 07:29:27 777
原创 免费打造个人专属的高颜值本地大模型AI助手,无限量使用 Ollama+LobeChat开源工具,在本地运行AI大模型,安全的和AI对话。
Lobe Chat:现代化设计的开源 ChatGPT/LLMs 聊天应用与开发框架,支持语音合成、多模态、可扩展的(function call)插件系统,一键免费拥有你自己的 ChatGPT/Gemini/Claude/Ollama 应用。如果是跑4b,7b等小模型,普通电脑就可以了,如果要跑32b比较大的,最好是有GPU,还要显存比较大。硬盘没啥要求,比如4b的模型,才2.3GB而已,30b的也就30GB左右,完全不用担心磁盘.70b模型:64GB内存,32也能跑,太卡。13b模型: 32GB内存。
2024-04-16 18:31:30 1397 5
原创 uni-app的地图定位与距离测算功能的实现
通过注册腾讯地图API key、配置相应的权限、编写前端代码以及利用地理坐标系中的两点间距离公式,我们可以轻松地实现这一功能。:在uni-app的项目中,需要配置相应的权限以获取用户的定位信息。在uni-app中,可以通过JavaScript编写一个函数,将当前定位和目标位置的经纬度作为参数,返回两者之间的距离。在uni-app中实现地图定位,首先需要注册腾讯地图的API key,并在项目中配置相应的权限。本文着重探讨了如何在uni-app中实现地图定位,以及如何计算当前定位与目标位置之间的距离。
2024-04-11 19:45:38 594 1
原创 如何排查k8s集群中Pod内mysqld进程占用内存消耗过高?
在Pod内部占用内存的具体原因,进而采取相应的优化措施,如调整MySQL配置、优化查询、合理安排数据导入时间等,以降低内存使用或使其保持在一个合理的范围内。这些命令分别显示MySQL的内存分配、InnoDB缓冲池大小以及InnoDB引擎的状态,有助于了解内存使用的大致分布。在Kubernetes (K8s) 中,当发现Pod内。(如果已安装)命令查看各进程的内存使用情况,重点关注。这将显示Pod的CPU和内存使用情况,确认。进程及其子进程的内存使用概况。进程是否确实占用了大量内存。或者,如果容器内已安装。
2024-04-11 19:32:48 1030
原创 Docker部署SpringBoot+Vue前后端分离项目
因为我们是本地虚拟机,不能像云服务器一样无时无刻在运行,所以我们需要配置一下,让他开机自启,省得我们每次打开虚拟机都要打开docker。这里创建两个目录,springboot目录主要放后端项目的一些jar包,dockerfile等文件,vue目录主要放dist打包目录。浏览器打开http://192.168.186.101:80 ,进行访问,这里80是可以省略的,默认访问的就是80端口。然后发现我们的数据库,可以看到初始的四个数据库,说明本次安装成功!可以看到,我们Nginx的默认欢迎页,大功告成!
2024-04-11 18:49:03 961
原创 三款好用的 Docker 可视化管理工具
Docker Desktop是一款针对个人开发者和小型团队设计的桌面应用程序,它提供了一种简单、方便的方式来创建、管理和运行Docker容器。作为Docker在桌面环境中的官方版本,DockerDesktop为用户提供了完整的Docker开发环境,支持在本地计算机上构建、测试和部署容器化应用程序。跨平台支持: Docker Desktop可在Windows、Linux 、MacOS操作系统上运行,为不同平台的开发者提供了一致的Docker体验。
2024-04-11 10:52:27 1015
原创 使用Docker中构建Java jar包,并且实现开启自启
确保在运行 docker build 命令之前已经构建了你的Java应用程序的JAR包,并将其放置在适当的位置。这样,当你的系统启动时,Docker服务会自动启动,并且在Docker服务启动后,my-java-app 容器也会自动启动。如果你想在Docker守护程序启动时自动启动容器,你可以使用系统级的工具(如 systemd)来管理Docker容器。这里假设你的应用程序将在容器内部的8080端口运行,并且你希望将容器的8080端口映射到主机的8080端口。确保在你的项目根目录下执行此命令。
2024-04-10 19:22:21 1061
原创 盘点最全AI大模型LLM
在自然语言处理(NLP)领域有着广泛的应用,因其强大的语言理解和生成能力,能够处理各种复杂的文本任务,包括但不限于翻译、问答、文本摘要、对话、文本分类、情感分析、代码生成、创作辅助等。例如,GPT-3(Generative Pretrained Transformer 3)拥有约1750亿个参数,而更近期的模型如 GPT-4、PaLM、Chinchilla、阿里云的通义千问等,参数量可能更大。Decoder-only结构:如GPT系列模型,用于生成文本、补全句子、撰写文章等任务。
2024-04-10 14:50:39 751
原创 Langchain---开源、离线、免费商用的大模型知识库来袭!全流程可使用开源模型实现的本地知识库问答应用!快速搭建个人和企业私有智能知识库!
GitHub开源了一款可离线,支持检索增强生成(RAG)大模型的知识库项目。虽然开源时间不长,但是势头很猛,已经斩获25K Star。具备以下特点:项目利用 langchain 思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案;项目支持的开源 LLM 与 Embedding 模型,本项目可实现全部使用开源模型离线私有部署。与此同时,本项目也支持 OpenAI GPT API 的调用,并将在后续持续扩充对各类模型及模型 API 的接入;
2024-04-10 10:27:13 1161
原创 使用 Jenkins、Gitlab、Harbor、Helm、k8s 来实现流水线作业
Dockerfile是一个文本文件,用于定义Docker镜像的构建过程,它包含了一系列指令和说明,用于指导Docker如何构建镜像。Dockerfile的基本结构包括基础镜像、镜像元信息、镜像操作指令以及容器启动时执行的命令。通过这些指令的组合,可以定义复杂的镜像构建过程,包括安装软件包、配置环境变量、复制文件等操作。Dockerfile不仅定义了软件的原材料(Dockerfile),还涉及到Docker镜像和Docker容器的概念,这三者共同构成了Docker体系的基石。注释:使用#进行注释。
2024-04-08 18:06:23 930 1
原创 在 KubeSphere 中玩转 KubeEdge 边缘计算
根据国内网络(国内有多张骨干网,分别是电信 CHINANET 与 CN2,联通 CNCNET 以及移动 CMNET)现状,骨干网节点,城际网节点,汇聚网节点,接入网节点,以及数以万计的业务现场计算节点都可以安置边缘计算,因此范围太广难以形成统一标准。可以说边缘计算是云计算的延伸,是云计算把一些业务下沉到了边缘层。边缘计算发生在边缘层,位于云层和设备层中间,显而易见的好处就是离用户更近了,所以时延更小,提高了实时响应能力,降低了网络不稳定或带宽不足带来的影响,提高了业务持续性和可用性,也增强了数据安全性。
2024-03-31 19:39:12 1290
原创 详解k8s集群内外的访问方式
Ingress、NodePort和LoadBalancer都是Kubernetes中用于将Service公开到外部的方法,但它们之间有一些区别和适用场景。Ingress:如果需要在同一IP地址和端口上公开多个服务,并根据请求路径或主机名进行路由,则可以使用Ingress。Ingress是Kubernetes中的一个抽象层,它可以将多个Service公开到同一个IP地址和端口上,并根据请求路径或主机名进行路由,非常适合用于Web应用程序。NodePort。
2024-03-31 17:00:38 1804
原创 开源知识库平台Raneto--使用Docker部署Raneto
Raneto是一个免费、开放、简单的 Markdown 支持的 Node.js 知识库。知识库知识库是指存储和组织知识的系统或库,它包括了各种类型的信息和知识,如文本、图像、音频、视频等。知识库可以用于存储和检索知识,帮助人们获取特定领域的知识和解决问题。知识库通常由专业人员创建和维护,他们通过收集和整理各种资源和信息来构建一个完整的知识库。知识库可以包含大量的知识和信息,涵盖多个领域和主题。知识库可以用于多种用途,例如教育、研究、咨询等。
2024-03-30 18:18:55 1202
原创 利用Prometheus监控Kubernetes以及其应用
Prometheus是一个开源系统监控和警报工具包,最初由SoundCloud构建。自2012年成立以来,许多公司和组织都采用了Prometheus,并且该项目拥有非常活跃的开发人员和用户社区。它现在是一个独立的开源项目,独立于任何公司进行维护。为了强调这一点,并澄清项目的治理结构,Prometheus于2016年加入了云原生计算基金会,成为继Kubernetes之后的第二个托管项目。普罗米修斯收集并存储其指标作为时间序列数据,即指标信息与记录时间戳一起存储,以及称为标签的可选键值对。
2024-03-30 15:58:49 703
原创 Kubernetes常用命令汇总大全(备忘清单)
可以使用的文件扩展名有 .yaml、.yml 和 .json。资源名称: persistentvolumeclaims, 缩写: pvc。资源名称: persistentvolumes, 缩写: pv。资源名称: daemonsets, 缩写: ds。资源名称: ingresses, 缩写: ing。资源名称: services, 缩写: svc。资源名称: events, 缩写: ev。资源名称: nodes, 缩写: no。资源名称: pods, 缩写: po。
2024-03-28 11:46:01 963
原创 部署云原生边缘计算平台kubeedge
service的类型是loadbalancer,nginx-svc获得一个与k8s集群节点相同网段的ip地址,它是从创建的地址池中分配的;由于需要为cloudcore与edeecore提供通信地址,建议使用LB为cloudcOre提供公网IP或K8S集群节点相同网段lP地址,实际生产中使用的是公网IP地址。为了给服务分配一个IP,首先创建IPAddressPool 网段地址池,通过IPAddressPools分配的IP构成IP池,MetalLB使用该IP池将IP分配给服务。注意版本v0.13.5。
2024-03-27 20:37:35 966
原创 【日常linux操作命令】
nohup 是 no hang up 的缩写,就是不挂断的意思,但没有后台运行,终端不能标准输入,所以说添加 & ( 表示“and”的符号)到命令的尾部。
2024-03-25 18:59:53 883
原创 Kubernetes中PV和PVC的几种状态类型
如果在系统中没有满足 PVC 要求的 PV,PVC则一直处于 Pending 状态,直到系统里产生了一个合适的 PV。PVC 创建成功之后,Pod 就可以以存储卷(Volume)的方式使用 PVC 的存储资源了。对于 PV,这意味着它已经被挂载到某个 PVC,并可能已经挂载到了使用该 PVC 的 Pod 中。没有PV之前,服务器的磁盘没有分区的概念,有了PV之后,相当于通过PV对服务器的磁盘进行分区。这通常发生在删除了引用它的 PVC 之后,但具体的后续处理取决于 PV 的回收策略。
2024-03-20 14:33:46 674
原创 8种Kubernetes集群中Pod处于 Pending状态的故障排除方法
通过kubectl get pod -o yaml 查看pod的信息,其中status.phase字段表示该pod的阶段。pod中的容器地位均等且一同调度,在共享的上下文中运行。资源请求和限制:将节点上调度的所有 pod 的请求和限制总和与节点的可分配资源进行比较,以识别潜在的资源短缺。可分配与容量:了解差异;Pod 计数限制:除了 CPU 和内存之外,配额还可以限制 Pod 的数量,这可能是导致问题的原因。搜索 Pod 名称:按 Pod 名称过滤日志,以跟踪特定的调度尝试以及任何失败背后的原因。
2024-03-20 11:44:58 824
原创 Kubernetes(k8s)集群健康检查常用的五种指标
使用 kubectl logs -f polardbx-hpfs-9scjk -n polardbx-operator-system命令可以查看Pod中容器的日志,这对于诊断Pod为什么崩溃非常有用。使用 kubectl describe pod calico-node-tw42m -n kube-system命令查看Pod的详细信息,包括其事件历史、容器状态、资源使用情况等。(需要安装集群指标监控组件metrics)资源使用情况:监控Pod的CPU、内存等资源的使用情况,确保Pod没有资源不足的问题。
2024-03-19 21:19:01 1644
原创 云原生技术落地实现之二KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (2/2)
云原生技术落地实现之二KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD
2024-03-16 21:35:47 202
原创 云原生技术落地实现之一KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (1/2)
DevOps 是一系列做法和工具,可以使 IT 和软件开发团队之间的流程实现自动化。其中,随着敏捷软件开发日趋流行,持续集成 (CI) 和持续交付 (CD) 已经成为该领域一个理想的解决方案。在 CI/CD 工作流中,每次集成都通过自动化构建来验证,包括编码、发布和测试,从而帮助开发者提前发现集成错误,团队也可以快速、安全、可靠地将内部软件交付到生产环境。
2024-03-16 19:04:48 1111
原创 利用Helm在K8S上部署 PolarDB-X 集群(详细步骤--亲测!!!)
Helm 是 Kubernetes 上的包管理器,用来管理 Kubernetes 应用程序,Helm Charts 可帮助您定义,安装和升级复杂的 Kubernetes 应用程序。Helm 把 Kubernetes 资源(比如deployments、services或ingress等) 打包到一个chart 中,而 chart 被保存到 chart 仓库。通过 chart 仓库可用来存储和分享 chart。
2024-03-12 19:48:39 955
原创 Docker安装部署RabbitMQ & 密码修改 &创建用户及角色
其中 rabbitmq 是自己的容器中 RabbitMQ 的名称,可通过 docker ps -a 进行查看,然后替换自己容器中的 名称 即可。-v:映射目录或文件,启动了一个数据卷容器,数据卷路径为:/var/lib/rabbitmq,再将此数据卷映射到住宿主机的/data目录。–hostname:主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名)username:对应不同用户映射的密码,比如需要修改管理员 admin 的密码那么就填 admin。
2024-03-12 16:28:55 1167
原创 LLM 技术图谱(LLM Tech Map)& Kubernetes (K8s) 与AIGC的结合应用
LLM 技术图谱(LLM Tech Map)是将 LLM 相关技术进行系统化和图形化的呈现,此图谱主要特点是“专注于技术人视角”,不求从 LLM 产业角度汇聚信息,而是希望让从事相关工作或是想了解 LLM 的技术人有一个快速感知。LLM 技术图谱(LLM Tech Map)从基础设施、大模型、Agent、AI 编程、工具和平台,以及算力几个方面,为开发者整理了当前 LLM 中最为热门和硬核的技术领域以及相关的软件产品和开源项目。核心价值:帮助技术人快速了解 LLM 的核心技术和关键方向。
2024-03-11 17:14:52 922
原创 Jenkins自动构建 CI/CD流水线学习笔记(从入门到入土,理论+示例)
Jenkins 流水线是一套插件,它支持实现和集成持续交付流水线到 Jenkins。流水线提供了一组可扩展的工具,用于通过流水线 DSL 将简单到复杂的交付流水线建模为“代码”。对Jenkins 流水线的定义被写在一个文本文件中 (成为 Jenkinsfile),该文件可以被提交到项目的源代码的控制仓库。这是"流水线即代码"的基础;将CD 流水线作为应用程序的一部分,像其他代码一样进行版本化和审查。创建并提交它到源代码控制中提供了一些即时的好处:自动地为所有分支创建流水线构建过程并拉取请求。
2024-03-11 15:58:30 1475
原创 王者Claude 3大模型!!!OpenAI竞争对手Anthropic推出Claude 3大模型,各项性能全面碾压GPT-4!
OpenAI不可战胜的神话,已经被打破了。周一,人工智能(AI)初创公司Anthropic推出了Claude 3大模型,能够更好地执行复杂的指令。该公司声称,Claude 3对复杂任务表现出接近人类的理解能力,是当前最强大的大模型之一;成为智能行业新标准。下一代 Al 模型 Claude 3。Claude 3分为三个版本,分别为Claude 3 Opus、Sonnet和Haiku,“中杯”(Sonnet)直接免费体验,“大杯”(Opus)充个会员也能即刻享受。
2024-03-05 15:33:36 655
原创 Ollama--本地大语言模型LLM运行专家
Ollama是一个强大的运行AI模型的工具;Ollama支持多种开源模型,您可以通过访问ollama.ai/library来查看所有可用的模型,并使用ollama pull 来下载指定模型。此外,如果您想创建自定义模型,可以通过创建Modelfile并使用ollama create -f ./Modelfile来创建,并通过ollama run 来运行您的模型。Ollama 以其易用性、灵活性和强大的功能,为本地运行大型语言模型提供了一个理想的解决方案。
2024-03-05 11:09:26 2725
原创 KubeSphere平台安装系列之三【Linux多节点部署KubeSphere】(3/3)
*《KubeSphere平台安装系列》****《KubeSphere平台安装系列》**
2024-03-02 20:32:09 1154 1
原创 KubeSphere平台安装系列之二【Linux单节点部署KubeSphere】(2/3)
*《KubeSphere平台安装系列》****《KubeSphere平台安装系列》**
2024-03-02 19:02:28 1083
原创 Kubernetes工作负载重点总结
临时容器可以在现有 Pod 中临时运行,以便完成用户发起的操作,例如故障排查。边车容器是一种特殊的常驻init容器,遵循init容器启动顺序,在创建Init 容器时将 restartPolicy 设置为 Always将变为边车容器,在整个 Pod 的生命周期中都处于活动状态,并且可以独立于主容器启动和停止,具有独立生命周期并支持探针来控制其生命周期。Pod支持优雅停止,删除一个Pod时会先发Term信号,提示Pod内的服务开始排空请求,默认30s后,如果Pod还没终止,就发送KILL信号强制杀死Pod。
2024-02-29 17:05:16 912
原创 Spring Boot整合MyBatis Plus集成多数据源轻松实现数据读写分离
在实际项目中,数据库是至关重要的组成部分。为了提高性能和可用性,常见的数据库优化策略之一是将数据库读和写操作分离,以降低数据库服务器的负载。MyBatis Plus是一个流行的Java持久化框架,它提供了读写分离的支持,结合Spring Boot 集成多数据源的特性可以帮助你轻松地实现读写分离策略。Springboot项目中操作数据库,使用MP方便快捷;如何使用MP实现读写分离,以提高你的应用程序性能和可用性。我们将分为以下几个步骤来介绍这一过程。
2024-02-29 10:23:55 926
原创 Kubernetes 外部 HTTP 请求到达 Pod 容器的全过程
如第二节图所示,全过程大致为:用户从 web/mobile/pc 等客户端发出 HTTP/HTTPS 请求。由于应用服务通常是通过域名的形式对外暴露,所以请求将会先进行 DNS 域名解析,得到对应的公网 IP 地址。公网 IP 地址通常会绑定一个 Load Balancer 负载均衡器,此时请求会进入此负载均衡器。• Load Balancer 负载均衡器可以是硬件,也可以是软件,它通常会保持稳定(固定的公网 IP 地址),因为如果切换 IP> 地址会因为 DNS 缓存的原因导致服务某段时间内不可达。
2024-02-28 10:58:32 1364 1
原创 Springboot项目中定时任务的四种实现方式
Component@Override// 定时任务逻辑@Bean.build();@Bean")) // 每天零点执行.build();通过上述的四种方法的实践,无论使用简单的@Scheduled注解还是更灵活的Quartz框架,都可以满足不同项目的需求。选择合适的方式,并结合实际场景,定时任务将为你的应用增添更多的价值和灵活性。
2024-02-28 07:24:50 618
原创 Kubernetes服务网络Ingress网络模型分析、安装和高级用法
Ingress翻译过来是“入口”的意思,也就是说:K8S希望Ingress能成为整个k8s集群的流量入口;Ingress网络是一组规则,充当Kubernetes集群的入口点。Ingress:Service的统一网关入口Service:Pod的统一网关入口所有流量首先进入Ingress,由Ingress转交给Service,最终由Service负载均衡后交到各个Pod应用。Ingress其实就是nginx封装的一个API对象。,通常通过HTTP管理集群中服务的外部访问,是暴露服务的最有效方式。
2024-02-22 11:11:11 870
原创 利用Docker部署一个简单的springboot项目
使用idea打开下载的项目,删除无用文件和文件夹,等待下载所需依赖。所有机器都安装Docker,任何应用都是镜像,所有机器都可以运行。部署一个Redis+应用,尝试应用操作Redis产生数据。上传的文件为jar包和Dockerfile文件。redis使用自定义位置的配置文件启动命令。编写Dockerfile将自己的应用打包镜像。利用xshell工具上传文件。挂载两个redis文件。
2024-02-20 15:00:31 913 1
原创 Docker命令实战
去docker hub或者其他镜像仓库,找到nginx镜像。启动nginx应用容器,并映射88端口,测试的访问。推送镜像到阿里云个人镜像仓库;修改默认的index.html 页面。将自己修改好的镜像提交。
2024-02-19 16:29:13 271
原创 介绍7款免费的最佳地图/导航/定位/GIS开源项目
L7 是由蚂蚁金服 AntV 数据可视化团队推出的基于 WebGL 的开源大规模地理空间数据可视分析开发框架。L7 中的 L 代表Location,7 代表世界七大洲,寓意能为全球位置数据提供可视分析的能力。L7 以图形符号学为理论基础,将抽象复杂的空间数据转化成2D、3D 符号,通过颜色、大小、体积、纹理等视觉变量实现丰富的可视化表达。大数据时代到来,随着数据的逐步开放,数据工作者们或多或少都要接触到时空数据。数据处理是一门艺术!
2024-02-18 14:40:23 1794
原创 linux 自动定时清理缓存
100表示尽可能多的把数据放到交换分区。Linux为了提高读写性能,会拿出一部分内存来临时存储数据(也就是系统缓存缓存),当剩余的内存(free)不够的时候,就会释放一部分缓存(buff/cache)来满足程序的使用需求。当系统的物理内存不够用时,就会把一部分不常用的数据临时放到交换分区(Swap),等到程序要使用这些数据时,再把它们从交换分区加载到物理内存中。交换分区可以在一定程度上解决内存不足的问题,但它会读取磁盘的数据,所以读写速度不快,因此,只有在内存不够用时,才会选择把数据放到交换分区。
2024-02-05 09:42:56 936
1. Jenkins持续集成从入门到精通 2. 轻松玩转docker 3. 《阿里云Kubernetes项目实战手册》
2024-04-12
卷王问卷考试系统SurveyKing,开源调查问卷和考试系统源码
2024-03-30
kube-prometheus-main
2024-03-30
Activiti与Spring整合开发(完整demo)
2024-01-13
springboot源码分析-自动配置原理入门
2024-01-13
kubesphere-installer.yaml和cluster-configuration.yaml v3.1.1
2023-12-26
安装Ingress-controller所需的两个yaml文件
2023-12-24
jdk-8u241-linux-x64.tar.gz
2023-11-26
工作流流程引擎flowable+springboot+vue3完整项目
2023-11-15
springboot-demo项目 docker compose从入门到放弃教程中的案例
2023-11-15
docker compose
2023-11-15
redis配置文件 使用Docker搭建一个“一主两从”的 Redis 集群(超详细步骤)()
2023-11-04
GDAL(Geospatial Data Abstraction Library)是一个开源栅格空间数据转换库
2023-09-27
可视化大屏的C位,也是焦点图
2023-06-20
可视化系统入口页,不漂亮不要钱!
2023-06-19
智慧工地系统需求方案ppt
2023-05-31
mapbox搭载vue3测试demo 总共20个具体案例
2023-05-30
《css效果图收集》一些好看的css效果图
2023-05-12
一套springboot+vue前后端分离的练手项目
2023-05-09
MyBatis Plus学习项目-idea
2023-05-09
alibaba seata分布式事务中bin/file.conf和registry.conf 修改后的文件
2023-04-24
springcloud+springcloud alibaba完整学习项目
2023-04-18
sentinel-dashboard-1.8.0
2023-04-18
zipkin-server-2.23.16-exec
2023-04-18
Vue.js学习课程 共32节课,附源码
2023-04-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人