Linux基礎學習-NFS網路文件系統實時文件共用

来源:https://www.cnblogs.com/qdlinux/archive/2018/08/16/9489887.html
-Advertisement-
Play Games

NFS網路文件系統 如果大家覺得Samba服務程式的配置太麻煩了,那麼你共用文件的主機都是Linux系統,那麼推薦大家在客戶端部署nfs服務來共用文件.nfs(網路文件系統)服務可以將遠程Linux系統上的文件共用資源掛載到本地主機的目錄上,從而使得本地主機客戶端基於TCP/IP協議,像是用本地主機 ...


NFS網路文件系統

如果大家覺得Samba服務程式的配置太麻煩了,那麼你共用文件的主機都是Linux系統,那麼推薦大家在客戶端部署nfs服務來共用文件.nfs(網路文件系統)服務可以將遠程Linux系統上的文件共用資源掛載到本地主機的目錄上,從而使得本地主機客戶端基於TCP/IP協議,像是用本地主機上的資源那樣讀寫遠程Linux系統上的共用文件.

實驗環境

主機 操作系統 IP地址
NFS伺服器 RHEL7.4 192.168.56.15
NFS客戶端 CentOS7.4 192.168.56.5
前期準備這裡我把防火牆以及selinux都給關閉了.

1 安裝 NFS-Server 使用 yum install nfs-utils rpcbind -y 命令.

[root@qdlinux ~]# yum install -y nfs-utils rpcbind
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
dvd                                                                                       | 4.1 kB  00:00:00     
Resolving Dependencies
--> Running transaction check
---> Package nfs-utils.x86_64 1:1.3.0-0.48.el7 will be installed
--> Processing Dependency: gssproxy >= 0.7.0-3 for package: 1:nfs-utils-1.3.0-0.48.el7.x86_64
--> Processing Dependency: libtirpc >= 0.2.4-0.7 for package: 1:nfs-utils-1.3.0-0.48.el7.x86_64
--> Processing Dependency: libevent for package: 1:nfs-utils-1.3.0-0.48.el7.x86_64
--> Processing Dependency: libnfsidmap for package: 1:nfs-utils-1.3.0-0.48.el7.x86_64
--> Processing Dependency: quota for package: 1:nfs-utils-1.3.0-0.48.el7.x86_64
--> Processing Dependency: libevent-2.0.so.5()(64bit) for package: 1:nfs-utils-1.3.0-0.48.el7.x86_64
--> Processing Dependency: libnfsidmap.so.0()(64bit) for package: 1:nfs-utils-1.3.0-0.48.el7.x86_64
--> Processing Dependency: libtirpc.so.1()(64bit) for package: 1:nfs-utils-1.3.0-0.48.el7.x86_64
---> Package rpcbind.x86_64 0:0.2.0-42.el7 will be installed
--> Running transaction check
---> Package gssproxy.x86_64 0:0.7.0-4.el7 will be installed
--> Processing Dependency: libini_config.so.3(INI_CONFIG_1.1.0)(64bit) for package: gssproxy-0.7.0-4.el7.x86_64
--> Processing Dependency: libini_config.so.3(INI_CONFIG_1.2.0)(64bit) for package: gssproxy-0.7.0-4.el7.x86_64
--> Processing Dependency: libref_array.so.1(REF_ARRAY_0.1.1)(64bit) for package: gssproxy-0.7.0-4.el7.x86_64
--> Processing Dependency: libverto-module-base for package: gssproxy-0.7.0-4.el7.x86_64
--> Processing Dependency: libbasicobjects.so.0()(64bit) for package: gssproxy-0.7.0-4.el7.x86_64
--> Processing Dependency: libcollection.so.2()(64bit) for package: gssproxy-0.7.0-4.el7.x86_64
--> Processing Dependency: libini_config.so.3()(64bit) for package: gssproxy-0.7.0-4.el7.x86_64
--> Processing Dependency: libref_array.so.1()(64bit) for package: gssproxy-0.7.0-4.el7.x86_64
---> Package libevent.x86_64 0:2.0.21-4.el7 will be installed
---> Package libnfsidmap.x86_64 0:0.25-17.el7 will be installed
---> Package libtirpc.x86_64 0:0.2.4-0.10.el7 will be installed
---> Package quota.x86_64 1:4.01-14.el7 will be installed
--> Processing Dependency: quota-nls = 1:4.01-14.el7 for package: 1:quota-4.01-14.el7.x86_64
--> Processing Dependency: tcp_wrappers for package: 1:quota-4.01-14.el7.x86_64
--> Running transaction check
---> Package libbasicobjects.x86_64 0:0.1.1-27.el7 will be installed
---> Package libcollection.x86_64 0:0.6.2-27.el7 will be installed
---> Package libini_config.x86_64 0:1.3.0-27.el7 will be installed
--> Processing Dependency: libpath_utils.so.1(PATH_UTILS_0.2.1)(64bit) for package: libini_config-1.3.0-27.el7.x86_64
--> Processing Dependency: libpath_utils.so.1()(64bit) for package: libini_config-1.3.0-27.el7.x86_64
---> Package libref_array.x86_64 0:0.1.5-27.el7 will be installed
---> Package libverto-tevent.x86_64 0:0.2.5-4.el7 will be installed
---> Package quota-nls.noarch 1:4.01-14.el7 will be installed
---> Package tcp_wrappers.x86_64 0:7.6-77.el7 will be installed
--> Running transaction check
---> Package libpath_utils.x86_64 0:0.2.1-27.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=================================================================================================================
 Package                        Arch                  Version                           Repository          Size
=================================================================================================================
Installing:
 nfs-utils                      x86_64                1:1.3.0-0.48.el7                  dvd                398 k
 rpcbind                        x86_64                0.2.0-42.el7                      dvd                 59 k
Installing for dependencies:
 gssproxy                       x86_64                0.7.0-4.el7                       dvd                105 k
 libbasicobjects                x86_64                0.1.1-27.el7                      dvd                 25 k
 libcollection                  x86_64                0.6.2-27.el7                      dvd                 41 k
 libevent                       x86_64                2.0.21-4.el7                      dvd                214 k
 libini_config                  x86_64                1.3.0-27.el7                      dvd                 63 k
 libnfsidmap                    x86_64                0.25-17.el7                       dvd                 49 k
 libpath_utils                  x86_64                0.2.1-27.el7                      dvd                 27 k
 libref_array                   x86_64                0.1.5-27.el7                      dvd                 26 k
 libtirpc                       x86_64                0.2.4-0.10.el7                    dvd                 89 k
 libverto-tevent                x86_64                0.2.5-4.el7                       dvd                9.0 k
 quota                          x86_64                1:4.01-14.el7                     dvd                179 k
 quota-nls                      noarch                1:4.01-14.el7                     dvd                 91 k
 tcp_wrappers                   x86_64                7.6-77.el7                        dvd                 79 k

Transaction Summary
=================================================================================================================
Install  2 Packages (+13 Dependent packages)

Total download size: 1.4 M
Installed size: 4.1 M
Downloading packages:
-----------------------------------------------------------------------------------------------------------------
Total                                                                            2.5 MB/s | 1.4 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : libref_array-0.1.5-27.el7.x86_64                                                             1/15 
  Installing : libcollection-0.6.2-27.el7.x86_64                                                            2/15 
  Installing : libbasicobjects-0.1.1-27.el7.x86_64                                                          3/15 
  Installing : libtirpc-0.2.4-0.10.el7.x86_64                                                               4/15 
  Installing : rpcbind-0.2.0-42.el7.x86_64                                                                  5/15 
  Installing : 1:quota-nls-4.01-14.el7.noarch                                                               6/15 
  Installing : libpath_utils-0.2.1-27.el7.x86_64                                                            7/15 
  Installing : libini_config-1.3.0-27.el7.x86_64                                                            8/15 
  Installing : tcp_wrappers-7.6-77.el7.x86_64                                                               9/15 
  Installing : 1:quota-4.01-14.el7.x86_64                                                                  10/15 
  Installing : libevent-2.0.21-4.el7.x86_64                                                                11/15 
  Installing : libnfsidmap-0.25-17.el7.x86_64                                                              12/15 
  Installing : libverto-tevent-0.2.5-4.el7.x86_64                                                          13/15 
  Installing : gssproxy-0.7.0-4.el7.x86_64                                                                 14/15 
  Installing : 1:nfs-utils-1.3.0-0.48.el7.x86_64                                                           15/15 
  Verifying  : libverto-tevent-0.2.5-4.el7.x86_64                                                           1/15 
  Verifying  : rpcbind-0.2.0-42.el7.x86_64                                                                  2/15 
  Verifying  : 1:quota-4.01-14.el7.x86_64                                                                   3/15 
  Verifying  : libtirpc-0.2.4-0.10.el7.x86_64                                                               4/15 
  Verifying  : libnfsidmap-0.25-17.el7.x86_64                                                               5/15 
  Verifying  : libini_config-1.3.0-27.el7.x86_64                                                            6/15 
  Verifying  : libbasicobjects-0.1.1-27.el7.x86_64                                                          7/15 
  Verifying  : libevent-2.0.21-4.el7.x86_64                                                                 8/15 
  Verifying  : tcp_wrappers-7.6-77.el7.x86_64                                                               9/15 
  Verifying  : libpath_utils-0.2.1-27.el7.x86_64                                                           10/15 
  Verifying  : 1:quota-nls-4.01-14.el7.noarch                                                              11/15 
  Verifying  : gssproxy-0.7.0-4.el7.x86_64                                                                 12/15 
  Verifying  : libcollection-0.6.2-27.el7.x86_64                                                           13/15 
  Verifying  : libref_array-0.1.5-27.el7.x86_64                                                            14/15 
  Verifying  : 1:nfs-utils-1.3.0-0.48.el7.x86_64                                                           15/15 

Installed:
  nfs-utils.x86_64 1:1.3.0-0.48.el7                         rpcbind.x86_64 0:0.2.0-42.el7                        

Dependency Installed:
  gssproxy.x86_64 0:0.7.0-4.el7        libbasicobjects.x86_64 0:0.1.1-27.el7 libcollection.x86_64 0:0.6.2-27.el7
  libevent.x86_64 0:2.0.21-4.el7       libini_config.x86_64 0:1.3.0-27.el7   libnfsidmap.x86_64 0:0.25-17.el7   
  libpath_utils.x86_64 0:0.2.1-27.el7  libref_array.x86_64 0:0.1.5-27.el7    libtirpc.x86_64 0:0.2.4-0.10.el7   
  libverto-tevent.x86_64 0:0.2.5-4.el7 quota.x86_64 1:4.01-14.el7            quota-nls.noarch 1:4.01-14.el7     
  tcp_wrappers.x86_64 0:7.6-77.el7    

Complete!

2 啟動 NFS-Server

[root@qdlinux ~]# systemctl start rpcbind
[root@qdlinux ~]# systemctl enable rpcbind
[root@qdlinux ~]# systemctl start nfs-server.service 
[root@qdlinux ~]# systemctl enable nfs-server.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

啟動和啟用NFS服務程式,由於在使用NFS服務進行文件共用之前,需要使用RPC(Remote Procedure Call,遠程過程調用),服務將NFS伺服器的IP地址和埠號等信息發送給客戶端.因此,在啟動NFS服務之前,還需要順帶重啟並啟動rpcbind服務,這裡將兩個服務一併加入到開機啟動項中.

3 可以使用 rpcbind -p 查看一下註冊的信息.

[root@qdlinux ~]# rpcinfo -p
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  43946  status
    100024    1   tcp  38188  status
    100005    1   udp  20048  mountd
    100005    1   tcp  20048  mountd
    100005    2   udp  20048  mountd
    100005    2   tcp  20048  mountd
    100005    3   udp  20048  mountd
    100005    3   tcp  20048  mountd
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    3   udp   2049  nfs_acl
    100021    1   udp  35724  nlockmgr
    100021    3   udp  35724  nlockmgr
    100021    4   udp  35724  nlockmgr
    100021    1   tcp  44097  nlockmgr
    100021    3   tcp  44097  nlockmgr
    100021    4   tcp  44097  nlockmgr

4 查看系統相關進程信息

[root@qdlinux ~]# ps -ef | egrep "rpc|nfs"
rpc        1959      1  0 16:37 ?        00:00:00 /sbin/rpcbind -w
rpcuser    2039      1  0 16:38 ?        00:00:00 /usr/sbin/rpc.statd
root       2047      2  0 16:38 ?        00:00:00 [rpciod]
root       2057      1  0 16:38 ?        00:00:00 /usr/sbin/rpc.mountd
root       2058      1  0 16:38 ?        00:00:00 /usr/sbin/rpc.idmapd
root       2068      2  0 16:38 ?        00:00:00 [nfsd4_callbacks]
root       2074      2  0 16:38 ?        00:00:00 [nfsd]
root       2075      2  0 16:38 ?        00:00:00 [nfsd]
root       2076      2  0 16:38 ?        00:00:00 [nfsd]
root       2077      2  0 16:38 ?        00:00:00 [nfsd]
root       2078      2  0 16:38 ?        00:00:00 [nfsd]
root       2079      2  0 16:38 ?        00:00:00 [nfsd]
root       2080      2  0 16:38 ?        00:00:00 [nfsd]
root       2081      2  0 16:38 ?        00:00:00 [nfsd]
root       2135   1633  0 16:52 pts/0    00:00:00 grep -E --color=auto rpc|nfs

5 NFS服務端配置共用目錄

參數 作用
ro 只讀
rw 讀寫
root_squash 當NFS客戶端以root管理員訪問時,映射為NFS伺服器的匿名用戶
no_root_squash 當NFS客戶端以root管理員訪問時,映射為NFS伺服器的root管理員
all_squash 無論NFS客戶端使用什麼賬戶訪問,均映射為NFS伺服器的匿名用戶
sync 同時將數據寫入到記憶體與硬碟中,保證不丟失數據
async 優先將數據保存到記憶體,然後再寫入到硬碟,這樣效率更高,但可能會丟失數據
[root@qdlinux ~]# vim /etc/exports
/nfsfile 192.168.56.*(rw,sync,all_squash)

//創建需要共用的目錄
[root@qdlinux ~]# mkdir /nfsfile

[root@qdlinux ~]# systemctl restart nfs-server.service 
[root@qdlinux ~]# cat /var/lib/nfs/etab 
/nfsfile    192.168.56.*(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,secure,root_squash,all_squash)

//查看一下id=65534是哪一個用戶
[root@qdlinux ~]# grep "65534" /etc/passwd
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

//修改一下`/nfsfile`的許可權,這裡也可以把目錄所屬主和所屬組改為nfsnobody或者直接給成777許可權
[root@qdlinux ~]# chmod -Rf nfsnobody:nfsnobody /nfsfile/

//在目錄下寫入一個文件用於測試
[root@qdlinux ~]# echo "welecome to qdlinux" > /nfsfile/readme
[root@qdlinux ~]# ll  /nfsfile/
total 4
-rw-r--rwx 1 root root 20 Aug 16 17:30 readme
[root@qdlinux ~]# 

NFS客戶端的配置步驟十分簡單,先使用 showmount 命令查詢NFS伺服器的遠程共用信息,其輸出格式為"共用的目錄名稱 允許使用客戶端地址".

參數 作用
-e 顯示NFS伺服器的共用李彪
-a 顯示本機掛載的文件資源的情況
-v 顯示版本號
[root@qdlinux ~]# showmount -e 192.168.56.15
Export list for 192.168.56.15:
/nfsfile 192.168.56.*

6 客戶端測試

[root@qdlinux ~]# yum install nfs-utils rpcbind -y
[root@qdlinux ~]# systemctl start rpcbind
[root@qdlinux ~]# systemctl is-enabled rpcbind
enabled
[root@qdlinux ~]# systemctl is-active rpcbind
active

//查詢一下服務是否運行
[root@qdlinux ~]# systemctl status rpcbind
● rpcbind.service - RPC bind service
   Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-08-16 14:05:32 CST; 3h 48min ago
 Main PID: 568 (rpcbind)
    Tasks: 1
   CGroup: /system.slice/rpcbind.service
           └─568 /sbin/rpcbind -w

Aug 16 14:05:27 qdlinux.com systemd[1]: Starting RPC bind service...
Aug 16 14:05:32 qdlinux.com systemd[1]: Started RPC bind service.

//在客戶端使用`showmount -e`命令查詢一下
[root@qdlinux ~]# showmount -e 192.168.56.15 NFS伺服器共用列表
Export list for 192.168.56.15:
/nfsfile 192.168.56.*

7 NFS客戶端掛載

在NFS客戶端創建一個掛在目錄,使用mount命令加-t參數,指定要掛在的文件系統的類型,併在命令後面寫上伺服器的IP地址、伺服器上的共用目錄以及要掛載到本地系統(客戶端)的目錄.

[root@qdlinux /]# mkdir /data
[root@qdlinux /]# mount -t nfs 192.168.56.15:/nfsfile /data

//現在已經掛載成功了,可以看到在NFS伺服器上創建的文件了.

如果希望NFS文件共用服務能一直有效,需要將其寫入到 fstab 文件中.

[root@qdlinux data]# vim /etc/fstab
192.168.56.15:/nfsfile                    /data                   nfs     defaults        0 0
1 如果NFS伺服器宕機,強制卸載umount -lf /data
2 [root@qdlinux data]# umount /data
  umount.nfs4: /data: device is busy
  出現這種情況時,退出掛載目錄然後在卸載

8 autofs自動掛載服務

