基于zookeeper的solrCloud集群搭建

1.安裝及搭建相關環境

1.1環境準備

centos7,jdk1.8,tomcat8,zookeeper3.4.X,solr4.10.X
鏈接: https://pan.baidu.com/s/1i47IuKd 密碼: emqt

2.zookeeper集群搭建

2.1復制zookeeper
[root@MiWiFi-R3-srv ~]# mkdir /usr/local/solr-cloud
[root@MiWiFi-R3-srv ~]# cp -r zookeeper-3.4.6 /usr/local/solr-cloud/zookeeper01
[root@MiWiFi-R3-srv ~]# cp -r zookeeper-3.4.6 /usr/local/solr-cloud/zookeeper02
[root@MiWiFi-R3-srv ~]# cp -r zookeeper-3.4.6 /usr/local/solr-cloud/zookeeper03
2.2所有的zookeeper節點
2.2.1配置第一個zookeeper節點
[root@MiWiFi-R3-srv ~]# cd /usr/local/solr-cloud/zookeeper01
[root@MiWiFi-R3-srv zookeeper01]# mkdir data
[root@MiWiFi-R3-srv zookeeper01]# echo 1 > data/myid
2.2.2配置第一個節點的cfg文件
[root@MiWiFi-R3-srv conf]# mv zoo_sample.cfg zoo.cfg
[root@MiWiFi-R3-srv conf]# vim zoo.cfg
#修改dataDir,指向data目錄
dataDir=/usr/local/solr-cloud/zookeeper01/data/#solr的通訊端口(集群中不能重復)
clientPort=2182#在文件末尾添加以下配置
server.1=192.168.31.241:2887:3887
server.2=192.168.31.241:2888:3888
server.3=192.168.31.241:2889:3889
#第一個端口為通訊端口,第二個為投票選舉端口
2.2.3配置第二個zookeeper節點
[root@MiWiFi-R3-srv conf]# cd ../../
[root@MiWiFi-R3-srv solr-cloud]# cd zookeeper02
[root@MiWiFi-R3-srv zookeeper02]# mkdir data
[root@MiWiFi-R3-srv zookeeper02]# echo 2 > data/myid
2.2.4配置第二個節點的cfg文件
[root@MiWiFi-R3-srv zookeeper02]# cd conf/
[root@MiWiFi-R3-srv conf]# cp zoo_sample.cfg zoo.cfg
[root@MiWiFi-R3-srv conf]# vim zoo.cfg 
#修改dataDir,指向data目錄
dataDir=/usr/local/solr-cloud/zookeeper02/data/#solr的通訊端口(集群中不能重復)
clientPort=2183#在文件末尾添加以下配置
server.1=192.168.31.241:2887:3887
server.2=192.168.31.241:2888:3888
server.3=192.168.31.241:2889:3889
#第一個端口為通訊端口,第二個為投票選舉端口
2.2.5配置第三個zookeeper節點
[root@MiWiFi-R3-srv conf]# cd ../../
[root@MiWiFi-R3-srv solr-cloud]# cd zookeeper03
[root@MiWiFi-R3-srv zookeeper03]# mkdir data
[root@MiWiFi-R3-srv zookeeper03]# echo 3 > data/myid
2.2.6配置第三個節點的cfg文件
[root@MiWiFi-R3-srv zookeeper03]# cd conf/
[root@MiWiFi-R3-srv conf]# cp zoo_sample.cfg zoo.cfg
[root@MiWiFi-R3-srv conf]# vim zoo.cfg
#修改dataDir,指向data目錄
dataDir=/usr/local/solr-cloud/zookeeper03/data/#solr的通訊端口(集群中不能重復)
clientPort=2184#在文件末尾添加以下配置
server.1=192.168.31.241:2887:3887
server.2=192.168.31.241:2888:3888
server.3=192.168.31.241:2889:3889
#第一個端口為通訊端口,第二個為投票選舉端口
2.3配置集群統一啟動批處理
[root@MiWiFi-R3-srv conf]# cd ../../
[root@MiWiFi-R3-srv solr-cloud]# vim start-zookeeper.sh
cd zookeeper01/bin
./zkServer.sh start
cd ../../
cd zookeeper02/bin
./zkServer.sh start
cd ../../
cd zookeeper03/bin
./zkServer.sh start
[root@MiWiFi-R3-srv solr-cloud]# chmod u+x start-zookeeper.sh
2.4啟動zookeeper集群
[root@MiWiFi-R3-srv solr-cloud]# ./start-zookeeper.sh 
JMX enabled by default
Using config: /usr/local/solr-cloud/zookeeper01/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
JMX enabled by default
Using config: /usr/local/solr-cloud/zookeeper02/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
JMX enabled by default
Using config: /usr/local/solr-cloud/zookeeper03/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

3.solrCloud集群搭建

3.1復制tomcat
[root@MiWiFi-R3-srv solr-cloud]# cp -r /root/apache-tomcat-8.5.23 tomcat01
[root@MiWiFi-R3-srv solr-cloud]# cp -r /root/apache-tomcat-8.5.23 tomcat02
[root@MiWiFi-R3-srv solr-cloud]# cp -r /root/apache-tomcat-8.5.23 tomcat03
[root@MiWiFi-R3-srv solr-cloud]# cp -r /root/apache-tomcat-8.5.23 tomcat04
3.2配置所有tomcat的server.xml
3.2.1配置第一個tomcat的server.xml
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat01/conf/server.xml 
#第22行
<Server port="8105" shutdown="SHUTDOWN">#第69行
<Connector port="8180" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />#第116行
<Connector port="8109" protocol="AJP/1.3" redirectPort="8443" />
3.2.2配置第二個tomcat的server.xml
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat02/conf/server.xml 
#第22行
<Server port="8205" shutdown="SHUTDOWN">#第69行
<Connector port="8280" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />#第116行
<Connector port="8209" protocol="AJP/1.3" redirectPort="8443" />
3.2.3配置第三個tomcat的server.xml
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat03/conf/server.xml 
#第22行
<Server port="8305" shutdown="SHUTDOWN">#第69行
<Connector port="8380" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />#第116行
<Connector port="8309" protocol="AJP/1.3" redirectPort="8443" />
3.2.4配置第四個tomcat的server.xml
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat04/conf/server.xml 
#第22行
<Server port="8405" shutdown="SHUTDOWN">#第69行
<Connector port="8480" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />#第116行
<Connector port="8409" protocol="AJP/1.3" redirectPort="8443" />
3.3復制solr單機版的solr文件到每個集群節點中
[root@MiWiFi-R3-srv solr-cloud]# cp -r ../solr/tomcat/webapps/solr/ tomcat01/webapps/
[root@MiWiFi-R3-srv solr-cloud]# cp -r ../solr/tomcat/webapps/solr/ tomcat02/webapps/
[root@MiWiFi-R3-srv solr-cloud]# cp -r ../solr/tomcat/webapps/solr/ tomcat03/webapps/
[root@MiWiFi-R3-srv solr-cloud]# cp -r ../solr/tomcat/webapps/solr/ tomcat04/webapps/
3.4復制單機版solrhome到solr-cloud文件下
[root@MiWiFi-R3-srv solr-cloud]# cp -r ../solr/solrhome/ solrhome01
[root@MiWiFi-R3-srv solr-cloud]# cp -r ../solr/solrhome/ solrhome02
[root@MiWiFi-R3-srv solr-cloud]# cp -r ../solr/solrhome/ solrhome03
[root@MiWiFi-R3-srv solr-cloud]# cp -r ../solr/solrhome/ solrhome04
3.5配置所有solrhome節點的solr.xml文件
3.5.1修改solrhome01的solr.xml中solrcloud配置
[root@MiWiFi-R3-srv solr-cloud]# vim solrhome01/solr.xml
#第32行;host參數對應tomcat01的ip地址
<str name="host">192.168.31.241</str>#第33行;hostPort參數對應tomcat01的端口號
<int name="hostPort">8180</int>
3.5.2修改solrhome02的solr.xml中solrcloud配置
[root@MiWiFi-R3-srv solr-cloud]# vim solrhome02/solr.xml
#第32行;host參數對應tomcat02的ip地址
<str name="host">192.168.31.241</str>#第33行;hostPort參數對應tomcat02的端口號
<int name="hostPort">8280</int>
3.5.3修改solrhome03的solr.xml中solrcloud配置
[root@MiWiFi-R3-srv solr-cloud]# vim solrhome03/solr.xml
#第32行;host參數對應tomcat03的ip地址
<str name="host">192.168.31.241</str>#第33行;hostPort參數對應tomcat03的端口號
<int name="hostPort">8380</int>
3.5.4修改solrhome04的solr.xml中solrcloud配置
[root@MiWiFi-R3-srv solr-cloud]# vim solrhome04/solr.xml
#第32行;host參數對應tomcat04的ip地址
<str name="host">192.168.31.241</str>#第33行;hostPort參數對應tomcat04的端口號
<int name="hostPort">8480</int>
3.6建立solr與solrhome之間的關聯關系使其互相關聯
3.6.1修改tomcat01下的web.xml文件
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat01/webapps/solr/WEB-INF/web.xml
#第42行;solrhome01的地址
<env-entry-value>/usr/local/solr-cloud/solrhome01/</env-entry-value>
3.6.2修改tomcat02下的web.xml文件
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat02/webapps/solr/WEB-INF/web.xml
#第42行;solrhome02的地址
<env-entry-value>/usr/local/solr-cloud/solrhome02/</env-entry-value>
3.6.3修改tomcat03下的web.xml文件
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat03/webapps/solr/WEB-INF/web.xml
#第42行;solrhome03的地址
<env-entry-value>/usr/local/solr-cloud/solrhome03/</env-entry-value>
3.6.4修改tomcat04下的web.xml文件
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat04/webapps/solr/WEB-INF/web.xml
#第42行;solrhome04的地址
<env-entry-value>/usr/local/solr-cloud/solrhome04/</env-entry-value>
3.7配置tomcat節點使其關聯zookeeper集群
3.7.1配置tomcat01的catalina.sh文件
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat01/bin/catalina.sh
#第269行(不用動);
#JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"#在第269行下面添加一行JAVA_OPTS的配置
JAVA_OPTS="-DzkHost=192.168.31.241:2182,192.168.31.241:2183,192.168.31.241:2184"
#解釋:上面的三個ip為三個zookeeper的ip+solr的通訊端口(clientPort)
3.7.2配置tomcat02的catalina.sh文件
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat02/bin/catalina.sh
#第269行(不用動);
#JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"#在第269行下面添加一行JAVA_OPTS的配置
JAVA_OPTS="-DzkHost=192.168.31.241:2182,192.168.31.241:2183,192.168.31.241:2184"
#解釋:上面的三個ip為三個zookeeper的ip+solr的通訊端口(clientPort)
3.7.3配置tomcat03的catalina.sh文件
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat03/bin/catalina.sh
#第269行(不用動);
#JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"#在第269行下面添加一行JAVA_OPTS的配置
JAVA_OPTS="-DzkHost=192.168.31.241:2182,192.168.31.241:2183,192.168.31.241:2184"
#解釋:上面的三個ip為三個zookeeper的ip+solr的通訊端口(clientPort)
3.7.4配置tomcat04的catalina.sh文件
[root@MiWiFi-R3-srv solr-cloud]# vim tomcat04/bin/catalina.sh
#第269行(不用動);
#JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"#在第269行下面添加一行JAVA_OPTS的配置
JAVA_OPTS="-DzkHost=192.168.31.241:2182,192.168.31.241:2183,192.168.31.241:2184"
#解釋:上面的三個ip為三個zookeeper的ip+solr的通訊端口(clientPort)
3.8使用zookeeper管理solr的配置文件
[root@MiWiFi-R3-srv solr-cloud]# cd /root/solr-4.10.3/example/scripts/cloud-scripts/

使用zkcli.sh腳本上傳solr的配置文件到zookeeper集群中:

[root@MiWiFi-R3-srv cloud-scripts]# ./zkcli.sh -zkhost 192.168.31.241:2182,192.168.31.241:2183,192.168.31.241:2184 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome01/collection1/conf/ -confname myconf

登錄zookeeper客戶端:

[root@MiWiFi-R3-srv cloud-scripts]# cd /usr/local/solr-cloud/zookeeper01/bin/
[root@MiWiFi-R3-srv bin]# ./zkCli.sh -server 192.168.31.241:2182

查看myconf文件是否上傳成功:

[zk: 192.168.31.241:2182(CONNECTED) 3] ls /configs/myconf
[currency.xml, mapping-FoldToASCII.txt, protwords.txt, scripts.conf, synonyms.txt, stopwords.txt, velocity, _schema_analysis_synonyms_english.json, admin-extra.html, update-script.js, _schema_analysis_stopwords_english.json, solrconfig.xml, admin-extra.menu-top.html, elevate.xml, schema.xml, clustering, xslt, _rest_managed.json, mapping-ISOLatin1Accent.txt, spellings.txt, lang, admin-extra.menu-bottom.html]

退出zookeeper客戶端

[zk: 192.168.31.241:2182(CONNECTED) 4] quit
3.8啟動tomcat集群

