创建用户

groupadd -g 800 tibco
useradd -u 801 -g tibco -d /home/tibco/ -s /bin/bash tibco

目前关于sharedatastore的方案是使用NAS。

创建准备使用的nfs目录,并赋权限

cd /

mkdir/mqdata

chown -R tibco:tibco  /mqdata

安装TIBCO   (TIBCO支持绿色安装,即直接从原来的机器上拷贝tibco目录从新创建配置文件即可使用。)

cd /opt/software/

ls

TIB_ems_7.0.1_linux_x86.tar.gz

tar -zxvf TIB_ems_7.0.1_linux_x86.tar.gz

chown -R tibco:tibco *

mkdir /opt/tibco

chown -R tibco:tibco/opt/tibco

切换到tibco用户,开始安装:

su -tibco

cd /opt/software

./TIBCOUniversalInstaller-lnx-x86.bin -console

安装过程中,需要定义以下参数,其它采用默认即可。

Install Type:     Typical

Environment Name: cfgmgmt

TIBCO Environment Home Directory: [/home/tibco/tibco] /opt/tibco

TIBCO Configuration Directory: [/home/tibco/CFGs] /opt

安装参数定义:

安装参数

值

备注

Environment Name

cfgmgmt

环境名称

TIBCO Environment Home Directory

/opt/tibco

介质安装目录

TIBCO Configuration Directory

/opt

配置目录(安装目录/环境名称)

ems 存放了启动文件 跟config配置案例

创建logs datastore conf目录

