在Java 学习中Window操作系统下,类似ActiveMQ,Tomcat服务开启服务之后,服务在后台执行,经常遇到端口被占用该怎么办呢?可能多少童鞋都是进行修改端口或者重启相关的服务,但是重新启动之后,相关的端口仍然被占用。我们可能查找进程并kill进程。
在window系统下:
查看进程号:
netstat -ano | find "被占用端口号"
kill进程:
资源管理器kill进程。
在linux/unix系统下:
查看进程号:
netstat -ano | grep "被占用端口号"
kill进程号:
kill -9 进程号
ActiveMQ可以实现多个mq之间进行路由,假设有两个mq,分别为brokerA和brokerB,当有一条消息发送到brokerA的队列test中,有一个客户端连接到brokerB上,并且要求获取test队列的消息时,brokerA中队列test的消息就会路由到brokerB上,反之brokerB的消息也会路由到brokerA。
静态路由配置,brokerA不需要特别的配置,brokerB需要配置networkConnectors节点,具体配置如下:
|
<networkConnectors>
<networkConnector uri="static:(tcp://localhost:61616)"duplex="true"/>
</networkConnectors>
|
静态路由支持failover,如:static:failover://(tcp://host1:61616,tcp://host2:61616)。
动态路由配置,每个mq都需要配置如下:
|
<networkConnectors>
<networkConnector uri="multicast://default"/>
</networkConnectors>
<transportConnectors>
<transportConnector name="openwire"uri="tcp://0.0.0.0:61618"discoveryUri="multicast://default"/>
</transportConnectors>
|
注意:networkConnectors需要配置在persistenceAdapter之前。
重启ActiveMQ,可以看到brokerA的日志如图:
networkConnector的属性请参照:http://activemq.apache.org/networks-of-brokers.html
ActiveMQ的主备有三种方式:纯Master/Slave、文件共享方式、数据库共享方式。
1、纯Master/Slave
这种方式的主备不需要对Master Broker做特殊的配置,只要在Slave Broker中指定他的Master就可以了,指定Master有两种方式,最简单的配置就是在broker节点中添加masterConnectorURI=”tcp://localhost:61616″即可,还有一种方式就是添加一个services节点,可以指定连接的用户名和密码,配置如下:
|
<services>
<masterConnector remoteURI="tcp://localhost:61616"userName="system"password="manager"/>
</services>
|
纯Master/Slave只允许一个Slave连接到Master上面,也就是说只能有2台MQ做集群,同时当Master挂了之后需要停止Slave来恢复负载。
2、数据库共享方式
这种方式的主备采用数据库做消息的持久化,支持多个Slave,所有broker持久化数据源配置成同一个数据源,当一个broker获取的数据库锁之后,其他的broker都成为slave并且等待获取锁,当master挂了之后,其中的一个slave将会立刻获得数据库锁成为master,重启之前挂掉的master之后,这个master也就成了slave,不需要停止slave来恢复。由于采用的是数据库做为持久化,它的性能是有限的。
3、文件共享方式
这种方式的主备具有和数据库共享方式的负载一样的特性,不同的是broker的持久化采用的是文件(我这里用KahaDB),slave等待获取的锁是文件锁,它具有更高的性能,但是需要文件共享系统的支持。
Window下共享KahaDB持久化的目录,配置如下:
|
<persistenceAdapter>
<kahaDB directory="//172.16.1.202/mqdata/kahadb"/>
</persistenceAdapter>
|
Linux下需要开启NFS服务,具体操作如下:
创建共享目录(192.168.0.1):
1、 修改etc/exports,添加需要共享的目录:/opt/mq/data *(rw,no_root_squash)
2、 启动NFS服务 service nfs start/restart
3、 查看共享 showmount –e
4、 NFS服务自启动 chkconfig –level 35 nfs on
挂载共享目录(192.168.0.2):
1、 挂载:mount –t nfs 192.168.0.1:/opt/mq/data /opt/mq/data
2、 启动自动挂载:在etc/fstab文件添加10.175.40.244:/opt/mq/data /opt/mq/data nfs defaults 0 0
然后指定KahaDB的持久化目录为/opt/mq/data即可。
AIX系统的文件共享和Linux类似,也是启动NFS服务。
注意:如果Master服务器宕机了,Slave是不会获得文件锁而启动,直到Master服务器重启。
Window下Master上有Slave连接时如图:
客户端连接的brokerURL为failover:(tcp://localhost:61616,tcp://localhost:61617)。用第三部分的代码测试,先向Master Broker发送一个消息,然后关闭master,运行获取消息的方法,即可获取之前发送的消息。
分享到:
相关推荐
在高可用性和高并发场景下,为了实现负载均衡和故障转移,ActiveMQ 提供了 Broker-Cluster(经纪人集群)部署模式。这种部署方式允许多个 ActiveMQ 经纪人实例通过网络互相连接,共享队列,从而实现消息的负载均衡。...
本篇文章将详细讲解如何搭建ActiveMQ的高可用和负载均衡集群,以及进行相关的安装配置和高可用测试。 一、ActiveMQ简介 ActiveMQ是一款功能强大的消息代理,它支持多种消息协议,如OpenWire、AMQP、STOMP、XMPP等,...
在提供的源码和文档中,你可以找到关于如何配置ActiveMQ的高可用性和负载均衡的详细信息。例如,源码可能包含示例配置文件,展示了如何设置Master-Slave模式或网络代理的XML配置。文档则会解释这些配置选项的作用,...
本文将深入探讨如何安装、配置ActiveMQ以实现高可用性集群,并进行负载均衡测试,同时利用ZooKeeper和LevelDB来增强系统的稳定性和可靠性。 首先,ActiveMQ的高可用性通常通过集群实现,集群中的每个节点都是...
5. **安装与配置**:配置ActiveMQ高可用和负载均衡集群涉及多个步骤,包括安装和启动多个broker实例,设置网络连接,配置集群策略,以及选择合适的HA策略(如Master-Slave或Network of Brokers)。这些步骤需要对...
本文将深入探讨如何在ActiveMQ中配置组合队列(也称为复制队列)以及实现负载均衡。 首先,让我们了解什么是组合队列。组合队列是一种特殊的队列,它的特点是消息不仅被存储在一个队列中,还会被复制到其他队列,...
消息队列:ActiveMQ:ActiveMQ的集群与负载均衡.docx
### ActiveMQ+zookeeper实现高可用和负载均衡 #### 一、背景与目标 在现代分布式系统中,消息中间件如ActiveMQ扮演着重要的角色,它能够帮助应用之间进行可靠的消息传递。为了保证系统的稳定性和可靠性,通常需要...
- **集群部署**:通过集群,可以实现负载均衡和故障转移,保证服务连续性。 通过上述知识点,我们可以根据"activemq5配置文档"进行详细的配置工作,以满足具体的应用场景需求,无论是简单的消息传递还是复杂的...
ActiveMQ路由配置方式 ActiveMQ路由配置是Apache ActiveMQ项目中的一种重要配置方式,它依赖另一个Apache项目Camel。ActiveMQ集成了Camel,启动时同时会启动Camel。通过Camel Web Console可以进行Routing配置。 ...
- 如果有多台ActiveMQ实例,可以通过`<networkConnectors>`配置它们之间的连接,实现消息的多节点复制和负载均衡。 10. **Security Configuration** - `<securitySettings>`和`<plugins>`内的`...
ActiveMQ的配置主要通过`activemq.xml`文件进行,这个文件位于ActiveMQ安装目录的`conf`文件夹下。这个XML文件定义了ActiveMQ服务器的核心设置,包括网络连接、消息存储、策略、安全性和日志等。 ### 1. 网络连接与...
2. **监听端口**:在`<transportConnectors>`元素下配置监听端口,如`tcp://0.0.0.0:61616`,这表示ActiveMQ将在61616端口上监听TCP连接。 3. **存储策略**:ActiveMQ支持两种存储方式——内存存储和文件存储(默认...
ActiveMQ主备自动failover方案 ActiveMQ5.8.0版本的主备有两种方式:共享文件系统、共享数据库。性能上共享文件系统要优于共享数据库。 本文档采用共享文件系统的方式实现主备。共享文件系统最好使用分布式文件存储...
linux下activemq安装包和配置文档
5. 负载均衡和容灾:由于ActiveMQ服务器使用Zookeeper进行复制,客户端配置可能需要指定Zookeeper的地址,以便于发现和选择可用的ActiveMQ节点。这通常通过ActiveMQConnectionFactory的额外属性实现,如`...
Apache ActiveMQ 是一款开源的消息中间件,它支持多种消息协议并提供高可用性和负载均衡功能。在本文中,我们将深入探讨 Apache ActiveMQ 实现高可用性的负载均衡策略,特别是基于 Broker-Cluster 的方法。 首先,...
在Linux环境下,配置httpd的负载均衡主要涉及以下几个步骤: 1. 安装httpd:首先确保Linux系统中已安装httpd,如果没有,可以通过包管理器如`yum`或`apt-get`进行安装。 2. 配置httpd:编辑httpd的配置文件(通常为...
下面将详细介绍如何在Windows环境下配置ActiveMQ集群及其操作步骤。 1. **ActiveMQ集群概念** - **集群**:ActiveMQ集群是多个ActiveMQ服务器实例的集合,它们共享消息负载,提高系统的可用性和可靠性。当一个节点...
本文将深入探讨如何在Tomcat下配置ActiveMQ,特别是其HTTP配置。 首先,了解ActiveMQ的基础知识至关重要。ActiveMQ允许应用程序之间通过消息进行异步通信,这种通信模式可以提高系统的可伸缩性和可靠性。它支持多种...