tigase开发环境搭建和Monitor搭建
1 IM服务端开源工程
1.1 主流开源工程介绍
不介绍这个了。
2 Eclipse部署
2.1 Eclipse安装git插件。
2.2 下载源码
git clone https://repository.tigase.org/git/tigase-server
选择稳定的版本右键 checkout
2.3 Pom错误修正
修正此错误需要在build节点下添加如下内容(忽略这个报错信息)
<pluginManagement>
<plugins>
<!--This plugin's configuration is used to store Eclipse m2e settings
only. It has no influence on the Maven build itself. -->
<plugin>
<groupId>org.eclipse.m2e </groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<versionRange>[1.5,)</versionRange>
<goals>
<goal>execute</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
2.4 配置
init.properties 基本配置
config-type=--gen-config-def
--admins= admin@im.cai
--virt-hosts = im.cai
#--debug=http
--debug=server, xmpp, cluster, pubsub
--user-db=mysql
--user-db-uri=jdbc:mysql://192.168.1.100:3306/tigase?user=admin&password=admin
说明:1. admins为管理员账号,需要手动注册。
virt-hosts 为虚拟域名,依个人喜好设定。
debug指定输出哪些包或者类中的日志。
Jvm启动参数配置
1. Program arguments : --property-file etc/init.properties
2. VM argument:
-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -Djdbc.drivers=com.mysql.jdbc.Driver:org.postgresql.Driver:org.apache.derby.jdbc.EmbeddedDriver -server -Xms100M -Xmx200M -XX:PermSize=32m -XX:MaxPermSize=256m -XX:MaxDirectMemorySize=128m
说明: 其中-Xmx200M表示给tigase jvm内存分配最大堆内存大小为200M,此值依个人喜好调整。
3 Linux环境部署
3.1 下载linux环境tigase文件
wget https://projects.tigase.org/attachments/download/2657/tigase-server-7.0.2-b3821-dist-max.tar.gz
3.2 解压
tar –zxvf tigase-server-7.0.2-b3821-dist-max.tar.gz 解压到当前目录下并更名为tigase-server (依个人喜好)
3.3 配置
init.properties 配置文件与eclipse配置文件相同
tigase.conf 此配置文件在 /xx/tigase/etc/ 目录下
说明:
JMX是远程监控的配置
REMOTE_DEBUG为远程调试配置
HEAP_DUMP是内存溢出策略配置, 内存溢出后会自动生成dump文件到指定目录
配置项按需添加
3.4 启动
在安装目录执行: ./scripts/tigase.sh start etc/tigase.conf
也可修改tigase.sh文件,指定tigase.conf配置文件
创建tigase命令:
cd /usr/bin
在此目录下执行 : ln –s /xx/tigase/scripts/tigase.sh tigase
表示创建软链接(快捷方式)tigase命令指向 tigase.sh可执行文件
至此,可以直接执行 tigase start|stop|restart 等命令来 启动|停止|重启 tigase
4 Linux环境代码打包
4.1 在自己喜欢的目录创建tigase-XX子目录
使用Xshell的文件传输工具将代码挪到XX目录
4.2 使用maven打包
进入到工程目录cd tigase-XX
执行mvn install -DskipTests (跳过测试)
4.3 部署启动
打包完成后,在target目录下将会生成tigase-server.jar文件,将此jar复制到/XX/tigase/jars目录下,启动tigase
5 远程调试
5.1 服务端配置
etc/tigase.conf 文件添加如下配置:
REMOTE_DEBUG="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787"
1
2
5.2 IDE客户端配置
以eclipse为例:
Debug Configurations – Remote Java Application – New
6 内存监控
6.1 服务端配置
etc/tigase.conf 文件添加如下配置:
JMX="-Djava.rmi.server.hostname=192.168.1.120 -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
6.2 客户端连接
以jvisualvm为例,jvisualvm.exe在jdk安装目录bin/。
运行jvisualvm.exe ,添加远程主机,输入服务器地址。
右键 主机添加JMX连接,输入端口号8888。
7 内存快照
命令 jstack, 将内存快照信息输出到文件。
一般需要获取多份,每隔3~10(依个人喜好)获取一次,用于分析线程等待超时及死锁等等。
曾经死过的锁
8 http-api 组件
8.1 配置及依赖
init.properties 配置文件添加
--comp-name-2=http
--comp-class-2=tigase.http.HttpMessageReceiver
http/api-keys[s]=open_access
# http/http/port[I]=8080
此组件依赖servlet-api-3.1.jar 、 groovy-all.jar
8.2 访问
a. tigase配置管理页面: http://localhost:8080/setup/
b. 后台管理页面: http://localhost:8080/ui/ (使用管理员账号登陆)
9 monitor 组件(linux环境下)
9.1 配置及依赖
init.properties 配置文件添加
--monitoring = jmx:9050
此组件依赖 jdmkrt.jar tigase-extras.jar
将下列文件放在对应的目录
bin/monitor.sh
etc/monitor.properties
libs/tigase-monitor.jar (放在jars/ 下会导致启动错误)
sounds/Alarm.wav alarm1.wav
配置 monitor.properties中nodes=red:192.168.1.150:admin:admin_pass
1
admin:admin_pass 在etc/jmx.access jmx.password 中配置,使用默认配置即可。
9.2 监控使用
在tigase目录下执行命令 ./bin/monitor.sh 启动monitor
如下:
10 集群模式
10.1 配置及依赖
init.properties 配置文件添加
--cluster-mode = true
--cluster-connect-all = true
--sm-cluster-strategy-class=tigase.server.cluster.strategy.OnlineUsersCachingStrategy
集群模式需要破解tigase-acs.jar,将破解后的jar包放在jars/目录下,启动各节点,节点之间通过数据库自动发现。
集群模式下每个节点的monitor配置:
配置 monitor.properties中
nodes=red:192.168.1.120:admin:admin_pass,bule:192.168.1.130:admin:admin_pass
原文链接:https://blog.csdn.net/Cancer_DD/article/details/47260113
标签: