HBase 參考文檔翻譯之 Getting Started

来源:http://www.cnblogs.com/LeslieXia/archive/2016/08/06/5743436.html
-Advertisement-
Play Games

本篇是對HBase官方參考文檔的大體翻譯,介於本人英文水平實在有限,難免有紕漏之處。本篇不只是對官方文檔的翻譯,還加入了一些本人對HBase的理解。在翻譯過程中,一些沒有營養的廢話,我就忽略了沒有翻譯。本篇按照 2016年 5、6 月 最新版的 http://hbase.apache.org/boo ...


  本篇是對HBase官方參考文檔的大體翻譯,介於本人英文水平實在有限,難免有紕漏之處。本篇不只是對官方文檔的翻譯,還加入了一些本人對HBase的理解。在翻譯過程中,一些沒有營養的廢話,我就忽略了沒有翻譯。本篇按照 2016年 5、6 月 最新版的 http://hbase.apache.org/book.html 進行翻譯,此時:

  

  而 stable 文件夾中的內容:

---------------------------------------------------------------------------------------------------------------------------------------------

Getting Started(準備開始)
1、簡介
  文檔將帶你搭建和運行一個單節點、單實例的HBase,隨後是一個偽分散式的單機實例,最後是一個完全分散式的集群。
2、快速開始--單機模式HBase
  本指南描述的是在本地文件系統中搭建單機模式下的HBase。對於一個HBase生產環境下的實例來說,這是不恰當的配置,但是,在本地測試情況下運行是允許的。本章節將要像你展示使用HBase shell 命令創建一個表,插入數據,對錶進行put和scan操作,enable 或者 disable 表,並且運行和停止HBase。除去下載HBase,整個過程應該不超過十分鐘。
  在本地文件系統下使用HBase不保證耐久性。如果文件未正常關閉,本地HDFS文件系統實現將丟失編輯的內容。當你試用新軟體時這是很有可能發生的,經常啟動和停止守護進程通常是並不幹凈的。你需要確保在HDFS運行HBase所有的寫入是已經保存了的。針對本地文件系統的運行能夠讓你快速熟悉怎樣生產系統任務,獲取第一階段的評價。關於本地文件系統上的問題更詳盡的描述,請訪問 HBASE-3696 。
  在HBase 0.94.X 版本之前,HBase期望的IP地址是 127.0.0.1。Ubuntu及一些其他分支預設是 127.0.0.1,這將給你帶來麻煩。
  *** Example 1. 對於Ubuntu,HBase 0.94.x及早期版本正確的配置如下。如果你陷入困境,請使用如下配置。

127.0.0.1 localhost
127.0.0.1 ubuntu.ubuntu-domain ubuntu

2.1、JDK版本要求
  *** HBase 0.98.5 及 更新版本,必須在集群的每一個節點設置JAVA_HOME。hbase-env.sh提供了一個便利的機制。

2.2、開始使用HBase
  步驟:下載,配置,啟動。
  (1)、從 Apache Download Mirrors 列表中選擇一個下載站。它為你提供HBase發佈版的鏡像。點擊名為“stable”的文件夾,然後下載以“.tar.gz”結尾的二進位文件到本地文件系統。在HBase 1.X版本之前,一定要選擇你可能用到的Hadoop的更遲版本對應的HBase版本(大部分情況下,你應該選擇hadoop 2.X版本的,類似hbase-0.98.13-hadoop2-bin.tar.gz)。暫時不下載以 “src.tar.gz”結尾的文件。
  (2)、解壓下載文件,並打開目錄。

$ tar xzvf hbase-<?eval ${project.version}?>-bin.tar.gz 
$ cd hbase-<?eval ${project.version}?>/

  (3)、對於HBase 0.98.5 及之後版本,在啟動HBase前,你需要設置JAVA_HOME環境變數。在HBase 0.98.5之前,如果沒有設置環境變數,HBase嘗試檢測Java的位置。你可以通過操作系統的一般機制來設置環境變數,但HBase提供一個中樞機制 conf/hbase-env.sh 。編輯該文件,取消 JAVA_HOME 前的註釋符,並設置你本機適當的位置。
  *** 這個指令假設集群的每個節點都採用同樣的配置。如果不一致,你需要單獨設置每個節點。
  (4)、編輯 conf/hbase-site.xml 這個HBase主配置文件。這時候,你僅需要指定本地文件系統中HBase和Zookeeper寫數據的目錄即可。預設是在/tmp目錄下新建一個目錄。許多機器在重啟後是會刪除/tmp目錄內容的,所以你需要存儲數據到別處。下麵的配置將存儲HBase的數據在testuser用戶主目錄下的hbase目錄。在標簽<configuration>下粘貼<property>標簽,在一個新安裝的HBase中這應該是個空的。你不要創建HBase數據目錄。HBase會為你這麼做。如果你創建了目錄,HBase會遷移,而這不是你想要的。
  *** Example 2. HBase的單例模式的 hbase-site.xml 配置:

<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>file:///home/testuser/hbase</value>
    </property>
    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/home/testuser/zookeeper</value>
    </property>
</configuration>

  (5)、bin/start-hbase.sh 此腳本為啟動HBase提供了方便的途徑。執行命令,在標準輸出的日誌里可以看到HBase啟動成功的消息。你可以使用 jps 命令來確認你有一個正在運行的進行 HMaster。在 HBase 的單例模式中,所有的服務都運行在同一JVM中,如 HMaster,單例的 HRegionServer 和 ZooKeeper 的守護進程。
  步驟:使用HBase
  1)、連接HBase。
在HBase安裝目錄下bin/ 目錄下使用 hbase shell 命令連接正在運行的HBase實例。在下麵這個例子中,當你啟動HBase Shell 並忽略列印的一些用法和版本信息後,HBase Shell 是以字元‘>’結尾。

$ ./bin/hbase shell
hbase(main):001:0>

  2)、預覽 HBase Shell 的幫助文本。
  輸入 help 並點擊回車,可以看到一些基本的HBase Shell 用法信息,以及一些示例命令。
  3)、創建一個表。
  使用 create 命令創建一個表,你必須執行一個表名和列族名。

hbase(main):001:0> create 'test', 'cf' 
0 row(s) in 0.4170 seconds 
=> Hbase::Table - test

  4)、關於你的表的列表信息。
  使用 list 命令:

hbase(main):002:0> list 'test'
TABLE
test
1 row(s) in 0.0180 seconds
=> ["test"]

  5)、插入數據到表中。
  使用 put 命令插入數據。

hbase(main):003:0> put 'test', 'row1', 'cf:a', 'value1' 
0 row(s) in 0.0850 seconds 
hbase(main):004:0> put 'test', 'row2', 'cf:b', 'value2' 
0 row(s) in 0.0110 seconds 
hbase(main):005:0> put 'test', 'row3', 'cf:c', 'value3' 
0 row(s) in 0.0100 seconds

        在這裡,我們往 test 表中依次插入了三條數據。首先插入了一條rowkey為row1、列為 cf:a、值為 value1 的數據。HBase中的列是包含列族首碼的,在這個例子中,冒號前的為列族 cf ,冒號後的為列限定符 a 。

  6)、掃描表的全部數據。

  從HBase獲取數據的途徑之一就是 scan 。使用 scan 命令掃描表數據。你可以對掃描做限制,不過現在,獲取全部的數據。

hbase(main):006:0> scan 'test' 
ROW       COLUMN+CELL 
row1     column=cf:a, timestamp=1421762485768, value=value1 
row2     column=cf:b, timestamp=1421762491785, value=value2 
row3     column=cf:c, timestamp=1421762496210, value=value3 
3 row(s) in 0.0230 seconds

  7)、獲取一條數據。

  使用 get 命令一次獲取一條數據。

hbase(main):007:0> get 'test', 'row1'
COLUMN                    CELL
cf:a                      timestamp=1421762485768, value=value1
1 row(s) in 0.0350 seconds  

  8)、禁用一個表。

  如果你想刪除一個表或者改變表的設置,以及一些其他的場景,首先你需要使用 disable 命令禁用表。你可以使用 enable 命令“反禁用”即啟用表。

hbase(main):008:0> disable 'test' 
0 row(s) in 1.1820 seconds 
hbase(main):009:0> enable 'test' 
0 row(s) in 0.1770 seconds

  9)、刪除表。

  使用 drop 命令刪除一個表。 

hbase(main):011:0> drop 'test' 
0 row(s) in 0.1370 seconds

  10)、退出。

  使用 quit 命令退出命令行並從集群斷開連接。HBase 仍然在後臺運行。

  步驟:停止HBase。

  1)、bin/start-hbase.sh 這個腳本提供了便利的啟動所有 HBase 服務,同樣地,bin/stop-hbase.sh 腳本用來停止所有HBase服務。

$ ./bin/stop-hbase.sh
stopping hbase....................

  2)、在使用這個命令後,它可能需要過幾分鐘才能停掉服務進程。使用 jps 命令來確認 HMaster 和 HRegionServer 進程是否關閉。

2.3 中級 ----- 本地偽分散式安裝

  在你學習過前面內容後,你要重新配置 HBase 來運行偽分散式模式。偽分散式模式的意思是 HBase 仍然在一臺機器上完整的運行,不過,每個HBase 服務(HMaster,HRegionServer,Zookeeper)是在單獨的一個進程中運行。預設的,如果你像上面描述的一樣沒有配置 hbase.rootdir ,你的數據仍然存儲在 /tmp 目錄下。在本文的稍後部分中,假設你有可用的HDFS,我們存儲數據在HDFS。你可以略過HDFS配置繼續存儲你的數據在本地文件系統。

  (1)、如果正在運行,請先停掉HBase。

  如果你完成了單例模式的HBase並且正在運行,請停掉它。這個步驟將完全的創建一個存儲HBase數據的新目錄,所以之前你創建的資料庫將丟失。

  (2)、配置HBase。

  編輯 hbase-site.xml 進行配置。首先,添加 property,使 HBase 以分散式模式運行,並且一個 JVM 實例化一個守護進程。

<property> 
    <name>hbase.cluster.distributed</name> 
    <value>true</value> 
</property>

  接下來,把 hbase.rootdir 的配置從本地文件系統改為你的HDFS實例的地址,並使用 hdfs:// 開頭的 URL 語法。下麵這個例子中,HDFS是運行在本地埠 8020。

<property>
    <name>hbase.rootdir</name>
    <value>hdfs://localhost:8020/hbase</value>
</property>

  你不需要在HDFS中創建 /hbase 目錄,HBase會自動創建。不過,如果你創建了 /hbase 目錄,HBase會嘗試移動,而這不是你想要的。

  (3)、啟動HBase。

  使用 bin/start-hbase.sh 命令啟動HBase。如果你配置得當,使用 jps 命令可以查看到 HMaster 和 HRegionServer 進程正在運行。

  (4)、檢查 HDFS 中 HBase 目錄。

  如果一切正常,HBase 會在 HDFS 創建目錄。在配置文件中,是存儲在HDFS的 /hbase 目錄。你可以使用 hadoop fs 命令查看這個目錄。

