Linux网络文件共享服务之FTP协议

目录

一、存储类型

1、直连式存储(DAS)

2、存储区域网络(SAN)

3、网络附加存储(NAS)

二、 FTP文件传输协议

1、FTP协议的工作原理

1.1 FTP协议的工作流程

1.2 FTP协议的两种工作模式

1.2.1 主动模式(Active Mode)

1.2.2 被动模式(Passive Mode)

1.3 ftp用户验证

1.4 FTP服务器端软件

三、vsftpd软件

1、vsftpd软件的相关文件

2、vsftpd软件基础操作

2.1 安装程序

2.2 客户端连接服务端

2.3 登录到可进行的ftp服务端操作

2.4 客户端退出ftp服务端

3、vsftpd服务常见配置

3.1 修改端口

3.1.1 修改默认命令端口

3.1.2 修改主动模式端口

3.1.3 修改被动模式端口

3.2 使用当地时间

3.3 匿名用户的配置

3.3.1 匿名用户登录

3.3.2 匿名用户上传

3.3.3 匿名用户下载及删除

​3.3.4 指定匿名用户的上传文件的默认的所有者和权限

3.3.5 禁止匿名用户登录

3.4 系统用户的配置

3.4.1  将所有系统用户映射为指定的guest用户

3.4.2 禁锢系统用户

3.5 日志

3.6 提示信息

3.7 控制传输速率


一、存储类型

1、直连式存储(DAS)

  • 将存储设备直接连接到主机或服务器的存储体系结构
  • DAS通常使用SATA、SAS或USB等接口连接硬盘驱动器或固态驱动器,提供本地存储容量
  • 每个服务器独立管理自己的存储资源,没有共享功能
  • DAS易于部署和管理,适用于简单的存储需求,例如个人电脑、小型办公室等

2、存储区域网络(SAN)

  • SAN是一种高速网络体系结构,将存储设备集中管理,并通过网络提供共享存储容量
  • SAN通常使用光纤通道(Fibre Channel)或以太网(iSCSI)连接存储设备和主机
  • 多个主机可以访问共享的存储池,实现高性能、高可靠性和灵活的存储解决方案
  • SAN适合于大型企业环境,如数据中心,需要强大的存储性能和可扩展性

3、网络附加存储(NAS)

  • NAS是一种基于网络的存储解决方案,通过以太网连接存储设备和主机
  • NAS设备具有自己的操作系统和文件系统,可以提供统一的文件共享访问
  • 主机使用网络协议(如NFS或SMB)来访问NAS上的文件,实现共享文件存储并简化管
  • NAS适用于小型到中型企业环境,提供简单、易于使用的存储资源共享功能
区别DASSANNAS
传输类型SCSI、FCIP、FC、SASIP
数据类型数据块数据块文件
典型应用任何数据库应用文件服务器
优点磁盘与服务器分离,便于统一管理

高扩展性

高可用性

数据集中,易管理

不占用应用服务器资源

广泛支持操作系统

扩展较容易

即插即用,安装简单方便

缺点

 连接距离短

数据分散,共享困难

存储间利用率不高

扩展性有限

相比NAS成本较高安添装和升级比NAS不适合存储量大的块级,应月数据备份及恢复占用网络带宽

二、 FTP文件传输协议

FTP(File Transfer Protocol,文件传输协议)是一种用于在网络上传输文件的标准协议。它允许用户通过网络从一个计算机向另一个计算机传输文件。FTP通常用于在客户端和服务器之间进行文件传输,允许用户上传(放置文件到服务器)和下载(从服务器获取文件)文件

1、FTP协议的工作原理

1.1 FTP协议的工作流程

  • 客户端连接到服务器:客户端使用FTP客户端软件(如FileZilla、WinSCP等)连接到FTP服务器
  • 身份验证:客户端提供用户名和密码进行身份验证,以便访问服务器上的文件
  • 浏览文件:一旦连接成功,客户端可以通过FTP客户端浏览服务器上的文件和目录结构
  • 上传和下载文件:客户端可以通过FTP客户端将文件上传到服务器,也可以从服务器下载文件到本地计算机
  • 断开连接:完成文件传输后,客户端可以选择断开与服务器的连接