autofs服務程式是一種Linux系統守護進程,當檢測到用戶試圖去訪問一個尚未掛載的文件系統時,將自動掛載該文件系統,我們將掛載信息寫入/etc/fstab文件後,系統在每次開機時都自動將其掛載,而autofs自動掛載服務是用戶需要使用該文件系統時才會去動態掛載,從而節約了網路資源和伺服器的硬體資源.

[root@qdlinux /]# yum install autofs -y

直接掛載方式,本地的掛載點是絕對路徑

[root@qdlinux /]# vim /etc/auto.master.d/nfs.autofs
/-      /etc/auto.nfs_direct
[root@qdlinux /]# vim /etc/auto.nfs_direct 
/data   -rw,sync,soft   192.168.56.15:/nfsfile

//mount查看一下
/etc/auto.nfs_direct on /data type autofs (rw,relatime,fd=18,pgrp=6217,timeout=300,minproto=5,maxproto=5,direct,pipe_ino=79495)

間接掛載方式

[root@qdlinux ~]# mkdir -p /public/share
[root@qdlinux ~]# chown -Rf nfsnobody:nfsnobody /public/share
[root@qdlinux ~]# vim /etc/exports
/public/share 192.168.56.*(rw,sync,all_squash)
//重新啟動nfs-server

[root@qdlinux ~]# showmount -e 192.168.56.15
Export list for 192.168.56.15:
/public/share 192.168.56.*
/nfsfile      192.168.56.*

[root@qdlinux /]# mkdir /test
[root@qdlinux /]# vim /etc/auto.master.d/share.autofs
/test  /etc/share.nfs_share
[root@qdlinux /]# vim /etc/share.nfs_share
*       -rw,sync,soft   192.168.56.15:/public/&
//重新啟動autofs服務

現在可以訪問了,客戶端當你切換到/test/share時可以創建文件服務端實時同步.


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、Nginx簡介 Nginx是一款開源代碼的高性能HTTP伺服器和反向代理伺服器,同時支持IMAP/POP3/SMTP代理服務 1.Nginx工作原理 Nginx由內核和模塊組成,完成工作是通過查找配置文件將客戶端請求映射到一個location block(location是用於URL匹配的命令) ...
  • 將PDF轉換成Word的操作,大家在日常學習工作中都會接觸到;一般這個時候,我們第一反應就是度娘好幾款轉換軟體試一試。用過一輪後,你會發現效果好的轉換器鳳毛麟角,明明就幾頁的文檔,卻出現大量的空格、亂碼、回車符,不得不進行繁瑣的二次編輯。想想白花了那麼多時間下載一堆軟體,還沒達到轉換的目的,內心著實 ...
  • 請看題! 題目1: Int64 a = 300000000; Int64 b = 248201000; Int64 c = a - b; 請問 c =? 題目2: int a = 300000000; int b = 248201000; int c = a - b; 請問 c =? 請各位大牛們踴 ...
  • 原文轉載http://man.linuxde.net/ftp ftp命令用來設置文件系統相關功能。ftp伺服器在網上較為常見,Linux ftp命令的功能是用命令的方式來控制在本地機和遠程機之間傳送文件,這裡詳細介紹Linux ftp命令的一些經常使用的命令,相信掌握了這些使用Linux進行ftp操... ...
  • COPY 命令: // 描述: 將一個或多個文件從一個位置複製到另一個位置。 ### 註意:如果想複製文件夾,請使用 XCOPY 。 // 語法: copy [/a] [/b] [/d] [/v] [/n] [/z] [/y | /-y] <source> [/a] [/b] [<source> [ ...
  • 返回 "LVS系列文章:http://www.cnblogs.com/f ck need u/p/7576137.html"   加權調度演算法是一種很常見的調度演算法。如果只有兩個後端,調度的順序很容易,但是如果後端多於2個,可能就不像想象中那樣的順序進行調度。 所以,本文揭秘加權調度演算法到 ...
  • 今天是開通博客第一天, 第一次寫博客,也不知道寫什麼, 以後寫點技術文,把我的經驗分享給大家, 不對的地方請大家指正,一起進步。我要把我每遇到的難題以及學到的知識和技術為大家踩坑, 做研究。同時有時候寫一點自己的感想,對一些事物的看法等。自己文筆不好,見諒了。謝謝大家。 ...
  • 本文將介紹如何在Linux上部署Django + Mysql + Apache環境。我們知道,Django內置的http伺服器只能工作在單線程下,做開發和調試時候是可以的,但是生產環境通常都會有多用戶併發,而且django的simple HTTP server處理大量靜態文件的性能太差,所以要用ap ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...