創建tomcat集群啟動批處理:

[root@MiWiFi-R3-srv bin]# cd ../../
[root@MiWiFi-R3-srv solr-cloud]# vim start-tomcat.sh

添加以下內容:

/usr/local/solr-cloud/tomcat01/bin/startup.sh
/usr/local/solr-cloud/tomcat02/bin/startup.sh
/usr/local/solr-cloud/tomcat03/bin/startup.sh
/usr/local/solr-cloud/tomcat04/bin/startup.sh

添加執行權限:

[root@MiWiFi-R3-srv solr-cloud]# chmod u+x start-tomcat.sh

啟動tomcat集群:

[root@MiWiFi-R3-srv solr-cloud]# ./start-tomcat.sh

4.訪問solrCloud集群

訪問:http://192.168.31.241:8180/solr/#/~cloud

這里寫圖片描述

5.對solrCloud集群分片

#直接在瀏覽器輸入以下url
http://192.168.31.241:8180/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2#解釋:name=collection2 > 創建一個新的collection
#numShards=2 > 分成2片
#replicationFactor=2 > 有兩個備份節點

這里寫圖片描述

查看分片之后的solrCloud集群節點情況:
這里寫圖片描述

6.刪除solrCloud集群中多余的collection1

#直接在瀏覽器輸入以下url
http://192.168.31.241:8180/solr/admin/collections?action=DELETE&name=collection1

這里寫圖片描述

查看solrCloud集群:
這里寫圖片描述

至此,基于zookeeper的solrCloud集群搭建就完成了!!!


如果您喜歡這篇文章就請關注我的博客和朋友一起分享吧!
關注我: ? http://blog.csdn.net/yougoule

轉載于:https://www.cnblogs.com/pengtdy/p/8306203.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/287021.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/287021.shtml
英文地址,請注明出處:http://en.pswp.cn/news/287021.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【小白必懂】C語言求完全數

注意&#xff1a;學生黨如果存在付費問題可以加我好友&#xff0c;我可以開單篇短時間的免費喲~ 私聊我就好~ 情景再現 &#x1f478;小媛&#xff1a;小C&#xff0c;你知道什么是完全數嗎&#xff1f; &#x1f430;小C&#xff1a;知道呀&#xff0c;難道是今天老師又出題…