$ hadoop fs -ls /hbase
Found 7 items
drwxr-xr-x   - hbase users          0 2014-06-25 18:58 /hbase/.tmp
drwxr-xr-x   - hbase users          0 2014-06-25 21:49 /hbase/WALs
drwxr-xr-x   - hbase users          0 2014-06-25 18:48 /hbase/corrupt
drwxr-xr-x   - hbase users          0 2014-06-25 18:58 /hbase/data
-rw-r--r--   3 hbase users         42 2014-06-25 18:41 /hbase/hbase.id
-rw-r--r--   3 hbase users          7 2014-06-25 18:41 /hbase/hbase.version
drwxr-xr-x   - hbase users          0 2014-06-25 21:49 /hbase/oldWALs

  (5)、創建一個表,並插入數據。

  你可以使用 HBase Shell 創建一個表,插入數據,並 scanget 數據,使用方法和上面一樣。

  (6)、啟動和停止一個 HMaster 備份伺服器。

  對於生產環境而言在同一個機器上運行多個 HMaster 實例是沒有意義的,同樣的,在生產環境上運行偽分散式模式也是沒有意義的。

  HMaster 伺服器用來管理HBase集群。你可以弄10個 HMaster,其中9個做備份 HMaster 伺服器。使用 local-master-backup.sh 啟動備份HMaster 。對於每個你想要啟動的 master,可以添加一個參數代表這個 master 的埠。每個HMaster使用三個埠,預設是16010,16020,16030 。埠偏移量添加到這些埠,所以偏移量為2 ,備份HMaster會使用16012/16022/16032 的埠。以下命令使用 16012/16022/16032, 16013/16023/16033, 和16015/16025/16035 作為埠號。

$ ./bin/local-master-backup.sh 2 3 5

  從整個集群中移除某一個備份 master ,你需要找到進程ID(PID)。PID存儲在名稱類似於 /tmp/hbase-USER-X-master.pid 的文件中。你可以使用 kill -9 命令來殺死這個PID。下麵的命令將從正在運行的集群中移除一個埠偏移量為1的 master。

$ cat /tmp/hbase-testuser-1-master.pid |xargs kill -9

  (7)、啟動和停止附加的 RegionServer 。

  HRegionServer 在 HMaster 的指導下管理 storefile 中的數據。一般的,一個 HRegionServer 在集群的每個節點上運行。偽分散式模式下在一個系統中運行多個HRegionServer 對於測試是有用的。local-regionservers.sh 命令允許你運行多個 RegionServer。它的工作原理類似於 local-master-backup.sh 命令,你提供的參數代表實例埠偏移量。每個 RegionServer 需要兩個埠,預設的是16020和16030 。無論怎樣,附件的 RegionServer 的基本埠不能使用預設的,因為預設埠被HMaster 埠占用,這也是 HBase 1.0.0 版本 RegionServer 的一個使用。基本埠用16200和16300替代。在同一臺機器上,你可以運行99個附加的RegionServer,不是HMaster或者備份HMaster。下麵這個命令啟動4個附件的 RegionServer ,運行在從 16202/16302 開始連續的埠(16200/16300 埠每次加2)。

$ .bin/local-regionservers.sh start 2 3 4 5

  使用 local-regionservers.sh 命令加上 stop 參數及伺服器埠偏移量手動地停止一個RegionServer 

$ .bin/local-regionservers.sh stop 3

2.4 高級 -----  完全分散式

  實際上,你需要一個完全分散式配置並且使用真實情景去完全的測試HBase。在一個分散式配置中,一個集群包含多個節點,每個節點運行一個或者多個 HBase 守護進程。他們包含主 HMaster 和備份 HMaster 實例,多個 Zookeeper 節點,和多個 RegionServer 節點。

  添加大於兩個的節點到你的集群,實例如下:

  表1. 分散式集群樣例模板

  這個示例採取每個節點是在同一網段的虛擬機。分散式模式的搭建是根據之前的偽分散式的搭建,假設之前的配置步驟是在現在的 node-a 節點。停止掉 HBase 後再繼續。

  !請確保每個節點的防火牆關閉。

  步驟:配置SSH互信

  (略過,請自行 Google 或者某度!)

  步驟:準備節點 node-a

  node-a 節點用來運行主 master 和 Zookeeper 進程,不過沒有 RegeionServer 。

  (1)、編輯 cong/regionservers ,並且移除 lcoalhost 行。然後添加 node-b 和 node-c 的主機名或者IP地址。

  如果你想要在節點 node-a 節點運行 RegionServer ,你應該確保各主機間能夠相互通信。這使你可以配置分發到任何主機衝突的節點。保存文件。

  (2)、配置 HBase 使 node-b 節點作為備份 master。

  創建一個新的文件 conf/backup-masters ,並添加新的一行主機名--node-b。在本例中,主機名是 node-b.example.com。

  (3)、配置 Zookeeper。

  實際上,你需要小心的考慮 Zookeeper 的配置。關於 Zookeeper的更多配置,下麵有專門解釋。

  在節點 node-a ,編輯 conf/hbase-site.xml ,添加以下配置。