cp /opt/tibco/ems/8.2/samples/config/*  /mqdata/PMD/EmsServer/conf/(将配置文件拷贝出来,到时升级应用可以直接拷贝配置文件启动)

修改配置tibemsd.conf 文件一个为主 一个为备

1.  mqdata/PMD/EmsServer/conf目录下,使用tibemsd.conf文件为模板,创建文件:EmsServertibemsd.conf和EmsServerBackuptibemsd.conf,这两个文件通过启动脚本在主服务器与备服务器上使用。使用命令:

cd/mqdata/PMD/EmsServer/conf

cp -a tibemsd.conf EmsServertibemsd.conf

cp -a tibemsd.conf EmsServerBackuptibemsd.conf

2.  修改EmsServertibemsd.conf文件,修改内容如下:

server                  = PMD-EmsServer

users                   = "/mqdata/PMD/EmsServer/conf/users.conf"

groups                  = "/mqdata/PMD/EmsServer/conf/groups.conf"

topics                  = "/mqdata/PMD/EmsServer/conf/topics.conf"

queues                  = "/mqdata/PMD/EmsServer/conf/queues.conf"

acl_list                = "/mqdata/PMD/EmsServer/conf/acl.conf"

factories               = "/mqdata/PMD/EmsServer/conf/factories.conf"

routes                  = "/mqdata/PMD/EmsServer/conf/routes.conf"

bridges                 = "/mqdata/PMD/EmsServer/conf/bridges.conf"

transports              = "/mqdata/PMD/EmsServer/conf/transports.conf"

tibrvcm                 = "/mqdata/PMD/EmsServer/conf/tibrvcm.conf"

durables                = "/mqdata/PMD/EmsServer/conf/durables.conf"

channels                = "/mqdata/PMD/EmsServer/conf/channels.conf"

store                   = "/mqdata/PMD/EmsServer/datastore"

listen                  = tcp://192.168.50.148:7222

logfile                 = "/mqdata/PMD/EmsServer/logs/logfile"

ft_active               = tcp://192.168.50.156:7222

3.  修改EmsServerBackuptibemsd.conf文件,修改内容如下:

server                  = PMD-EmsServer

users                   = "/mqdata/PMD/EmsServer/conf/users.conf"

groups                  = "/mqdata/PMD/EmsServer/conf/groups.conf"

topics                  = "/mqdata/PMD/EmsServer/conf/topics.conf"

queues                  = "/mqdata/PMD/EmsServer/conf/queues.conf"

acl_list                = "/mqdata/PMD/EmsServer/conf/acl.conf"

factories               = "/mqdata/PMD/EmsServer/conf/factories.conf"

routes                  = "/mqdata/PMD/EmsServer/conf/routes.conf"

bridges                 = "/mqdata/PMD/EmsServer/conf/bridges.conf"

transports              = "/mqdata/PMD/EmsServer/conf/transports.conf"

tibrvcm                 = "/mqdata/PMD/EmsServer/conf/tibrvcm.conf"

durables                = "/mqdata/PMD/EmsServer/conf/durables.conf"

channels                = "/mqdata/PMD/EmsServer/conf/channels.conf"

store                   = "/mqdata/PMD/EmsServer/datastore"

listen                  = tcp://192.168.50.156:7222

logfile                 = "/mqdata/PMD/EmsServer/logs/logfile"

ft_active               = tcp://192.168.50.148:7222

4.  修改/mqdata/PMD/EmsServer/conf/factories.conf文件,添加内容如下:

[FTTopicConnectionFactory]

type                  = topic

url                   = tcp://192.168.50.148:7222,tcp://192.168.50.156:7222

[FTQueueConnectionFactory]

type                  = queue

url                   = tcp://192.168.50.148:7222,tcp://192.168.50.156:7222

至此,EmsServer的Fault-Tolerant Pair创建完成。

备的配置文件

Server=EMS-SERVER-RAMU(这个值必须和主服务器的tibemsd.conf 文件中的服务器参数的值一致)
Listen=tcp://7222(这个值必须和主服务器的tibemsd.conf 文件中的Ft_active 参数的值一致)
Ft_active=tcp://7222(这个值必须和主服务器的tibemsd.conf 文件中的监听参数的值一致)
store=(这个值必须和主服务器的tibemsd.conf 文件中的存储参数store,注意主服务器的tibemsd.conf 文件中的这个值正好是datastore)

在主上 echo '/mqdata 192.168.50.0/24(rw,sync)' >/etc/exports

/etc/init.d/rpcbind restart
/etc/init.d/nfs restart

主启动

nohup ./tibemsd -forceStart -config /mqdata/PMD/EmsServer/conf/EmsServertibemsd.conf &

主上共享

/mqdata 192.168.50.0/24(rw)

从上挂载/mqdata目录  最好将挂载加到rc.local中 mount -t nfs4 172.16.50.148:/mqdata  /mqdata

从上启动

nohup ./tibemsd -config /mqdata/PMD/EmsServer/conf/EmsServerBackuptibemsd.conf &

1 服务器启动

1.1.1.            创建主/备服务器属性文件

在主/备服务器的目录/home/tibco/tools上同时建立:

vi shutdown.conf,输入以下内容:

info

show queues

shutdown

1.1.2.            创建主服务器启动脚本

在主服务器(192.168.50.148)上的/home/tibco/tools目录建立:

vi startEmsServer.sh,输入以下内容:

#!/bin/sh

cd /opt/tibco/ems/7.0/bin/

nohup ./tibemsd64 -config /mqdata/PMD/EmsServer/conf/EmsServertibemsd.conf&

1.1.3.            创建主服务器停止脚本

在主服务器上(192.168.50.148)的/home/tibco/tools目录建立:

vi stopEmsServer.sh,输入以下内容:

#!/bin/sh

date >> shutdown.log

/opt/tibco/ems/7.0/bin/tibemsadmin -script /home/tibco/tools/shutdown.conf-servertcp://192.168.50.148:7222-user admin -password [admin’s password]>> shutdown.log

注意以上IP地址修改为对应的IP,如果没有密码,则不需要-password参数,下同!

1.1.4.            创建备服务器启动脚本

在备服务器(192.168.50.156)上的/home/tibco/tools目录建立:

vi startEmsServer.sh,输入以下内容:

#!/bin/sh

cd /opt/tibco/ems/7.0/bin/

nohup ./tibemsd64 -config /mqdata/PMD/EmsServer/conf/EmsServerBackuptibemsd.conf&

1.1.5.            创建备服务器停止脚本

在备服务器(192.168.50.156)上的/home/tibco/tools目录建立:

vi stopEmsServer.sh,输入以下内容:

#!/bin/sh

date >> shutdown.log

/opt/tibco/ems/7.0/bin/tibemsadmin -script /home/tibco/tools/shutdown.conf-servertcp://192.168.50.156:7222-user admin -password [admin’s password]>> shutdown.log

启动脚本的执行:

sh startEmsServer.sh

停止脚本的执行:

sh stopEmsServer.sh

执行后,观察日志确认启动/停止情况

设置连接密码

通过以下几条命令,设置tibco的admin账号密码。(账户 admin 初始密码为空)这里设置为admin,请根据实际情况定义!

Login name (admin):

Password:

Connected to: tcp://192.168.50.148:7222

tcp://192.168.50.148:7222>set password admin [admin’s password]

Password of user 'admin' has been modified

tcp://192.168.50.148:7222>quit

bye

2.        日常基础配置管理

2.1.   Queue建立和管理

TIBCO EMS中queue的建立可以使用API,也可以使用管理控制台建立。不管使用何种方式建立的queue,最后都将保存在queues.conf文件中。queues.conf文件为文本文件,也可以手工进行修改。由于手动修改queues.conf文件后需要重启EMS服务,而且配置信息的正确性不经过检查,所以不建议直接修改配置文件。建议使用管理控制台。如需进行批处理,通过在脚本中调用管理控制台的执行程序tibemsadmin实现。

2.2.   Factory的建立和管理

TIBCO EMS中Factory的建立也同样可以使用API和后台管理控制台进行修改和建立。

但是不如修改factories.conf文件来的方便。Factories。conf文件为文本文件,也可以手工进行修改。

如下所示:

[seashellXAConnectionFactory]       ----  factory的名称

type                     = xaqueue    ----类型

url                      = tcp://192.168.50.148:7222,tcp://192.168.50.156:7222|tcp://192.168.50.148:7222,tcp://192.168.50.156:7222                --- 所使用EMSServer的list,如果以“,”表示是FT的Pair,以“|”,表示LoadBalance的Pair。

metric                 = connections    ---使用connection数目进行LoadBalance的依据。

3.        监控部署

3.1.   TIBCO EMS运行主机的监控

使用目前统一的主机监控方案,监控内容包括:

CPU使用率

内存使用

磁盘使用

硬盘I/O

CPU Load Average

3.2.   NAS的IO监控

使用NAS提供的SNMP接口监控

3.3.   TIBCO EMS主机依赖网络流量的监控

监控Tibco EMS主机与NAS直接的网络流量,避免网络带宽的影响整个NAS的I/O。

3.4.   TIBCO EMS运行状态,连接数目监控

1、  监控TIBCO EMS的监听进程是否正常 telnet localhost 7222 等

2、  监控TIBCO EMS上连接EMS进程的网络连接数

3、  监控TIBCO EMSServer上的运行日志,对于异常的日志进行分析

以上监控也可以结合TibcoRTView进行,从操作系统层面和软件层面分别进行监控,必要时使用TibcoRTView进行数据分析,进行容量的估算。

3.5.   Queue的监控(使用TibcoRTView)

1、  Queue的深度监控:目前pending状态的Queue的长度,超过一定长度邮件报警,必要情况下使用Queue Clear脚本对过长的Pending队列进行清除。

2、  Queue的流量统计:统计每天主要Queue的流量,用于容量分析

4.        后续升级RoadMap

4.1.   存储

从目前的收集的各类资料显示,由于TIBCO EMS 的HA架构依赖于共享存储,而共享存储目前有多种实施方案。在这一次的实施中,我们使用的是目前生产上已有的NAS。

现在的测试过程中,并没有觉得使用NAS的Disk I/O是瓶颈。

但在后续的压力和容量不断提升的情况下,不难保证这一块会成为瓶颈,故指定以下升级RoadMap。

1、  将目前混用的NAS,单独增加一个磁盘阵列用给EMS使用,避免混用造成的影响。

升级需要工作:购买新的磁盘阵列用于EMS

2、  将目前EMS使用的NAS升级到SAN结构

A、 改造目前使用的NAS架构,增加SAN架构

升级需要工作:重新规划NAS网络,购买光纤交换机,每台EMS服务器增加光纤卡,NetApp的存储购买支持SAN架构的模块

B、 迁移目前使用的NAS共享存储到数据库使用SAN结构的共享存储。

升级需要工作:每台EMS服务器增加光纤卡,已有光纤交换机上增加接口给新增EMS服务器使用。

缺点:将与数据库使用同一个存储,可能会对数据库的使用造成影响。

以上升级方案在发现NAS 的Disk I/O在其他优化完成的情况下,仍然是瓶颈的情况下参考实施。

4.2.   服务器

EMS本身的Load Balance功能支持EMS的横向扩展。但由于实现Load Balance的机制中引入Routed Queue,而Routed Queue无法保证所有场景下事务的完整性,所以本次方案没有采用Producer端的Load Balance。对于Topic,Load Balance是没有对事务的限制的,但公司目前不采用Topic的机制。因为不采用Load Balance,未来EMS的升级采用如下几种方案:

1、  升级现有的硬件设备。如目前使用的服务器(戴尔R610)还有预留空间给CPU和内存模块,可以将服务器的配置进行提升。由于两台机器上的EMS互为FT,可以在不影响客户端的情形下将Standby状态下的机器停机进行模块扩展,然后再开机,开机后重新进入Standby模式。对正在运行Active EMS实例的机器进行升级,需要首先停掉EMS实例或者直接停机,让原来Standby状态下的EMS变为Active,然后再对机器进行硬件升级。此方案的优点是配置简单,但CPU数量及内存大小的增加并不一定能对EMS的整体性能有实质意义上的提升。

2、  增加FT Pair。目前的架构是使用一对Fault Tolerant的EMS实例,分别运行在不同的物理机器上。如果新的应用程序使用新的Queue,可以考虑将这些Queue建立在新的FT Pair(运行在另外两台机器)上。此方案的前提是新的Queue不被现有的应用所使用。

TIBCO EMS安装部署的更多相关文章

  1. tibco EMS 8.2.0安装

    安装环境 序号 项目 值 1 OS版本 Red Hat Enterprise Linux Server release 7.1 (Maipo) 2 内核版本 3.10.0-229.el7.x86_64 ...

  2. Oracle安装部署,版本升级,应用补丁快速参考

    一.Oracle安装部署 1.1 单机环境 1.2 Oracle RAC环境 1.3 Oracle DataGuard环境 1.4 主机双机 1.5 客户端部署 二.Oracle版本升级 2.1 单机 ...

  3. KVM安装部署

    KVM安装部署 公司开始部署KVM,KVM的全称是kernel base virtual machine,对KVM虚拟化技术研究了一段时间, KVM是基于硬件的完全虚拟化,跟vmware.xen.hy ...

  4. Linux平台oracle 11g单实例 + ASM存储 安装部署 快速参考

    操作环境:Citrix虚拟化环境中申请一个Linux6.4主机(模板)目标:创建单机11g + ASM存储 数据库 1. 主机准备 2. 创建ORACLE 用户和组成员 3. 创建以下目录并赋予对应权 ...

  5. 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署

    少啰嗦,直接装 看过上一篇分布式文件系统 - FastDFS 简单了解一下的朋友应该知道,本次安装是使用目前余庆老师开源的最新 V5.05 版本,是余庆老师放在 Github 上的,和目前你能在网络上 ...

  6. C# winform安装部署(转载)

    c# winform 程序打包部署 核心总结: 1.建议在完成的要打包的项目外,另建解决方案建立安装部署项目(而不是在同一个解决方案内新建),在解决方案上右击-〉添加-〉现有项目-〉选择你要打包的项目 ...

  7. Ubuntu14.04 Django Mysql安装部署全过程

    Ubuntu14.04 Django Mysql安装部署全过程   一.简要步骤.(阿里云Ubuntu14.04) Python安装 Django Mysql的安装与配置 记录一下我的部署过程,也方便 ...

  8. 比Ansible更吊的自动化运维工具,自动化统一安装部署_自动化部署udeploy 1.0

    新增功能: 2015-03-11 除pass(备份与更新)与start(启动服务)外,实现一切自动化. 注:pass与start设为业务类,由于各类业务不同,所以无法实现自动化.同类业务除外,如更新的 ...

  9. 比Ansible更吊的自动化运维工具,自动化统一安装部署自动化部署udeploy 1.0 版本发布

    新增功能: 逻辑与业务分离,完美实现逻辑与业务分离,业务实现统一shell脚本开发,由框架统一调用. 并发多线程部署,不管多少台服务器,多少个服务,同时发起线程进行更新.部署.启动. 提高list规则 ...

随机推荐

  1. Rectangles hdu2461容斥定理

    Rectangles Time Limit: 5000/4000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  2. Redis 的安装与使用

    环境:CentOS 6.6 Redis 版本:redis-3.0 (考虑到 Redis3.0 在集群和性能提升方面的特性,rc 版为正式版的候选版,而且很快就出正式版) 安装目录:/usr/local ...

  3. VC维含义的个人理解

    有关于VC维可以在很多机器学习的理论中见到,它是一个重要的概念.在读<神经网络原理>的时候对一个实例不是很明白,通过这段时间观看斯坦福的机器学习公开课及相关补充材料,又参考了一些网络上的资 ...

  4. 分布式锁的实现(redis)

    1.单机锁 考虑在并发场景并且存在竞态的状况下,我们就要实现同步机制了,最简单的同步机制就是加锁. 加锁可以帮我们锁住资源,如内存中的变量,或者锁住临界区(线程中的一段代码),使得同一个时刻只有一个线 ...

  5. python celery 时区&结果(性能)的坑

    本文主要介绍最近使用celery遇到的两个坑.关于时区,以及是否保留结果(celery使用rabbitmq). 先说结论:定时任务记得配置时区:丢弃结果对使用rabbitmq对celery来说,性能提 ...

  6. Mysql 学习之EXPLAIN作用

    一.MYSQL的索引 索引(Index):帮助Mysql高效获取数据的一种数据结构.用于提高查找效率,可以比作字典.可以简单理解为排好序的快速查找的数据结构.索引的作用:便于查询和排序(所以添加索引会 ...

  7. 运用 finereport 和 oracle 结合开发报表思路大总结

    近排自己学习了一款软件finereport开发报表模块,自己总结了如何了解需求,分析需求,再进行实践应用开发,最后进行测试数据的准确性,部署报表到项目对应的模块中显示. 一.需求(根据需求文档分析) ...

  8. C++类中静态变量和静态方法使用介绍

    静态成员的提出是为了解决数据共享的问题.实现共享有许多方法,如:设置全局性的变量或对象是一种方法.但是,全局变量或对象是有局限性的.这一章里,我们主要讲述类的静态成员来实现数据的共享. 静态数据成员 ...

  9. Android 发展史

    1. 概述 http://zh.wikipedia.org/wiki/Android# 2. Android版本发布表 Time Code name Version API level  2014年1 ...

  10. CMD(SA400 Command)

    一.CMD模糊查询: 命令行键入:CRT,WRK,ADD,CPY,DSP,CHG,CLR,FND,RTV*等. 二.CMD分类查询: 命令行键入:GO CMD xxx eg:GO CMD FILE,G ...