【三維激光掃描】第四章:點云數據處理

第一節 點云數據處理流程 由于外業獲取點云數據時的多種因素影響,點云數據質量直接影響到三維建模等方面的應用,點云數據處理環節非常重要。本章主要介紹數據處理流程,數據的配準:濾波、縮減、分割、分類,最后介紹點云數據應用。 5.1 數據處理流程 5.1.1 數據處理軟件 …

臺式計算機硬件輸入設備,臺式電腦硬件配置有哪些

臺式電腦硬件配置你知道有哪些?電腦的配置一般是指電腦的硬件配件的高檔程度、性價比等&#xff0c;電腦的性能好壞主要決定于以下主要硬件配置。一起來看看臺式電腦硬件配置有哪些&#xff0c;歡迎查閱!組裝臺式電腦配置1、實用性機型建議&#xff1a;首選1&#xff1a;intel…

mysql 如何用一條SQL將一張表里的數據插入到另一張表 3個例子

1. 表結構完全一樣 insert into 表1select * from 表2 2. 表結構不一樣&#xff08;這種情況下得指定列名&#xff09; insert into 表1 (列名1,列名2,列名3)select 列1,列2,列3 from 表2 3、只從另外一個表取部分值 insert into 表1 (列名1,列名2,列名3) values(列1,列2,(sel…

Android WebView和JavaScript交互

JavaScript在現在的網頁設計中用得很多&#xff0c;Android 的WebView可以載入網頁&#xff0c;WebView也設計了與JavaScript通信的橋梁。這篇主要介紹一下WebViewk控件如何和JavaScript進行交互。 WebView: WebView和網頁相關的主要有一下幾個方法&#xff1a;  setWebViewCl…

Microsoft Dev Box 帶來全新云上開發體驗

在 5 月 24 日, 微軟的產品經理 Anthony Cangialosi 在 Azure 社區發布了一篇博客(Introducing Microsoft Dev Box)&#xff0c; 宣布推出 Microsoft Dev Box !這是一種新的云服務&#xff0c;托管在 Microsoft Azure 中&#xff0c;提供了一個開箱即用的開發工作站&#xff0c…

游戲開發如此簡單?我直接創建了一個游戲場景【python 游戲實戰 02】

前言 本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋了新手在學習中的一般問題。此系列將會持續更新&#xff0c;包括別的語言以及實戰都將使用對話的方式進行教學&#xff0c;基礎編程語言教學適用于零基礎小白&#xff0c;之后實戰課程也將會逐步更新…

【三維激光掃描】第五章:基于點云數據的三維建模

第一節 繪制立面圖 1. 打開CAD 2014,新建一個文件,模板選擇acadiso.dwt,如下圖。 2. 點擊插入→創建點云。

Flutter之基本數據類型測試

1、Flutter的數據基本類型 Dart語言里一切皆為對象&#xff0c;所以如果沒有將變初始化,那么它的默認值為null Number(int、doubkle)StringBoolean(bool) List Map2、測試代碼 void testData() {//Number包含了int和doubleint a 4;int b 8;print(a b);int a1;if (a null)…

清北·NOIP2017濟南考前沖刺班 DAY1 morning

立方數(cubic) Time Limit:1000ms Memory Limit:128MB 題目描述 LYK定義了一個數叫“立方數”&#xff0c;若一個數可以被寫作是一個正整數的3次方&#xff0c;則這個數就是立方數&#xff0c;例如1,8,27就是最小的3個立方數。 現在給定一個數P&#xff0c;LYK想要知道這個數…

2020美國紐約大學計算機科學排名,2020美國紐約大學排名第幾

紐約大學在2020年《美國新聞與世界報道》美國全國性大學排名中排名第29名&#xff0c;在2020年QS世界大學排名中排名第39名。紐約大學專業排名QS世界大學生命科學與醫學專業排名 2020年 第40名QS世界大學醫學專業排名 2020年 第34名QS世界大學牙科專業排名 2020年 第14名QS世界…

saltstack 安裝nginx

1. 目錄結構[rootqing salt]# tree /srv/salt/nginx//srv/salt/nginx/-- config.sls-- files| -- nginx| -- nginx-1.0.15.tar.gz| -- nginx.conf| -- nginx_log_cut.sh| -- nginx-upstream-jvm-route-0.1.tar.gz-- init.sls-- install.sls1 directory, 8 files2. [r…

ArcGIS實驗教程——實驗三十一:ArcGIS構建泰森多邊形(Thiessen Polygon)實例精解

泰森多邊形是進行快速插值和分析地理實體影響區域的常用工具。例如,用離散點的性質描述多邊形區域的性質,用離散點的數據計算泰森多邊形區域的數據。泰森多邊形可用于定性分析、統計分析和臨近分析等。 ArcGIS實驗視頻教程合集:《ArcGIS實驗教程從入門到精通》(附配套實驗…

Python的魔法方法 .

基本行為和屬性 __init__(self[,....])構造函數 . 在實例化對象的時候會自動運行 __del__(self)析構函數 . 在對象被回收機制回收的時候會被調用 __str__(self)輸出函數 . 在實例對象請求輸出的時候會被調用. __repr__(self). 當直接調用實例對象的時候會被調用 __new__(cls,[,…

游戲角色開始動起來了,真帥!【python 游戲實戰 03】

前言 本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋了新手在學習中的一般問題。此系列將會持續更新&#xff0c;包括別的語言以及實戰都將使用對話的方式進行教學&#xff0c;基礎編程語言教學適用于零基礎小白&#xff0c;之后實戰課程也將會逐步更新…

如何讓 ASP.NET Core 支持綁定查詢字符串中的數組

前言有網友在交流群中詢問&#xff0c;如何讓 ASP.NET Core 支持綁定查詢字符串中的數組&#xff1a;據說&#xff0c;在 .NET 7 中已經支持了&#xff1a;但是&#xff0c;在這之前的 .NET 版本能實現相同功能嗎&#xff1f;ByteArrayModelBinder這時&#xff0c;群里的網友提…

Docker Storm開發環境搭建

2019獨角獸企業重金招聘Python工程師標準>>> 1. compose文件 storm-stack.yml version: 3.1services:zookeeper:image: zookeepercontainer_name: zookeeperrestart: alwaysports:- 2181:2181nimbus:image: stormcontainer_name: nimbuscommand: storm nimbusdepend…

Android之解決YouTubePlayerView啟動在Android5.0左右的手機出現奔潰問題

1 問題 用YouTubePlayerView(https://github.com/PierfrancescoSoffritti/android-youtube-player)在部分Android5.0手機上初始化的時候出現手機奔潰,錯誤提示如下 關鍵日志如下: Error inflating class com.pierfrancescosoffritti.androidyoutubeplayer.core.player.v…

重慶大學計算機課程設計,計算機組成原理課程設計報告重慶大學.doc

計算機組成原理課程設計報告重慶大學計算機組成原理課程設計報告題目&#xff1a;微程序設計專業&#xff1a;計算機科學與技術班級&#xff1a;指導老師&#xff1a;目錄一、摘要二、設計要求三、微程序控制器原理四、總體設計五、測試六、結論七、參考文獻目錄八、 個人總結重…

一些服務器編程的概念

IO線程&#xff1a;有Event loop的線程&#xff0c;每個線程有且有一個loop&#xff0c;用per thread變量記錄這個loop的對象地址&#xff0c;如果這個變量非空可以知道這個線程是IO線程 Channel&#xff1a;綁定到一個且只能一個loop&#xff0c;即某個IO線程&#xff0c;負責…