<property>
    <name>hbase.zookeeper.quorum</name>
    <value>node-a.example.com,node-b.example.com,node-c.example.com</value>
</property>
<property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/usr/local/zookeeper</value>
</property>

  步驟:準備 node-c 和 node-b

  node-c 上將要運行備份 master 和 一個 Zookeeper 實例。

  (1)、下載和解壓 HBase

  下載和解壓 HBase 到 node-b ,就像之前單機模式和為分散式模式一樣。

  (2)、從 node-a 節點複製配置文件到 node-b 和 node-c。

  集群上每個節點都應該保持同樣的配置。複製目錄 conf/ 內容到 node-b 和 node-c 目錄下。

  步驟:啟動和測試你的集群

  (1)、在各節點上確認HBase沒有運行。

  如果之前測試的時候你忘記停掉 HBase,你將要報錯的。使用 jps 命令檢驗每台機器上的 HBase 是否運行。看下是否存在進程 HMaster、HRegionServer、HQuorumPeer,如果存在,kill 掉。

  (2)、啟動集群。

  在節點 node-a 上,執行 start-hbase.sh 命令。你將看到和下麵相似的輸出。

$ bin/start-hbase.sh
node-c.example.com: starting zookeeper, logging to /home/hbuser/hbase-0.98.3-hadoop2/bin/../logs/hbase-h         buser-zookeeper-node-c.example.com.out
node-a.example.com: starting zookeeper, logging to /home/hbuser/hbase-0.98.3-hadoop2/bin/../logs/hbase-h        buser-zookeeper-node-a.example.com.out
node-b.example.com: starting zookeeper, logging to /home/hbuser/hbase-0.98.3-hadoop2/bin/../logs/hbase-h        buser-zookeeper-node-b.example.com.out
starting master, logging to /home/hbuser/hbase-0.98.3-hadoop2/bin/../logs/hbase-hbuser-master-node-a.exa            mple.com.out
node-c.example.com: starting regionserver, logging to /home/hbuser/hbase-0.98.3-hadoop2/bin/../logs/hbase-        hbuser-regionserver-node-c.example.com.out
node-b.example.com: starting regionserver, logging to /home/hbuser/hbase-0.98.3-hadoop2/bin/../logs/hbase-        hbuser-regionserver-node-b.example.com.out
node-b.example.com: starting master, logging to /home/hbuser/hbase-0.98.3-hadoop2/bin/../logs/hbase-hbus        er-master-nodeb.example.com.out

  首先啟動 Zookeeper ,然後是 master ,然後是 RegionServer, 最後是 備份 master。

  (3)、檢驗進程是否運行。

  在每台節點上運行 jps 命令,檢驗每個機器上的相應進程是否運行。

  Example 3. node-a jps Output

$ jps
20355 Jps
20071 HQuorumPeer
20137 HMaster

  Example 4. node-b jps Output

$ jps
15930 HRegionServer
16194 Jps
15838 HQuorumPeer
16010 HMaster

  Example 5. node-a jps Output

$ jps
13901 Jps
13639 HQuorumPeer
13737 HRegionServer

  !Zookeeper 進程名

  HQuorumPeer 進程是用來管理和啟動HBase的 Zookeeper 實例。如果你按照這種方式使用 Zookeeper,那麼他將被限制在集群每個節點上運行一個實例,這隻是適用於測試。如果 Zookeeper 是運行在 HBase 外,進程名即是 QuorumPeer 。

  (4)、瀏覽器 WEB UI

  在 HBase 0.98.X 更高版本,HBase Web 界面的 HTTP 埠從 Master 的 60010 和 每個 RegionServer 的 60030 改變為 Master 的 16010 和 RegionServer 的16030 。

  如果一切準備妥當,你應該能夠使用 web 瀏覽器連接到 Master http://node-a.example.com:16010/ 和第二Master 的 http://node-b.example.com:16010/。如果你可以通過 localhost 連接,但不能從其他主機連接,請檢查你的防火牆配置。

  (5)、測試節點或者伺服器消失會發生什麼。

  如上配置的三個節點的集群,並不是有彈性的。儘管如此,你仍然可以測試當主 Master 或者 RegionServer消失發生什麼,殺死進程並查看日誌。

3、下一站

  下一章節,將要講述關於 HBase 相關的信息,關於不同 HBase 的運行模式,HBase的運行時系統配置,一個分散式 HBase 集群的臨界配置區域。


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

-Advertisement-
Play Games
更多相關文章
  • Android和iOS開發都支持C++開發,可以一套代碼多平臺使用。同時C++難以反編譯的特性也可以為Android開髮帶來代碼的保密,另一native特性也可以提高代碼的運行效率。 一、為什麼使用C/C++ 1. 便於移植,用C/C++寫得庫可以方便在其他的平臺上再次使用。 2. 代碼的保護,由於 ...
  • 本文主要是基於極光推送的SDK封裝的一個快速集成極光推送的類的封裝(不喜勿噴) (1)首先說一下推送的一些原理: Push的原理: Push 的工作機制可以簡單的概括為下圖 圖中,Provider是指某個iPhone軟體的Push伺服器,這篇文章我將使用.net作為Provider。 APNS 是A ...
  • UICollectionViewCell的設置間距 #pragma mark - UICollectionView 大小(寬高,平均一行三個) - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollecti ...
  • 1、首先,先在朋友圈中查看小視頻,點擊發送朋友,通過文件傳輸助手發送到電腦上, 2、打開電腦上的WeChat Files\微信名\video文件夾,裡面保存了你傳到電腦上的視頻和視頻截圖,將這兩個文件通過文件傳輸助手發送到手機上, 3、打開Tencent\MicroMsg目錄,再打開不規則命名、名稱 ...
  • Android 不僅系統版本眾多,機型眾多,而且各個市場都各有各的政策和審核速度,每次發佈一個版本對於開發同學來講都是一種漫長的煎熬。相比於 iOS 兩三天就能達到 80% 的覆蓋速度而言,Android 應用版本升級至少需要兩周才能達到 80% 的升級率,嚴重阻礙了版本迭代速度。也導致**市場上 ... ...
  • 1.Binder死亡代理 這一節首先將介紹Binder類中比較重要的兩個方法linkToDeath和unlinkToDeath。我們知道Binder是運行在服務進程,若服務端進程因為某種原因“死亡”,那麼Binder對象也將隨之而去,因為Binder對象是寄宿在服務端進程中的,這個時候我們的遠程調用 ...
  • 3D Touch是什麼效果的大家應該都知道了。什麼?不知道,那也沒辦法呀,我也沒有iPhone 6s演示給你看的。 本篇博客要做的效果圖: 來個低質量動圖: 這個動圖效果不是很好,實際上運行是很順滑的,而且模糊效果應該是像上面第一張圖那樣的,後面會放出代碼,有興趣的可以試著運行一下看看效果。 先說一 ...
  • ``` / 倒計時 @param endTime 截止的時間戳 @return 返回的剩餘時間 / (NSString )remainingTimeMethodAction:(long long)endTime { //得到當前時間 NSDate nowData = [NSDate date]; N ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...