安装
环境:ubuntu 22.04
$ sudo apt install openjdk-8-jdk
创建用户 tlq
$ sudo groupadd tlq # 创建tlq用户组
$ sudo useradd -g tlq -m tlq # 创建tlq用户,并指定用户组为tlq
$ sudo passwd tlq # 为tlq设置密码
$ sudo chsh -s /bin/bash tlq # 设置tlq用户默认shell为bash
检查信号灯、共享内存
$ sudo sysctl -a | grep shm
$ sudo sysctl -a | grep sem
$ vim /etc/sysctl.conf # 新增以下内容
kernel.shmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmni = 4096
kernel.sem = 5120 3200 5120 5120
$ sudo sysctl -p # 刷新以应用配置
文件打开数的检查
$ ulimit -a
$ vim /etc/security/limits.conf # 新增以下内容
tlq soft nofile 65536
tlq hard nofile 65536
解压压缩包, 拷贝license.dat到应用文件夹中
$ tar -xf ./Install_TLQCli_Standard_Linux2.6.32_x86_64_8.1.17.0.tar.gz
$ tar -xf ./Install_TLQ_Standard_Linux2.6.32_x86_64_8.1.17.0.tar.gz
$ cp license.dat TLQ8
$ sudo mkdir /opt/tlq
$ sudo mv TLQ8 /opt/tlq
$ sudo mv TLQCli8 /opt/tlq
设置server环境变量, 也可以cd 到TLQ目录
$ su # 切换为root用户
$ cd /opt/tlq/TLQ8
$ cat ./setp >> ./tmp_env
$ vim ./tmp_env #将${PWD} 修改成TLQ绝对路径, 如 /opt/tlq/TLQ8
$ cat ./tmp_env >> /home/tlq/.bashrc
$ cat ./tmp_env >> ~/.bashrc
$ rm -rf tmp_env
$ exit # 退出root用户
$ su tlq # 切换到tlq用户
$ env | grep TLQ # 检查环境
$ exit
设置cli环境变量
$ su # 切换为root用户
$ cd /opt/tlq/TLQCli8
$ cat ./setp >> ./tmp_env
$ vim ./tmp_env #将${PWD} 修改成TLQ绝对路径, 如 /opt/tlq/TLQCli8
$ cat ./tmp_env >> /home/tlq/.bashrc
$ cat ./tmp_env >> ~/.bashrc
$ rm -rf ./tmp_env
$ exit # 退出root用户
$ su tlq # 切换到tlq用户
$ env | grep TCLI # 检查环境
更新所有
$ sudo chown -R tlq:tlq /opt/tlq
启停
$ tlq # 启动命令
$ tlq -cstop -y # 停止命令
$ tlq -cabort -y -w1 # 强制停止
$ ps -ef | grep tlq # 查看tl_clibroker是否启动成功
$ tlqstat -sys
$ tlqstat -qcu # 查看qcu
$ tlqstat -qcu qcu1 -c # 查看qcu
实验
实验环境
主机名 | 主机 |
---|---|
node1 | 192.168.233.101 |
node2 | 192.168.233.102 |
实验1 cs交换
$ tlq
$ cd /opt/tlq/TLQCli8/samples/demo_java/base
$ javac *.java
$ java SendMsgCli qcu1 lq B no
$ tlqstat -qcu qcu1 -c
$ java GetMsgCli qcu1 lq 0
实验2 server之间的通信
修改配置文件
连接node1:ssh tlq@192.168.233.101
$ vim /opt/tlq/TLQ8/etc/tlqcu_qcu1.conf
[SendProcess] # 发送进程小节
#
[SendProcessRecord] #
SendProcID = 1 # 发送进程唯一标识
SendProcStatus = 1 # 发送进程状态,0禁用,1正常
#
#
[SendConnRecord] # 发送连接小节
ConnName = conn1 # 连接名称
SendQueName = sq # 连接对应的发送队列名称
ConnStatus = 1 # 发送连接状态,0禁用,1正常
HostName = 192.168.233.102 # 被连接节点的IP地址
ConnPort = 10003 # 被连接节点的端口号,端口号需大于1024
- 修改HostName、ConnPort
连接node2:ssh tlq@192.168.233.102
$ vim /opt/tlq/TLQ8/etc/tlqcu_qcu1.conf
[SendProcess] # 发送进程小节
#
[SendProcessRecord] #
SendProcID = 1 # 发送进程唯一标识
SendProcStatus = 1 # 发送进程状态,0禁用,1正常
#
#
[SendConnRecord] # 发送连接小节
ConnName = conn1 # 连接名称
SendQueName = sq # 连接对应的发送队列名称
ConnStatus = 1 # 发送连接状态,0禁用,1正常
HostName = 192.168.233.101 # 被连接节点的IP地址
ConnPort = 10003 # 被连接节点的端口号,端口号需大于1024
- 修改HostName、ConnPort
分别启动node1、node2 的TLQ
开始发送消息: 由node2 发送消息给 node1
连接node2:ssh tlq@192.168.233.102
$ cd /opt/tlq/TLQCli8/samples/demo_java/base/
$ javac *.java
$ java SendMsgCli qcu1 rq B 0
连接node1:ssh tlq@192.168.233.101
$ tlqstat -qcu qcu1 -c
[Send Queue General Information]:
Quename Ready Snding Rcving WaitAck Delay
sq 0 0 0 0 0
[Local Queue General Information]:
Quename Ready Snding Rcving WaitAck Delay Getor
lq 2 0 0 0 0 0
TLQ.SYS.EVENT 0 0 0 0 0 0
TLQ.SYS.DEAD 0 0 0 0 0 0
TLQ.SYS.BROKER.CONTROL 0 0 0 0 0 0
TLQ.SYS.BROKER.SYN 0 0 0 0 0 0
TLQ.SYS.BROKER.SUB 0 0 0 0 0 0
TLQ.SYS.BROKER.SUBREQ 0 0 0 0 0 0
[Remote Queue General Information]:
Quename SndQName DestQName SndConnName HostName ConnPort ConnType ConnStatus
rq sq lq conn1 192.168.233.102 10003 long link
rq3 sq TLQ.SYS.BROKER.SYN conn1 192.168.233.102 10003 long link
[Virtual Queue General Information]:
Quename LocalQueName Ready
$ java GetMsgCli qcu1 lq 0
更改用户名
$ sudo usermod -l 新用户名 tlq # 将原tlq用户改名为新用户名
$ sudo usermod -d /home/新用户名 -m 新用户名 # 将home目录改名为新用户名
再做一遍实验即可