Finereport集群配置
增加配置文件cluster.xml
將配置包resource文件夾下的cluster.xml打開,如果沒有cluster.xml,則新建一個(gè),基本內(nèi)容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<ClusterConfig useCluster="true"> ? ? ?//useCluster=”true”表示啟用集群配置
<ClusterService>
<ServiceName>A</ServiceName> ?//給這臺(tái)服務(wù)器取一個(gè)區(qū)別于其他機(jī)器的別名
<ip>192.168.0.1</ip> ? ? ? ? ? ?//這臺(tái)服務(wù)器在內(nèi)網(wǎng)中的IP地址
<port>8080</port> ? ? ? ? ? ? ?//報(bào)表應(yīng)用的端口
<WebAppName>WebReport</WebAppName> ?//報(bào)表應(yīng)用的名稱
</ClusterService>
<ClusterService>?
<ServiceName>B</ServiceName>
<ip>192.168.0.2</ip>
<port>8080</port>
<WebAppName>WebReport</WebAppName>
</ClusterService>
</ClusterConfig>
這里的每個(gè)ClusterService都是集群中一臺(tái)服務(wù)器的相關(guān)信息。配置好后,系統(tǒng)會(huì)根據(jù)自身的IP和端口號(hào)去匹配找到相應(yīng)的信息。當(dāng)然也可能會(huì)有一些原因?qū)е孪到y(tǒng)無法正確的匹配找到。這時(shí)您可以設(shè)置isSelf屬性來指定自身的屬性。
注:xml文件的第一行<??>前面不能有空格,并且請(qǐng)注意xml文件的編碼。
另:xml文件的保存格式是 utf-8 no Bom的格式。一般用寫字板打開配置包下的cluster.xml文件,修改保存就可以。
示例
例如這個(gè)配置文件部署在A服務(wù)器下,那么ServiceName為A的那個(gè)ClusterService節(jié)點(diǎn)后加一個(gè)屬性 isSelf=”true”,表示下這是本機(jī)的信息。如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<ClusterConfig useCluster="true" userShare="true">
<ClusterService ?isSelf="true"> //A服務(wù)器的配置信息,后面增加了屬性isSelf=”true”表示本機(jī)
<ServiceName>A</ServiceName>
<ip>192.168.0.1</ip>
<port>8080</port>
<WebAppName>WebReport</WebAppName>
</ClusterService>
<ClusterService> //B服務(wù)器的配置信息
<ServiceName>B</ServiceName>
<ip>192.168.0.2</ip>
<port>8080</port>
<WebAppName>WebReport</WebAppName>
</ClusterService>
</ClusterConfig> ? ? ? ?
ServiceName是為一臺(tái)服務(wù)器取的別名,只是為了區(qū)別標(biāo)記一下。最好簡(jiǎn)單方便,如A、B、C或者A1、A2等。注意!不能是中文。
IP是該臺(tái)服務(wù)器內(nèi)網(wǎng)中的IP,就是其它服務(wù)器能與之通信的IP。
Port是報(bào)表應(yīng)用的端口號(hào),假如是部署在tomcat下,那么就是tomcat的端口號(hào),默認(rèn)是8080.例如我們的內(nèi)置服務(wù)器是8079.
WebAppName是報(bào)表應(yīng)用的名稱,我們默認(rèn)的是WebReport。
那么,B服務(wù)器下的cluster.xml的配置信息如下:
<?xml version="1.0" encoding="UTF-8" ?>
<ClusterConfig useCluster="true" userShare="true">
<ClusterService> //A服務(wù)器的配置信息
<ServiceName>A</ServiceName>
<ip>192.168.0.1</ip>
<port>8080</port>
<WebAppName>WebReport</WebAppName>
</ClusterService>
<ClusterService ?isSelf="true"> //B服務(wù)器的配置信息,后面增加了屬性isSelf=”true”表示本機(jī)
<ServiceName>B</ServiceName>
<ip>192.168.0.2</ip>
<port>8080</port>
<WebAppName>WebReport</WebAppName>
</ClusterService>
</ClusterConfig> ? ? ? ?
那么正確的配置結(jié)果,就是在A服務(wù)器上,假如有瀏覽器,瀏覽器中輸入
http://192.168.0.2:8080/WebReport/ReportServer?reportlet=xxx.cpt?,就能訪問到B服務(wù)器上的報(bào)表應(yīng)用。這個(gè)url中的IP、端口號(hào)和web應(yīng)用名稱就是上面配置信息里的。注:xxx.cpt只是舉個(gè)例子
那綜上說明,假如集群中多了一臺(tái)C服務(wù)器,給它取個(gè)別名就叫C。內(nèi)網(wǎng)IP是192.168.0.3,裝了tomcat,端口默認(rèn)是8080。報(bào)表應(yīng)用名稱也是默認(rèn)是WebReport。那么服務(wù)器下的配置文件,應(yīng)該如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<ClusterConfig useCluster="true" userShare="true">
<ClusterService>
<ServiceName>A</ServiceName>
<ip>192.168.0.1</ip>
<port>8080</port>
<WebAppName>WebReport</WebAppName>
</ClusterService>
<ClusterService>
<ServiceName>B</ServiceName>
<ip>192.168.0.2</ip>
<port>8080</port>
<WebAppName>WebReport</WebAppName>
</ClusterService>
<ClusterService>
<ServiceName>C</ServiceName>
<ip>192.168.0.3</ip>
<port>8080</port>
<WebAppName>WebReport</WebAppName>
</ClusterService>
</ClusterConfig>
最后,請(qǐng)根據(jù)上面的格式,寫好cluster.xml文件,且將其拷貝到各服務(wù)器的報(bào)表應(yīng)用(WEB-INF\resources)文件夾下。當(dāng)然,有isSelf屬性指定的特定服務(wù)器的配置文件,還需保存到相應(yīng)的服務(wù)器路徑下。
測(cè)試配置是否生效
當(dāng)集群中的服務(wù)器都已經(jīng)按照上述步驟配置好,且重新啟動(dòng)報(bào)表應(yīng)用后,測(cè)試各個(gè)服務(wù)器之間的通訊是否正常。
例如,在A服務(wù)器下,先本機(jī)測(cè)試下報(bào)表能否訪問,測(cè)一張簡(jiǎn)單的模板就行。能正常訪問(ie瀏覽器可能需要將其localhost或127.0.0.1的本機(jī)地址,添加到信任站點(diǎn)中才能顯示頁面),接著在瀏覽器上輸入:http://localhost:8080/WebReport/ReportServer?op=fr_cluster&cmd=test_c_all
上述url地址,其前面的部分,按情況換上相應(yīng)報(bào)表應(yīng)用的端口號(hào)和應(yīng)用名稱。而后,假如本機(jī)設(shè)置正常,就能看到如下的信息:(以上述A、B兩臺(tái)服務(wù)器的配置文件舉例)
Cluster is start
SELF:
ServiceName:B
IP:192.168.100.227
PORT:8080
WebAppName:WebReport
?
Other Server List:
NO1: ServiceName:A = 192.168.100.227:7080/WebReport
------------------------------------------
Test it(op = cluster_test) - RE:
Cluster is start!
Cluster Share is not start!
SELF:
ServiceName:A
IP:192.168.100.227
PORT:7080
WebAppName:WebReport
?
Other Server List:
NO1: ServiceName:B = 192.168.100.227:8080/WebReport
這樣說明,配置生效,A服務(wù)器能與B服務(wù)器間能夠互相通信。再次查看下信息是否有誤。
假如顯示:Cluster is close!,那說明該機(jī)的配置沒有生效。請(qǐng)檢查配置文件后,重新啟動(dòng)應(yīng)用,且再次依照上面步驟測(cè)試,直至出現(xiàn)上面的結(jié)果為止。
假如前面一部分顯示是這樣:
Cluster is start!?
Can not find Own Service Info.
LocalIP:192.168.0.39
LocalPort:8070。
說明集群配置了,但系統(tǒng)無法根據(jù)自身找到的IP和端口匹配到配置文件中的信息。而系統(tǒng)找到的IP是192.168. 0.39,端口是8070??赡苣渲贸闪?92.168.0.38:8080,那系統(tǒng)就找不到相應(yīng)的節(jié)點(diǎn)信息了。當(dāng)然由于各種原因,可能系統(tǒng)無法拿到正確的IP和端口,這時(shí)請(qǐng)您檢查后,設(shè)置正確的IP和端口后,在相應(yīng)的ClusterService的節(jié)點(diǎn)上加isSelf屬性(isSelf=”true”)。
假如,SELF下的信息不正確,或沒有信息,也請(qǐng)檢查配置文件。
假如,下面列出的其它機(jī)器的信息不正確,或有遺漏,也請(qǐng)檢查配置信息后,重啟報(bào)表應(yīng)用重試。
假如,其它服務(wù)器的回應(yīng),沒有回應(yīng)OK,例如回應(yīng)Connection timed out: connect。請(qǐng)檢查下那臺(tái)服務(wù)器的配置信息,檢查網(wǎng)絡(luò)連接,ping下那臺(tái)機(jī)器的ip地址,看看是否能ping通。然后查看那臺(tái)服務(wù)器報(bào)表應(yīng)用的端口和應(yīng)用名稱,是否設(shè)置正確。
可在瀏覽器中,輸入地址直接在內(nèi)網(wǎng)中訪問下那臺(tái)機(jī)上的報(bào)表應(yīng)用,看看設(shè)置的ip、端口號(hào)等是否設(shè)置正確。修改后,重新啟動(dòng)報(bào)表應(yīng)用,重試。
結(jié)束
當(dāng)以上檢查步驟結(jié)束。所有服務(wù)器都檢查,發(fā)現(xiàn)正確后。恭喜,配置就完成了。
來源:http://jingyan.baidu.com/article/91f5db1b323b8d1c7f05e3b9.html
轉(zhuǎn)載于:https://www.cnblogs.com/duwanjiang/p/5944640.html
總結(jié)
以上是生活随笔為你收集整理的Finereport集群配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: es elasticsearch 几种常
- 下一篇: logback AbstractLogs