云技术基础学习

声明
学习内容来自 B站 up 主《泷羽 sec》,如涉及侵权等问题,请及时联系,本人将马上删除文章。在此郑重声明,文章仅限于交流学习,任何其他违法行为与本人及泷羽 sec 无关。请务必遵守法律法规,切莫越过法律红线,否则后果自负(自学用,防忘记,不喜勿喷)。

云架构介绍

不管是防御系统还是进攻系统,强大的底层技术基础都是必不可少的。从防御的角度来看,只有了解底层技术,我们才能知道如何构建防御体系。从进攻的角度讲,了解底层技术才能发现漏洞并开发出漏洞利用的方法。

云计算是一种通过互联网提供计算资源和服务的技术。它使用户能够按需访问和使用远程数据中心中存储的计算资源,而无需购买和维护物理硬件或服务器。云计算的核心理念是通过共享资源实现更高的效率和灵活性。

云计算的主要特征:

  1. 按需自助服务:用户可以根据需要随时获取计算资源,如存储和处理能力,而不需要与服务提供商直接交互。
  2. 广泛的网络访问:通过互联网进行访问,用户可以在任何连接网络的设备上使用服务。
  3. 资源池化:云服务提供商将计算资源集中在一起,通过多租户模型为多个用户提供服务,用户共享的资源池具有弹性伸缩的特点。
  4. 快速弹性:根据用户需求,计算资源可以快速扩大或减少,几乎可以实时响应业务需求的变化。
  5. 按使用付费:用户按实际使用量付费,从而提高成本效益,不需要为闲置资源支付额外费用。

云计算的服务模型:

  1. 基础设施即服务(IaaS):提供基本的计算基础设施,如虚拟服务器、存储、网络等。用户可以在此基础上安装和配置自己的软件和操作系统。
  2. 平台即服务(PaaS):提供开发和部署环境,用户可以在云上构建、测试和部署应用程序,而不需要管理底层的基础设施。
  3. 软件即服务(SaaS):提供完整的软件解决方案,用户可以直接通过网络访问应用程序,无需下载或安装。

云服务

云是一种 IT 基础设施系统,它将资源的创建抽象在容错、地理分布和可扩展的物理基础设施之上。并以服务器的形式按需求交付能力,非常易于使用,可以自动创建服务器、存储、网络等等。云基础架构必须稳定,不能频繁出现中断。地理分布的云基础设施能够提高容错能力,而且云必须能够快速扩展,以满足各种需求。

有很多公有云服务商,比如 Amazon Web Services(AWS)、Azure、Google(GCP),还有华为云、腾讯云、阿里云等等。组织可以使用 OpenStack 等工具在自己的数据中心搭建私有云,或者一部分业务运行在私有云中,一部分运行在公有云中。

  1. 公有云:由第三方提供商运营,服务对公众开放,如AWS、Microsoft Azure、Google Cloud。
  2. 私有云:专门为某个组织设计和运营,提供更高的安全性和控制力。
  3. 混合云:结合了公有云和私有云的优点,允许数据和应用在两者之间自由流动。
  4. 多云:使用多个不同的云服务提供商,分散风险并优化成本。

共享责任模型

云服务在提供容错和扩展的同时,也在不同层面增加了安全性的模糊性。如果是 AWS 程序漏洞导致大量数据泄露,AWS 不承担责任。但如果 AWS 数据中心物理安全遭到破坏,客户数据被盗取,AWS 就得承担责任。

云架构

1. 虚拟化:把一台机器的资源分成多台虚拟机器,多台裸机汇集形成资源集群,隔离资源的使用,灵活且可扩展资源池。它抽象了硬件安装过程,但仍有改进空间,并非专为云而生。技术栈的灵活性和可定制性提升,促使了容器的出现。
2. 容器:容器就像一个个独立的小空间,允许开发人员与堆栈各部分灵活交互,实现按需生成服务,提高网络抽象程度,方便应用迁移扩展,更高效地使用资源。系统管理和网络工程可以外包给其他公司。云是多种技术的集合。

云架构设

1. 组件选择:确定架构(这很难改),选择绑定或非绑定组件,可以自己开发、用开源的或者购买。云原生组件是为分布式系统设计的,CNCF 认证不是必须的,要安全编码,部分是开源的。
2. 基础设施即代码(IaC):包括引导介质(Packer)、安装系统(Terraform)、自动配置(Ansible)、状态强制(Monit)。