1.2 FTP协议的两种工作模式

1.2.1 主动模式(Active Mode)

在FTP的主动模式下,客户端使用随机的非保留端口(通常大于1023)连接到服务器端口21。这个连接用于发送命令和控制信息

一旦数据传输需要开始,服务器会通过它的数据端口(通常是端口20)主动连接到客户端指定的数据端口。

主动模式的数据连接建立流程如下:

①客户端连接到服务器的端口21,发送命令和控制信息(客户端:随机port ---> 服务器:21/tcp )

②当需要进行数据传输时,服务器会主动连接到客户端指定的数据端口20,发送数据(服务器:20/tcp ---> 客户端:随机port  )

主动模式的优点是服务器可以主动连接到客户端,适用于客户端在防火墙后面的情况。然而,主动模式也存在一些问题,比如客户端需要在防火墙上打开一定范围的端口以便服务器能够连接,这可能存在安全隐患

1.2.2 被动模式(Passive Mode)

在FTP的被动模式下,客户端连接到服务器的端口21发送命令和控制信息

数据连接则由服务器打开一个随机的非保留端口,等待客户端连接

被动模式的数据连接建立流程如下:

①客户端连接到服务器的端口21,发送命令和控制信息(客户端:随机port ---> 服务器:21/tcp )

②当需要进行数据传输时,服务器会打开一个随机的非保留端口,被动等待客户端连接(客户端:随机port ---> 服务器:随机port /tcp)

被动模式的优点是避免了在客户端防火墙上打开额外的端口,因为数据连接是由服务器打开并等待客户端连接的。这种模式更容易在防火墙后面进行工作,因为客户端只需连接到服务器的端口21

1.3 ftp用户验证

  • 匿名用户:ftp、anonymous、对应Linux用户ftp root

  • 系统用户:Linux用户、用户/etc/passwd、密码/etc/shadow

  • 虚拟用户:特定服务的专用用户、独立的用户/密码文件

1.4 FTP服务器端软件

ProFTPD:ProFTPD是一个功能强大且广泛使用的免费开源FTP服务器软件,它运行在多个操作系统上,包括Linux、Unix和Windows

Pure-FTPd:Pure-FTPd是一个免费的、开源的FTP服务器软件,它注重安全性和易用性。它支持多种认证方式和虚拟用户

FileZilla Server:FileZilla Server是一个Windows平台上的免费FTP服务器软件,它提供了用户管理、权限控制和日志记录等功能

Cerberus FTP Server:Cerberus FTP Server是一个功能丰富、易于使用的FTP服务器软件,它支持多种认证方式、加密传输和远程管理

IIS FTP Server:IIS(Internet Information Services)是Windows操作系统自带的Web服务器软件,它也提供了FTP服务器功能。可以通过IIS管理工具配置和管理FTP站点

vsftpd:vsftpd(Very Secure FTP Daemon)是一个轻量级、快速和安全的FTP服务器软件,它专注于提供安全性和性能。它是Linux系统中最常用的FTP服务器软件之一

下面将主要介绍vsftpd软件

三、vsftpd软件

1、vsftpd软件的相关文件

/etc/vsftpd.conf:这是vsftpd的主要配置文件,其中包含了服务器的配置选项,如监听端口、用户权限、匿名访问设置等

/etc/vsftpd:这个目录通常包含一些附加的配置文件或子目录,用于存储与vsftpd相关的其他配置信息

/var/ftp :这是默认的FTP根目录,用于存储FTP服务器上的文件。这个目录通常包含匿名用户和已认证用户的文件

/usr/sbin/vsftpd:这是vsftpd服务器程序的可执行文件,用于启动和运行vsftpd服务器

/var/log/vsftpd.log:这是vsftpd的日志文件,记录了服务器的活动和事件,如用户登录、文件传输等

/etc/pam.d/vsftpd:这个文件包含了 vsftpd 使用的PAM(Pluggable Authentication Modules,可插拔身份验证模块)配置,用于定义身份验证策略

2、vsftpd软件基础操作

2.1 安装程序

#服务端:
yum install -y vsftpd     #安装ftp服务器
systemctl start vsftpd    #开启服务
#客户端:
yum install -y ftp        #安装ftp服务程序

2.2 客户端连接服务端

前提:关闭防火墙和临时防护

systemctl   stop  firewalld      #关闭防火墙
setenforce  0                    #关闭临时防护
通式:ftp  服务端ip

2.3 登录到可进行的ftp服务端操作

  • 浏览文件和目录:使用 FTP 客户端软件,你可以浏览 FTP 服务器上的文件和目录结构。你可以列出目录内容、查看文件属性和大小等信息
  • 上传和下载文件:你可以将本地计算机上的文件上传到 FTP 服务器,或从 FTP 服务器下载文件到本地计算机。这使得文件的传输变得方便快捷
  • 创建和删除目录:你可以在 FTP 服务器上创建新的目录,用于组织文件和数据。同样地,你也可以删除不再需要的目录
  • 重命名和移动文件:你可以对 FTP 服务器上的文件进行重命名,改变它们的名称。此外,你还可以将文件从一个目录移动到另一个目录,以重新组织文件结构
  • 修改文件权限:作为 FTP 服务器的管理员或有足够权限的用户,你可以修改文件的权限设置。这包括更改文件的所有者、组、读写执行权限等
  • 管理用户和身份验证:作为管理员,你可以管理 FTP 服务器上的用户账户和身份验证方式。这包括创建新用户、删除用户、修改用户密码等操作
  • 监控和查看日志:FTP 服务器通常会记录用户的登录、文件传输等活动。你可以查看服务器的日志文件,以监控和审计用户的操作

2.4 客户端退出ftp服务端

方式一:输入快捷键:“Ctrl+D”
方式二:输入命令“quit”

3、vsftpd服务常见配置

3.1 修改端口

3.1.1 修改默认命令端口
#在vsftpd配置文件下修改默认端口号
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
listen_port=2121      #默认值为21
[root@localhost ~]#systemctl restart vsftpd     #重启vsftpd服务

3.1.2 修改主动模式端口
#在vsftpd配置文件下可修改主动模式的端口
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
connect_from_port_20=YES   #主动模式端口为20
ftp_data_port=20           #指定主动模式的端口,默认为20
[root@localhost ~]#systemctl restart vsftpd     #重启vsftpd服务
3.1.3 修改被动模式端口
#在vsftpd配置文件下可修改被动模式的端口
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
#0为随机分配,规定端口范围会影响客户端的并发数
pasv_min_port=6000    
pasv_max_port=6010
[root@localhost ~]#systemctl restart vsftpd     #重启vsftpd服务

3.2 使用当地时间

#在vsftpd配置文件下可修改服务端的时间
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
use_localtime=YES   #使用当地时间(默认为NO,使用GMT)
[root@localhost ~]#systemctl restart vsftpd     #重启vsftpd服务

3.3 匿名用户的配置

3.3.1 匿名用户登录
#在vsftpd配置文件下可修改匿名用户的相关配置
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES   #支持匿名用户,CentOS8默认不允许匿名
no_anon_password=YES   #匿名用户略过口令检查 , 默认NO
[root@localhost ~]#systemctl restart vsftpd     #重启vsftpd服务
 3.3.2 匿名用户上传

 ftp协议默认匿名用户不允许上传文件, 为安全考虑,如果人人都传到ftp服务器,会出现病毒、空间容量等问题

#服务端添加程序的权限
#在vsftpd配置文件下可修改匿名用户的权限
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES        #支持匿名用户上传,注意:文件系统权限
anon_mkdir_write_enable=YES   #支持匿名用户建文件夹
[root@localhost ~]#systemctl restart vsftpd     #重启vsftpd服务**********************************************************************
#服务端添加ftp用户的文件系统权限
[root@localhost ~]#setfacl -m u:ftp:rwx /var/ftp/pub/
[root@localhost ~]#getfacl /var/ftp/pub/     #查看指定目录的权限***********************************************************************
#服务端删除添加到/var/ftp目录下的所有规则,恢复默认权限
[root@localhost ~]#setfacl -b /var/ftp  

①默认匿名用户不允许上传文件 

②在vsftpd配置文件下可修改匿名用户的权限 

 ③服务端添加ftp用户的文件系统权限

④验证,现在匿名用户能否上传文件到ftp服务器

3.3.3 匿名用户下载及删除
#在vsftpd配置文件下可修改匿名用户的权限
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
anon_world_readable_only=NO  #只能下载全部读的文件, 默认YES
anon_umask=0333              #指定匿名上传文件的umask,默认077,注意:0333中的0不能省略
anon_other_write_enable=YES  #可删除和修改上传的文件,默认NO
[root@localhost ~]#systemctl restart vsftpd     #重启vsftpd服务

 ①匿名用户从服务端下载文件到客户端的当前目录下

②匿名用户在服务端删除文件

 3.3.4 指定匿名用户的上传文件的默认的所有者和权限

匿名用户上传文件默认的所有者是ftp用户,这是可以修改的

#在vsftpd配置文件下可修改匿名用户的权限
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
chown_uploads=YES        #默认NO
chown_username=dh        #指定匿名用户的上传文件的默认的所有者为dh用户
chown_upload_mode=0644   #指定上传文件的权限
[root@localhost ~]#systemctl restart vsftpd     #重启vsftpd服务
3.3.5 禁止匿名用户登录
#在vsftpd配置文件下可修改匿名用户的权限
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO    #默认YES
[root@localhost ~]#systemctl restart vsftpd     #重启vsftpd服务

3.4 系统用户的配置

#在vsftpd配置文件下可修改系统用户的权限
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
local_enable=YES    #是否允许linux用户登录
write_enable=YES    #允许linux用户上传文件
local_umask=022     #指定系统用户上传文件的默认权限对应umask
[root@localhost ~]#systemctl restart vsftpd     #重启vsftpd服务
3.4.1  将所有系统用户映射为指定的guest用户
#在vsftpd配置文件下可修改系统用户的权限
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
guest_enable=YES 				#所有系统用户都映射成guest用户
guest_username=ftp   		    #配合上面选项才生效,指定guest用户
#local_root=/ftproot 			#注释此行,默认所有用户都在ftp用户的家目录
user_config_dir=/etc/vsftpd/conf.d/ 	#每个用户独立的配置文件目录,可自由指定
[root@localhost ~]#systemctl restart vsftpd     #重启vsftpd服务
*******************************************************************************
#编写子配置文件
[root@localhost ~]#mkdir -p /data/{mimi,gugu}
[root@localhost ~]#vim    /etc/vsftpd/conf.d/lisi     
local_root=/data/mimi
[root@localhost ~]#vim   /etc/vsftpd/conf.d/zhangsan
local_root=/data/gugu
[root@localhost ~]#systemctl restart vsftpd     #重启vsftpd服务
3.4.2 禁锢系统用户

①禁锢所有系统用户在家目录中

#在vsftpd配置文件下可修改系统用户的权限
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES     #禁锢系统用户,默认NO,即不禁锢
[root@localhost ~]#systemctl restart vsftpd     #重启vsftpd服务

 ②禁锢用户开启白名单和黑名单

#在vsftpd配置文件下可修改系统用户的权限
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
chroot_list_enable=YES                     #默认是NO
chroot_list_file=/etc/vsftpd/chroot_list   #默认值当chroot_local_user=YES和chroot_list_enable=YES时,则chroot_list中用户不禁锢,即白名单,只允许名单里的用户登录
当chroot_local_user=NO和chroot_list_enable=YES时, 则chroot_list中用户禁锢,即黑名单,只有文件里的用户禁锢
[root@localhost ~]#systemctl restart vsftpd     #重启vsftpd服务

3.5 日志

ftp服务端默认启动日志

#wu-ftp 日志:默认启用
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
xferlog_enable=YES              #启用记录上传下载日志,此为默认值
xferlog_std_format=YES          #使用wu-ftp日志格式,此为默认值
xferlog_file=/var/log/xferlog   #可自动生成, 此为默认值
[root@localhost ~]#systemctl restart vsftpd     #重启vsftpd服务*************************************************************************
#vsftpd日志:默认不启用
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
dual_log_enable=YES                    #使用vsftpd日志格式,默认不启用
vsftpd_log_file=/var/log/vsftpd.log    #可自动生成, 此为默认值
[root@localhost ~]#systemctl restart vsftpd     #重启vsftpd服务

3.6 提示信息

#在vsftpd配置文件下可修改提示信息
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
ftpd_banner="welcome to dhyq ftp server"
banner_file=/etc/vsftpd/ftpbanner.txt  
[root@localhost ~]#systemctl restart vsftpd     #重启vsftpd服务

3.7 控制传输速率

#在vsftpd配置文件下可修改限速
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
anon_max_rate=1024000   #1024000表示1MB/s
local_max_rate=102400
[root@localhost ~]#systemctl restart vsftpd     #重启vsftpd服务

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

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

相关文章

flutter报错Cannot hit test a render box that has never been laid out

出现这个问题的原因可能是因为你把一个ListView或者GridView放到了一个没有设置大小的容器里面导致的,所以意思是不能渲染那一个没有布局过的容器。我这里遇到的错误是因为我把GridView放到了一个Container里面,并且我没有设置Container宽高。 就导致了那…

嵌入式工作岗位未来会不会越来越少?

今日话题,嵌入式工作岗位未来会不会越来越少?未来的嵌入式岗位机会将会逐渐增多,因为嵌入式技术是万物互联的基础,从智能手表到智能汽车,嵌入式都扮演着关键角色。虽然相比计算机科学CS,嵌入式领域的天花板…

中间件框架知识进阶

概述 近期从不同渠道了解到了一些中间件相关的新的知识,记录一下收获。涉及到的中间件包括RPC调用、动态配置中心、MQ、缓存、数据库、限流等,通过对比加深理解,方便实际应用时候更明确如何进行设计和技术选型。 一、RPC框架中间件系列 1、…

华清远见作业第二十七天——网络编程(第二天)

思维导图&#xff1a; 在虚拟机实现客户端控制机械臂 代码&#xff1a; #include<stdio.h> #include<string.h> #include<stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <a.h> #define SER_PORT 8888 //服务端口 #d…

SpringBoot 启动优化实践!

背景 公司 SpringBoot 项目在日常开发过程中发现服务启动过程异常缓慢&#xff0c;常常需要 6-7 分钟才能暴露端口&#xff0c;严重降低开发效率。通过 SpringBoot 的 SpringApplicationRunListener 、BeanPostProcessor 原理和源码调试等手段排查发现&#xff0c;在 Bean 扫描…

Linux安装Rdkafka PHP 扩展(Kafka使用教程)

以是centos为例 #可以查看php版本 php -v#查看php安装的扩展库 php -m 1、首先&#xff0c;确保你已经安装了 PHP 和相关的开发工具。你可以使用以下命令来安装它们&#xff1a; sudo yum install php-devel 中间会问你是否ok&#xff0c;输入y回车&#xff0c;出现complete…

pycharm debug显示的变量过多

问题&#xff1a; https://blog.csdn.net/Hodors/article/details/117535731 解决方法&#xff1a; 把"Show console variables by default"前面的勾取消掉就行 参考&#xff1a; https://stackoverflow.com/questions/48969556/hide-console-variables-in-pychar…

数据结构——二叉树(先序、中序、后序及层次四种遍历(C语言版))超详细~ (✧∇✧) Q_Q

目录 二叉树的定义&#xff1a; *特殊的二叉树&#xff1a; 二叉树的性质&#xff1a; 二叉树的声明&#xff1a; 二叉树的先序遍历&#xff1a; 二叉树的中序遍历&#xff1a; 二叉树的后序遍历&#xff1a; 二叉树的层序遍历&#xff1a; 二叉树的节点个数&#xff1a; 二叉…