集成部署

使用持续集成和持续交付(CICD)管道来构建环境,包括测试、测量和扫描代码更改的自动化测试和部署(GitOps)。要做到有弹性可靠,即任何单点故障都有故障转移或其他机制,让业务能持续提供(这叫冗余)。全球负载均衡(GSLB,比如智能 DNS、GTM)能解决客户单访问的单点故障隐患。还要平衡控制,控制保护系统免受漏洞和内部攻击的组件,应平衡控制和可用性。

云设计模式

云架构设计不必从头开始,采用已检验的设计模式是最佳选择。

1. 微服务架构:为松散耦合、模块化服务而设计,微服务协同工作完成整体服务。每个服务都可以独立修改代码和重用,提高系统整体弹性和容错。大多数云利用微服务架构,云原生应用被构建充当微服务,便于水平扩展。安全优势是每个微服务应用强化、隔离,单一服务漏洞对整体系统影响小。缺点是调试更复杂,需要跨不同服务跟踪事务;性能可能有短板。
2. 零信任架构:对资源的每个请求都需要验证来源已授权,然后授权短期访问(用令牌)。实现零信任架构的一种常见方法是 Open ID Connect(OIDC)联盟访问。授权处于活动状态时可以访问任何联合内服务。密码重置是针对零信任架构的常见攻击方式。

安全控制

1. 网络控制:传统架构用防火墙实现网络控制,云环境网络抽象为 SDN、SD WAN。SDN 可以对不同的接口(如 API 或 GUI)设置网络规则。通过 mTLS 不仅能加密流量,还能对客户端进行身份验证,有证书才能访问微服务。不正确的访问管理可导致权限提升,甚至破坏整个基础设施。现代访问管理系统多使用令牌进行访问控制,提供对服务的短时访问权。JWT 通常用于访问云端资源,伪造和破解密码是常见攻击手段。另一种类型的权限控制机制是强制访问控制 MAC。
2. 身份管理:企业通常用 AD、LDAP 进行身份管理。AWS IAM 是身份和访问管理的公共云服务。Google 联盟认证 OIDC 经常用于 2FA。云身份提供者(IdP)作为真实身份来源,是更安全的解决方案,比如 Azure AD。

容器与云


虚拟化中每个 VM 需要运行自己的操作系统,大大增加了总体开销。容器化是更现代的架构,容器共享内核与硬件,更快、更小、更高效。容器是对虚拟化的补充,而非取代。容器的系统开销更小,可以进一步分离应用组件,比如搜索、登录、查询、订单功能分开。容器使用映像作为模板生成,映像相当于计算机硬盘。容器使用不同发行版文件加载内核,运行容器。

在 Ubuntu 上生成 CentOS 7 容器,可以使用 Docker 这个流行的容器化工具。步骤如下:
 - 确保安装了 Docker。如果没有安装,可以使用以下命令安装:“sudo apt-get update”,这个命令让系统检查有没有新软件。“sudo apt-get install docker.io”,安装 Docker。


 我这里docker拉不下来centos7这边贴一下解决办法

#修改配置文件
sudo vim /etc/docker/daemon.json(将下面内容写到.json文件中)

{"registry-mirrors" :
[
  "https://hub.littlediary.cn",
  "https://hub.xdark.top",
  "https://docker.kejilion.pro",
  "https://registry.dockermirror.com",
  "https://hub.rat.dev",
  "https://dhub.kubesre.xyz",
  "https://docker.nastool.de",
  "https://docker.m.daocloud.io",
  "https://noohub.ru",
  "https://huecker.io",
  "https://dockerhub.timeweb.cloud",
  "https://docker.rainbond.cc"
]
}

然后sudo apt-get update

接下来sudo systemctl daemon-reload

sudo systemctl restart docker

接着拉取镜像 sudo docker pull centos:7

- 拉取 CentOS 7 的官方 Docker 镜像:“sudo docker pull centos:7”。
 - 运行一个基于 CentOS 7 镜像的容器:“sudo docker run -it --name my_centos7 centos:7 /bin/bash”。

创建 Apache 容器后台运行:“docker container run -d --rm -p 8080:80 httpd”。

常用命令:
 - “docker container ls”:查看所有容器。


 - “docker exe -it 容器名称或ID /bin/bash”:进入特定容器。
 - “dochker container stop 容器名称或ID”:停止容器。
 - “docker container run -d --rm -p 8080:80 -v /home/user/webroot/:/usr/local/apache2/htdocs/ httpd”:挂载宿主机目录运行容器。
 - “docker container run -d --rm --network host -v /home/user/webroot/:/usr/local/apache2/htdocs/ httpd”:侦听宿主机 80 端口运行容器。


 - “docker ps”:列出所有正在运行的容器。
 - “docker top <container_name_or_id>”:查看特定容器的进程信息。

Podman 是 Docker 的替代产品,无守护进程。

首先进行安装sudo apt-get install podman


 - “sudo podman run -d --r-m --network host httpd”:运行容器。
 - “podman pod create --name wha”:创建空 pod。
 - “podman run -d --pod wha httpd”:在 pod 中运行容器。
 - “podman run -pod wha -it alpine/curl /bin/asho”:在 pod 中运行可找东西的工具并互动。

大部分容器化过程都采用开放容器计划(OCI)标准,所以 Podman 和 Docker 可互操作。

容器的真相 

Linux 没有单一被称为“容器”的特性。实际上,“容器”是阻止进程访问其他进程和资源的特性组合,发生在内核级别,可以控制其限制级别。

容器的历史:
 - 197x 年代引入 chroot,可以指示进程的新根目录,但不完美。命名空间可实现每个进程分离网络、进程和其他命名空间。
 - 1999 年 FreeBSD 发布 Jails,在 chroot 之上提供更多限制(Linux 不支持)。
 - 2002 年引入命名空间,分离内核资源。
 - 2006 年谷歌引入进程容器,后被称为 cgroup,可限制特定进程的内存和 CPU 资源。结合 cgroup 和命名空间发布了 Linux 容器(LXC)项目。

Linux 中有八种用户命名空间:挂载、进程 ID、网络、进程间通信、UTS、用户 ID、控制组、时间、syslog。

Capabilities

Docker 默认不使用用户命名空间。为防止特权内核调用,它使用内核 capabilities 和 seccomp 配置文件限制访问。Linux 有特权或非特权进程。非特权进程有正确权限可写入系统文件,特权进程几乎无所不能。当非特权用户只需要特殊权限时,可使用 Capabilities。Linux 将一些系统级任务分组为 40 多个类别,称为 Capabilities。

常见 Capabilities:
 - CAP_CHOWN:允许进程修改文件所有者。
 - CAP_NET_ADMIN:对网络配置执行管理任务。
 - CAP_NET_BIND_SERVICE:允许绑定低于 1024 的端口。
 - CAP_NET_RAW:允许使用 RAW 套接字。
 - CAP_SYS_ADMIN:“根”权限(危险),启用过多功能集。
 - CAP_SYS_BOOT:允许重新启动主机。
 - CAP_SYS_MODULE:允许加载和卸载内核模块。
 - CAP_SYS_TIME:允许进程设置系统时钟。
 - CAP_SYS_CHROOT:允许使用 chroot。
 - CAP_AUDIT_WRITE:允许写入内核审计日志。

提升工具权限有隐患,可能被恶意用户利用,破坏系统、窃取敏感信息或完全控制整个系统。

Kubernetes(k8s)

Kubernetes(简称K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。Kubernetes最初由Google设计并开源,现在由云原生计算基金会(CNCF)进行维护。它在现代应用开发和部署中扮演着关键角色,帮助开发者和运维团队有效管理容器化环境。

K8s的核心功能与概念:
1. 容器编排:Kubernetes负责调度和管理容器化应用的部署与运行,自动处理容器的启动、停止和重启。
2. 自动扩展与缩放:根据应用的负载情况,K8s可以自动扩展或缩减容器实例数量,以实现资源优化和更高的性能。
3. 自愈能力:Kubernetes能自动检测失败的容器并重新启动,以确保应用的高可用性和稳定性。
4. 负载均衡和服务发现:通过K8s,容器间的流量可以被自动均衡,保证应用的性能和用户请求的分发。
5. 配置管理和机密管理:K8s支持以声明式方式管理应用的配置和敏感信息,而不会将这些数据硬编码到应用中。
6. 滚动更新与回滚:Kubernetes可以无缝地更新应用程序,而不会导致停机,如果有问题,可以快速回滚到之前的版本。

 K8s的核心组件:
1. 节点(Node):K8s集群中运行容器的机器,每个节点运行容器运行时(如Docker)和Kubernetes代理进程。
2. Pod:K8s中最小的可部署单元,通常包含一个或多个容器,容器共享存储和网络资源,并定义了如何运行应用。
3. 控制平面(Control Plane):负责管理整个集群的组件,包括调度器、API服务器、控制器管理器和etcd数据库。
4. Kubelet:每个节点上的代理进程,负责确保容器按照定义的Pod规范运行。
5. 服务(Service):为Pod提供稳定的网络访问,支持容器的自动发现和负载均衡。
6. Ingress:管理从外部访问集群内部服务的HTTP和HTTPS路由。

Kubernetes的优势:
- 自动化操作:通过定义清晰的YAML或JSON文件,K8s可自动管理应用程序的生命周期。
- 可移植性:支持在不同环境中(如本地数据中心、云平台等)一致地部署和管理应用。
- **弹性和高可用性**:通过多节点和Pod的分布式架构,K8s能提供容错能力和更高的可用性。
- 支持多种容器运行时:除了Docker,K8s还支持其他容器运行时如containerd和CRI-O。

Kubernetes的生态系统与工具:
Kubernetes拥有庞大的生态系统,支持多种工具与扩展,如:
- Helm:K8s的包管理工具,用于简化应用的安装和管理。
- Kubectl:K8s的命令行工具,用于与集群进行交互。
- Prometheus:用于监控和告警的解决方案,与K8s集成良好。

Kubernetes已成为现代DevOps和云原生应用开发的重要支柱,帮助开发团队实现更快的部署周期、更高的系统可靠性和更好的资源利用率。

安装 Kubernetes

泷羽sec------k8s的基础学习-CSDN博客(这里贴一下同学的)

部署应用到 Kubernetes

1. 创建一个 Deployment:“kubectl create deployment nginx --image=nginx”,部署 Nginx 服务器。
2. 查看 Deployment:“kubectl get deployments”。
3. 创建一个 Service:“kubectl expose deployment nginx --port=80 --type=NodePort”,让外部访问 Nginx 服务器。
4. 查看 Service:“kubectl get services”。

访问应用

在 Service 信息中找到 NodePort 的端口号,使用“<Minikube IP>:<NodePort>”在浏览器中访问 Nginx 服务器。

扩展应用

1. 扩展 Deployment 的副本数量:“kubectl scale deployment nginx --replicas=3”。
2. 查看副本数量:“kubectl get deployments”。

更新应用

1. 更新 Deployment 的镜像:“kubectl set image deployment/nginx nginx=new-image:version”。
2. 查看更新进度:“kubectl rollout status deployment/nginx”。

Git

Git 是一个分布式版本控制系统,用于跟踪文件的变化,方便团队协作开发软件项目。可以记录文件的历史版本,允许开发者在不同版本之间切换,并且可以合并多个开发者的修改。

安装 Git

在不同操作系统上安装方法不同:
 - Windows:从 Git 官方网站下载安装程序进行安装。
 - macOS:使用 Homebrew 等包管理器安装 Git。
 - Linux:通过系统的包管理器安装 Git,如在 Ubuntu 上使用“sudo apt-get install git”。

Git 的安全措施

1. 保护 Git 仓库很重要,因为它通常包含项目的源代码和敏感信息。
2. 使用强密码,为 Git 远程仓库设置强密码,避免简单或常用密码。
3. 限制访问权限,只授予必要人员访问权限,可使用 Git 提供的权限管理功能或第三方工具。
4. 避免提交敏感信息,若不小心提交,可使用“git rm --cached <文件名>”从暂存区删除,然后“git commit --amend”修改上一次提交。创建“.gitignore”文件,列出不需要被跟踪的文件和目录。
5. 确保与 Git 远程仓库的通信是加密的,可以使用 SSH 或 HTTPS 协议进行通信。

6. 定期进行安全审计,检查 Git 仓库的安全性,包括权限设置、敏感信息泄露等,可使用第三方工具。
7. 定期备份 Git 仓库,防止数据丢失,可以使用 Git 的备份工具或复制到其他存储设备中。

8. 克隆仓库:“git clone <远程仓库地址>”。
9. 处理冲突:当多个开发者同时修改同一个文件时,可能会出现冲突,在合并分支时需要手动解决冲突,然后提交更改。

10. 创建分支:“git branch <分支名>”。
11. 切换分支:“git checkout <分支名>”。
12. 合并分支:在一个分支上完成工作后,可将其合并到另一个分支。先切换到目标分支,然后使用“git merge <源分支名>”命令进行合并。

13. 初始化仓库:“git init”。
14. 添加文件:“git add <文件名>”或“git add.”。
15. 提交更改:“git commit -m "提交说明"”。
16. 查看状态:“git status”。
17. 查看历史记录:“git log”。


 

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

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

相关文章

初识Linux · 匿名管道

目录 前言&#xff1a; 匿名管道 理解为什么&#xff1f; 理解是什么&#xff1f; 理解怎么做&#xff1f; 前言&#xff1a; 引入管道之前&#xff0c;我们引入几个问题&#xff0c;进程通信的相关问题。 第一个是进程之间为什么要通信&#xff0c;对于进程间通信来说&…

MySQL数据库:本地部署数据库以及安装彩虹猫【Navicat】

文章目录 一.安装前准备工作1.下载并解压文件2.修复电脑缺失的文件 二.本地部署MySQL1.先解压mysql-8.0.25-winx64.zip&#xff0c;并把文件放到安装需要的位置&#xff0c;再把my.ini文件放到mysql-8.0.25-winx64的根目录2.修改注册表的根目录信息为自己的安装装路径3.进命令符…

计算机网络作业一

一共8次作业&#xff0c;都挺难的&#xff0c;只能在老师的要求下尽力尝试。 任务&#xff1a;探测Internet (IPv4和IPv6) 1. 探测并估计有多少地址是活动的&#xff0c;解释你的方法并估计误差范围 2. 找到尽可能多的关键地址&#xff0c;然后解释它们是什么&#xff0c;为…

联通10010 阿里滑块 231 分析

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 有相关问题请第一时间头像私信联系我删…

DAY58||110.字符串接龙 |105.有向图的完全可达性 |106.岛屿的周长

110.字符串接龙 110. 字符串接龙 题目描述 字典 strList 中从字符串 beginStr 和 endStr 的转换序列是一个按下述规格形成的序列&#xff1a; 1. 序列中第一个字符串是 beginStr。 2. 序列中最后一个字符串是 endStr。 3. 每次转换只能改变一个字符。 4. 转换过程中的中间字符串…

爬虫补环境案例---问财网(rpc,jsdom,代理,selenium)

目录 一.环境检测 1. 什么是环境检测 2.案例讲解 二 .吐环境脚本 1. 简介 2. 基础使用方法 3.数据返回 4. 完整代理使用 5. 代理封装 6. 封装所有使用方法 jsdom补环境 1. 环境安装 2. 基本使用 3. 添加参数形式 Selenium补环境 1. 简介 2.实战案例 1. 逆向目…

《TCP/IP网络编程》学习笔记 | Chapter 8:域名及网络地址

《TCP/IP网络编程》学习笔记 | Chapter 8&#xff1a;域名及网络地址 《TCP/IP网络编程》学习笔记 | Chapter 8&#xff1a;域名及网络地址域名系统什么是域名&#xff1f;DNS 服务器IP 地址和域名之间的转换使用域名的必要性利用域名获取 IP 地址利用 IP 地址获取域名 基于 Wi…

Liunx:简易版进程池

进程向系统申请资源存在一定的效率问题。系统调用在底层是有成本的。频繁的向操作系统申请资源会造成一定的开销。解决办法是一次性向系统申请你需要的资源&#xff0c;将这些资源在用户层管理维护起来&#xff0c;减少程序频繁的陷入内核。这就是池化的意思&#xff0c;可以简…

百亿AI数字人社会初现:Project Sid展示智能代理文明进化路径

项目背景 Project Sid 是一项开创性的AI代理人文明实验,旨在通过新开发的认知架构 PIANO 探讨AI代理人是否能够在大规模数字社会中实现文明的演进。这项实验不仅展示了社会进步、角色分化、治理体系及文化传播等特征,还揭示了一个包含百亿“数字人类”的社会可能性。 PIANO…

CoCa: Contrastive Captioners are Image-Text Foundation Models

Jiahui Yu† Zirui Wang†{jiahuiyu, ziruiw}google.comVijay Vasudevan Legg Yeung Mojtaba Seyedhosseini Yonghui WuGoogle Research 参考代码链接&#xff1a;https://github.com/lucidrains/CoCa-pytorch 模型效果对比网址&#xff1a;CoCa: Contrastive Captioners are …

HarmonyOS一次开发多端部署三巨头之功能级一多开发和工程级一多开发

功能级一多开发与工程级一多开发 引言功能级一多开发SysCaps机制介绍能力集canlUse接口 工程级一多开发三层架构规范 引言 一次开发多端部署 定义&#xff1a;一套代码工程&#xff0c;一次开发上架&#xff0c;多端按需部署 目标&#xff1a;支撑开发者快速高效的开发多终端设…

c中的文件管理

大家好&#xff0c;今天我们来看看语言中的文件管理&#xff0c;聊到这个&#xff0c;我们就得先说说文件的特点。 1.文件是一种让数据持久化的方法&#xff0c;使用文件可以将数据直接存放在电脑的硬盘上&#xff0c;做到数据持久化。 那么什么是文件呢&#xff1f; 硬盘上…

ElasticSearch的Python Client测试

一、Python环境准备 1、下载Python安装包并安装 https://www.python.org/ftp/python/3.13.0/python-3.13.0-amd64.exe 2、安装 SDK 参考ES官方文档: https://www.elastic.co/guide/en/elasticsearch/client/index.html python -m pip install elasticsearch一、Client 代…

python中常见的8种数据结构之一数组的应用

在Python中&#xff0c;数组是一种常见的数据结构&#xff0c;用于存储一系列相同类型的元素。在实际应用中&#xff0c;数组可以用于解决各种问题。 以下是数组在Python中的一些常见应用&#xff1a; 1. 存储和访问数据&#xff1a;数组可以用于存储和访问一组数据。可以通过…

Android 实现柱形图

在 Android 中实现柱状图&#xff0c;可以使用流行的图表库 MPAndroidChart&#xff0c;它支持多种类型的图表&#xff0c;包括柱状图、折线图、饼图等。下面是一个基本的柱状图实现步骤&#xff0c;具体分为以下几个部分&#xff1a; 1. 添加依赖 首先&#xff0c;你需要在 …

python基础

1.python的第一个程序 2.代码注释 3.交互模式 4.变量与常量 电影文件是有文件类型&#xff1a;MP4&#xff0c;avi 图片文件&#xff1a;jpeg&#xff0c;png&#xff0c;jpg 5.数据类型 python类型决定了当前变量在内存中的存储体积 字符串&#xff0c;字符&a…

13.UE5流星火雨,引导施法技能制作

2-15 流星火雨&#xff0c;引导施法技能制作、随机数_哔哩哔哩_bilibili 目录 1.为流星火雨添加按键映射 2.创建流星火雨的动画蒙太奇 3.实现播放动画蒙太奇的逻辑 ​编辑 4.定义发射一波流星火雨的发射物 5.使用动画通知释放流星火雨 1.为流星火雨添加按键映射 创建名为流…

【python程序】恢复曾经删除的QQ说说

是否还能想起曾经的QQ说说&#xff0c;是否还想知道自己以前删除了什么 今天就给大家介绍下这个可以恢复以前删除的QQ说说的 小工具 这个工具是由python编写的&#xff0c;也已经打包好了小程序&#xff0c;一键运行 具体下载地址&#xff1a;https://pan.quark.cn/s/b3f41e3…

Springboot 整合 Java DL4J 打造企业知识图谱构建系统

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

goroutine 介绍

引子&#xff1a; 线程比如打开腾讯视频然后开始下载多个视频&#xff0c;下载任务就是线程 但是这并不是同时进行的&#xff0c;只是时间片比较短切换的比较快 进程和线程的关系 有些程序可以多进程有些可能不支持 并发和并行 并发和并行的根本区别是&#xff1a;并发在同一时…