使用netdxf(C#)框架实现dxf文件读取与导出坐标

使用netdxf&#xff08;C#&#xff09;框架实现dxf文件读取与导出坐标 一、新建窗体应用程序DxfToolDemo&#xff0c;将默认的Form1重命名为FormDxfTool 窗体FormDxfTool.Designer.cs设计器源程序如下&#xff1a; namespace DxfToolDemo {partial class FormDxfTool{/// <…

x-cmd pkg | magic-wormhole - (魔法虫洞)文件传输工具

目录 简介首次用户功能特点竞品和相关作品进一步探索 简介 magic-wormhole 是一个用于在两台计算机之间安全传输文件的工具。它通过创建一个临时的点对点连接&#xff0c;允许用户将文件或文本从一台计算机发送到另一台计算机。 它使用 PAKE 这一系列的加密算法&#xff0c;通…

扫地机行业研究:预计2028年将达到78.51亿美元

吸尘器、扫地机器人、洗地机为清洁电器中最亮眼的三大品类。吸尘器主要用来吸尘&#xff0c;扫地机的主要作用也是用于除尘&#xff0c;具备扫拖一体功能的扫地机&#xff0c;干湿混合垃圾暂时做不到干净清理。洗地机集齐了“吸、拖、洗”三种功能为一体&#xff0c;并且具备自…

消息队列-RockMQ-定时延时发送消息

定时延时发送消息 任务需要延迟一段时间再进行处理。 生产者 public class Producer {public static void main(String[] args) throws Exception {DefaultMQProducer producer new DefaultMQProducer("producer_group");producer.setNamesrvAddr("ip:9876&q…

【Python 数据分析】数据预处理:z-score 标准化、min-max 归一化、数据缺失值处理、数据重复处理

目录 简述 / 前言1. z-score 标准化2. min-max 归一化3. 数据缺失值处理4. 数据重复处理 简述 / 前言 本篇文章分享数据分析中最重要的一个步骤&#xff1a;数据预处理。我们在做数据分析之前&#xff0c;都需要采集很多数据&#xff0c;这些数据可能是从官网下载的&#xff0…

【docker-compose】【nginx】内网环境https配置

目录 1、openssl生成自签名证书和私钥2、nginx.conf配置ssl3、docker-compose挂载 1、openssl生成自签名证书和私钥 在部署服务器上&#xff0c;新建cert目录&#xff0c;执行以下指令&#xff0c;然后生成.crt和.key文件 openssl req -newkey rsa:2048 -nodes -keyout rsa_pri…

linux yum仓库

yum是基于rpm包构建的软件更新机制&#xff0c;能够自动解决软件包之间的依赖关系。 常用命令 查询 yum list [软件名] 显示可用的安装包&#xff0c;如果不加软件名则显示所有的可用包 yum info [软件名] 显示安装包的详细信息 如果不加软件名是显示所有包…

2024年【上海市安全员B证】考试试卷及上海市安全员B证复审模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 上海市安全员B证考试试卷根据新上海市安全员B证考试大纲要求&#xff0c;安全生产模拟考试一点通将上海市安全员B证模拟考试试题进行汇编&#xff0c;组成一套上海市安全员B证全真模拟考试试题&#xff0c;学员可通过…

海外短剧APP小程序开发 随心随意畅享大片

随着智能手机的普及和网络的高速发展&#xff0c;短剧APP已经成为当今热门的观影方式。作为一种全新的观影体验&#xff0c;海外短剧APP以其丰富多样的内容吸引了大量用户。本文将为您介绍海外短剧APP开发的相关知识和其所带来的优势&#xff0c;以及市场前景和发展趋势。 海外…

jsonschema,一个超强的 Python 库!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个超强的 Python 库 - jsonschema。 Github地址&#xff1a;https://github.com/python-jsonschema/jsonschema JSON&#xff08;JavaScript Object Notation&#xff09;是…

MySQL 多版本并发控制 MVCC

MVCC出现背景 事务的4个隔离级别以及对应的三种异常 读未提交&#xff08;Read uncommitted&#xff09; 读已提交&#xff08;Read committed&#xff09;&#xff1a;脏读 可重复读&#xff08;Repeatable read&#xff09;&#xff1a;不可重复读 串行化&#xff08;Se…

.NET领域最硬核的gRPC 核心能力一把梭

前言&#xff0c;本文定位为.NET方向 grpc核心能力一把梭&#xff0c;全篇是姿势性和结论性的展示&#xff0c; 方便中高级程序员快速上手.NET Grpc。 有关grpc更深层次的前世今生、底层原理、困惑点释疑请听下回分解&#xff0c; 欢迎菜鸟老鸟们提出宝贵意见。 grpc宏观目标&…