From do-not-reply at jboss.org Thu Apr 29 12:21:29 2010
Content-Type: multipart/mixed; boundary="===============2800516874892984162=="
MIME-Version: 1.0
From: do-not-reply at jboss.org
To: hornetq-commits at lists.jboss.org
Subject: [hornetq-commits] JBoss hornetq SVN: r9185 -
branches/HnetQ_323_cn/docs/user-manual/zh.
Date: Thu, 29 Apr 2010 12:21:29 -0400
Message-ID: <201004291621.o3TGLTXG004983@svn01.web.mwc.hst.phx2.redhat.com>
--===============2800516874892984162==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Author: gaohoward
Date: 2010-04-29 12:21:28 -0400 (Thu, 29 Apr 2010)
New Revision: 9185
Modified:
branches/HnetQ_323_cn/docs/user-manual/zh/clusters.xml
Log:
done
Modified: branches/HnetQ_323_cn/docs/user-manual/zh/clusters.xml
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- branches/HnetQ_323_cn/docs/user-manual/zh/clusters.xml 2010-04-29 14:06=
:37 UTC (rev 9184)
+++ branches/HnetQ_323_cn/docs/user-manual/zh/clusters.xml 2010-04-29 16:21=
:28 UTC (rev 9185)
@@ -19,71 +19,50 @@
=
- Clusters =
+ =E9=9B=86=E7=BE=A4 =
- Clusters Overview
- HornetQ clusters allow groups of HornetQ servers to be group=
ed
- together in order to share message processing load. Each activ=
e node in the cluster is
- an active HornetQ server which manages its own messages and ha=
ndles its own
- connections. A server must be configured to be clustered, you =
will need to set the
- clustered element in the horne=
tq-configuration.xml
- configuration file to true, this is false by
- default.
- The cluster is formed by each node declaring clust=
er connections
- to other nodes in the core configuration file hornetq=
-configuration.xml.
- When a node forms a cluster connection to another node, intern=
ally it creates a core
- bridge (as described in ) connection between it and the=
other node,
- this is done transparently behind the scenes - you don't have =
to declare an explicit
- bridge for each node. These cluster connections allow messages=
to flow between the nodes
- of the cluster to balance load.
- Nodes can be connected together to form a cluster in many di=
fferent topologies, we
- will discuss a couple of the more common topologies later in t=
his chapter.
- We'll also discuss client side load balancing, where we can =
balance client connections
- across the nodes of the cluster, and we'll consider message re=
distribution where HornetQ
- will redistribute messages between nodes to avoid starvation.<=
/para>
- Another important part of clustering is server dis=
covery where
- servers can broadcast their connection details so clients or o=
ther servers can connect
- to them with the minimum of configuration.
+ =E9=9B=86=E7=BE=A4=E6=A6=82=E8=BF=B0
+ HornetQ=E9=9B=86=E7=BE=A4=E6=98=AF=E7=94=B1=E4=B8=80=E7=BB=
=84HornetQ=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=BB=84=E6=88=90=E7=9A=84=E9=9B=86=
=E5=90=88=EF=BC=8C=E5=AE=83=E4=BB=AC=E5=8D=8F=E5=90=8C=E5=90=88=E4=BD=9C=E8=
=BF=9B=E8=A1=8C=E6=B6=88=E6=81=AF=E5=A4=84=E7=90=86=E3=80=82=E9=9B=86=E7=BE=
=A4=E4=B8=AD=E6=AF=8F=E4=B8=AA=E4=B8=BB=E8=8A=82=E7=82=B9=E5=B0=B1=E6=98=AF=
=E4=B8=80=E4=B8=AA
+ HornetQ=E6=9C=8D=E5=8A=A1=E5=99=A8=EF=BC=8C=E5=AE=83=E7=AE=A1=
=E7=90=86=E8=87=AA=E5=B7=B1=E7=9A=84=E8=BF=9E=E6=8E=A5=E5=B9=B6=E5=A4=84=E7=
=90=86=E8=87=AA=E5=B7=B1=E7=9A=84=E6=B6=88=E6=81=AF=E3=80=82=E8=A6=81=E5=B0=
=86=E4=B8=80=E4=B8=AAHornetQ=E6=9C=8D=E5=8A=A1=E5=99=A8=E9=85=8D=E7=BD=AE=
=E4=B8=BA=E9=9B=86=E7=BE=A4=E6=9C=8D=E5=8A=A1=E5=99=A8=EF=BC=8C=E9=9C=80=E8=
=A6=81=E5=B0=86=E9=85=8D=E7=BD=AE
+ =E6=96=87=E4=BB=B6hornetq-configuration.xml=
=E4=B8=ADclustered=E7=9A=84=E5=80=BC=E8=AE=BE
+ =E4=B8=BAtrue=E3=80=82=E9=BB=98=E8=AE=A4=E5=
=80=BC=E6=98=AFfalse=E3=80=82
+ =E8=A6=81=E7=BB=84=E6=88=90=E4=B8=80=E4=B8=AA=E9=9B=86=E7=BE=
=A4=EF=BC=8C=E6=AF=8F=E4=B8=AA=E8=8A=82=E7=82=B9=E9=83=BD=E8=A6=81=E5=9C=A8=
=E5=85=B6=E6=A0=B8=E5=BF=83=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6hor=
netq-configuration.xml
+ =E4=B8=AD=E5=A3=B0=E6=98=8E=E9=9B=86=E7=BE=A4=E8=BF=
=9E=E6=8E=A5=EF=BC=8C=E7=94=A8=E6=9D=A5=E5=BB=BA=E7=AB=8B=E4=B8=
=8E=E9=9B=86=E7=BE=A4=E4=B8=AD=E5=85=B6=E5=AE=83=E8=8A=82=E7=82=B9=E7=9A=84=
=E9=80=9A=E8=BF=85=E3=80=82=E6=AF=8F=E4=B8=A4=E4=B8=AA=E8=8A=82=E7=82=B9=E9=
=97=B4=E9=83=BD=E6=98=AF=E9=80=9A=E8=BF=87=E5=86=85=E9=83=A8=E7=9A=84=E4=B8=
=80=E4=B8=AA
+ =E6=A0=B8=E5=BF=83=E6=A1=A5=EF=BC=88=E5=
=8F=82=E8=A7=81=EF=BC=89=E8=BF=9E=E6=8E=A5=
=E7=9A=84=E3=80=82=E8=BF=99=E4=BA=9B=E8=BF=9E=E6=8E=A5=E7=9A=84=E5=BB=BA=E7=
=AB=8B=E6=98=AF
+ =E9=80=8F=E6=98=8E=E7=9A=84=EF=BC=8D=EF=BC=8D=E4=BD=A0=E4=B8=
=8D=E9=9C=80=E8=A6=81=E4=B8=BA=E6=AF=8F=E4=B8=AA=E8=BF=9E=E6=8E=A5=E6=98=BE=
=E5=BC=8F=E5=9C=B0=E5=A3=B0=E6=98=8E=E4=B8=80=E4=B8=AA=E6=A1=A5=E3=80=82=E9=
=9B=86=E7=BE=A4=E8=BF=9E=E6=8E=A5=E7=9A=84=E4=BD=9C=E7=94=A8=E6=98=AF=E5=9C=
=A8=E9=9B=86=E7=BE=A4=E7=9A=84=E5=90=84=E4=B8=AA=E8=8A=82=E7=82=B9=E9=97=B4=
=E8=BF=9B=E8=A1=8C=E8=B4=9F=E8=BD=BD=E5=B9=B3=E8=A1=A1=E3=80=82
+ HornetQ=E5=8F=AF=E4=BB=A5=E9=87=87=E7=94=A8=E4=B8=8D=E5=90=
=8C=E7=9A=84=E6=8B=93=E6=89=91=E7=BB=93=E6=9E=84=E6=9D=A5=E7=BB=84=E6=88=90=
=E9=9B=86=E7=BE=A4=E3=80=82=E6=9C=AC=E7=AB=A0=E5=90=8E=E9=9D=A2=E5=B0=86=E8=
=AE=B2=E8=BF=B0=E5=87=A0=E7=A7=8D=E5=B8=B8=E7=94=A8=E7=9A=84=E6=8B=93=E6=89=
=91=E7=BB=93=E6=9E=84=E3=80=82
+ =E6=88=91=E4=BB=AC=E8=BF=98=E5=B0=86=E8=AE=A8=E8=AE=BA=E5=AE=
=A2=E6=88=B7=E7=AB=AF=E7=9A=84=E8=B4=9F=E8=BD=BD=E5=9D=87=E8=A1=A1=EF=BC=8D=
=EF=BC=8D=E5=AE=A2=E6=88=B7=E7=AB=AF=E5=A6=82=E4=BD=95=E5=9D=87=E8=A1=A1=E5=
=85=B6=E4=B8=8E=E9=9B=86=E7=BE=A4=E5=90=84=E8=8A=82=E7=82=B9=E7=9A=84=E8=BF=
=9E=E6=8E=A5=EF=BC=8C=E4=BB=A5=E5=8F=8A=E6=B6=88=E6=81=AF=E7=9A=84=E5=86=8D=
=E5=88=86=E9=85=8D=EF=BC=8D=EF=BC=8D=E5=9C=A8=E8=8A=82=E7=82=B9=E9=97=B4=E5=
=90=88=E7=90=86
+ =E7=9A=84=E5=88=86=E9=85=8D=E6=B6=88=E6=81=AF=E4=BB=A5=E9=81=
=BF=E5=85=8D=E6=B6=88=E6=81=AF=E5=8C=AE=E4=B9=8F=EF=BC=88starvation=EF=BC=
=89=E3=80=82
+ =E6=9C=AC=E7=AB=A0=E8=BF=98=E6=B6=89=E5=8F=8A=E9=9B=86=E7=BE=
=A4=E7=9A=84=E5=8F=A6=E4=B8=80=E4=B8=AA=E9=87=8D=E8=A6=81=E6=96=B9=E9=9D=A2=
=EF=BC=8D=EF=BC=8D=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=8F=91=E7=8E=B0=
emphasis>=EF=BC=8C=E5=8D=B3=E6=9C=8D=E5=8A=A1=E5=99=A8=E9=80=9A=E8=BF=87=E5=
=B9=BF=E6=92=AD=E7=9A=84=E6=96=B9=E5=BC=8F=E5=B0=86
+ =E8=87=AA=E5=B7=B1=E7=9A=84=E8=BF=9E=E6=8E=A5=E4=BF=A1=E6=81=
=AF=E5=91=8A=E8=AF=89=E5=AE=A2=E6=88=B7=E7=AB=AF=E6=88=96=E5=85=B6=E5=AE=83=
=E6=9C=8D=E5=8A=A1=E5=99=A8=EF=BC=8C=E4=BB=A5=E4=BD=BF=E5=AE=83=E4=BB=AC=E8=
=83=BD=E4=B8=8E=E5=85=B6=E5=BB=BA=E7=AB=8B=E8=BF=9E=E6=8E=A5=EF=BC=8C=E4=B8=
=8D=E9=9C=80=E8=A6=81=E9=A2=9D=E5=A4=96=E7=9A=84=E9=85=8D=E7=BD=AE=E3=80=82=
- Server discovery
- Server discovery is a mechanism by which servers can broadca=
st their connection
- settings across the network. This is useful for two purposes:<=
/para>
+ =E6=9C=8D=E5=8A=A1=E5=99=A8=E5=8F=91=E7=8E=B0
+ =E6=9C=8D=E5=8A=A1=E5=99=A8=E5=8F=91=E7=8E=B0=E6=98=AF=E6=8C=
=87=E6=9C=8D=E5=8A=A1=E5=99=A8=E9=80=9A=E8=BF=87=E5=B9=BF=E6=92=AD=E7=9A=84=
=E6=96=B9=E5=BC=8F=E5=B0=86=E8=87=AA=E5=B7=B1=E7=9A=84=E8=BF=9E=E6=8E=A5=E8=
=AE=BE=E7=BD=AE=E5=8F=91=E9=80=81=E5=88=B0=E7=BD=91=E7=BB=9C=E4=B8=8A=E7=9A=
=84=E6=9C=BA=E5=88=B6=EF=BC=8C=E5=AE=83=E6=9C=89=E4=B8=A4=E4=B8=AA=E7=9B=AE=
=E7=9A=84=EF=BC=9A
- Discovery by messaging clients. A messaging client w=
ants to be able to connect
- to the servers of the cluster without having specific =
knowledge of which servers
- in the cluster are up at any one time. Messaging clien=
ts
- can be initialised with an ex=
plicit list of the servers
- in a cluster, but this is not flexible or maintainable=
as servers are added or
- removed from the cluster.
+ =E8=A2=AB=E6=B6=88=E6=81=AF=E5=AE=A2=E6=88=B7=E7=AB=
=AF=E5=8F=91=E7=8E=B0=E3=80=82=E5=AE=A2=E6=88=B7=E7=AB=AF=E6=8E=A5=E5=88=B0=
=E5=B9=BF=E6=92=AD=E5=90=8E=E5=8F=AF=E4=BB=A5=E7=9F=A5=E9=81=93=E9=9B=86=E7=
=BE=A4=E4=B8=AD=E6=9C=89=E5=93=AA=E4=BA=9B=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=A4=
=84=E4=BA=8E=E5=B7=A5=E4=BD=9C=E7=8A=B6=E6=80=81=E4=BB=A5=E5=8F=8A=E5=A6=82=
=E4=BD=95=E4=B8=8E=E5=AE=83=E4=BB=AC
+ =E5=BB=BA=E7=AB=8B=E8=BF=9E=E6=8E=A5=E3=80=82=E8=99=BD=
=E7=84=B6=E5=AE=A2=E6=88=B7=E7=AB=AF=E5=8F=AF=E4=BB=A5=
=E5=8F=AF=E4=BB=A5=E5=9C=A8=E5=88=9D=E5=A7=8B=E5=8C=96=E6=97=B6=E6=8E=A5=E5=
=8F=97=E4=B8=80=E4=B8=AA=E9=9B=86=E7=BE=A4=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=9A=
=84=E5=88=97=E8=A1=A8=EF=BC=8C
+ =E4=BD=86=E6=98=AF=E8=BF=99=E6=A0=B7=E5=81=9A=E4=B8=8E=
=E5=B9=BF=E6=92=AD=E6=96=B9=E5=BC=8F=E7=9B=B8=E6=AF=94=E4=B8=8D=E5=A4=9F=E7=
=81=B5=E6=B4=BB=E3=80=82=E6=AF=94=E5=A6=82=E9=9B=86=E7=BE=A4=E4=B8=AD=E6=9C=
=89=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=A6=BB=E5=BC=80=E6=88=96=E6=96=B0=E5=8A=A0=
=E5=85=A5=E6=97=B6=EF=BC=8C=E5=88=97=E8=A1=A8=E7=9A=84=E6=96=B9=E5=BC=8F=E4=
=B8=8D=E8=83=BD=E5=8F=8A=E6=97=B6=E6=9B=B4=E6=96=B0=E8=BF=99=E4=BA=9B=E4=BF=
=A1=E6=81=AF=E3=80=82
- Discovery by other servers. Servers in a cluster wan=
t to be able to create
- cluster connections to each other without having prior=
knowledge of all the
- other servers in the cluster.
+ =E8=A2=AB=E5=85=B6=E5=AE=83=E6=9C=8D=E5=8A=A1=E5=99=
=A8=E5=8F=91=E7=8E=B0=E3=80=82=E9=80=9A=E8=BF=87=E5=B9=BF=E6=92=AD=EF=BC=8C=
=E6=9C=8D=E5=8A=A1=E5=99=A8=E4=B9=8B=E9=97=B4=E5=8F=AF=E4=BB=A5=E8=87=AA=E5=
=8A=A8=E5=BB=BA=E7=AB=8B=E5=BD=BC=E6=AD=A4=E9=97=B4=E7=9A=84=E8=BF=9E=E6=8E=
=A5=EF=BC=8C=E4=B8=8D=E9=9C=80=E8=A6=81=E4=BA=8B=E5=85=88=E7=9F=A5=E9=81=93=
=E9=9B=86=E7=BE=A4=E4=B8=AD=E5=85=B6=E5=AE=83
+ =E6=9C=8D=E5=8A=A1=E5=99=A8=E7=9A=84=E4=BF=A1=E6=81=AF=
=E3=80=82
- Server discovery uses UDP multicast to broadcast server connection sett=
ings. If UDP is disabled
- on your network you won't be able to use this, and will have t=
o specify servers
- explicitly when setting up a cluster or using a messaging clie=
nt.
+ =E6=9C=8D=E5=8A=A1=E5=99=A8=E5=8F=91=E7=8E=B0=E4=BD=BF=E7=94=
=A8UDP=E5=8D=8F=E8=AE=AE=E6=9D=A5=E5=B9=BF=E6=92=AD=
=E8=BF=9E=E6=8E=A5=E8=AE=BE=E7=BD=AE=E3=80=82=E5=A6=82=E6=9E=9C=E7=BD=91=E7=
=BB=9C=E4=B8=ADUDP=E8=A2=AB=E5=85=B3=E9=97=AD=EF=BC=8C=E5=88=99=E4=B8=8D=E8=
=83=BD=E4=BD=BF=E7=94=A8=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=8F=91=E7=8E=B0=E5=8A=
=9F=E8=83=BD=E3=80=82=E5=8F=AA=E6=9C=89=E7=94=A8=E6=98=BE=E5=BC=8F
+ =E5=9C=B0=E6=8C=87=E5=AE=9A=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=9A=
=84=E6=96=B9=E6=B3=95=E6=9D=A5=E8=AE=BE=E7=BD=AE=E9=9B=86=E7=BE=A4=E6=88=96=
=E9=9B=86=E7=BE=A4=E7=9A=84=E5=AE=A2=E6=88=B7=E7=AB=AF=E3=80=82
- Broadcast Groups
- A broadcast group is the means by which a server broadca=
sts connectors over the
- network. A connector defines a way in which a client (or o=
ther server) can make
- connections to the server. For more information on what a =
connector is, please see
- .
- The broadcast group takes a set of connector pairs, each=
connector pair contains
- connection settings for a live and (optional) backup serve=
r and broadcasts them on
- the network. It also defines the UDP address and port sett=
ings.
- Broadcast groups are defined in the server configuration=
file hornetq-configuration.xml. There can be man=
y broadcast groups per HornetQ
- server. All broadcast groups must be defined in a broadcast-groups element.
- Let's take a look at an example broadcast group from hornetq-configuration.xml:
+ =E5=B9=BF=E6=92=AD=E7=BB=84
+ =E6=9C=8D=E5=8A=A1=E5=99=A8=E4=BB=A5=E5=B9=BF=E6=92=AD=
=E7=BB=84=E7=9A=84=E6=96=B9=E5=BC=8F=E6=9D=A5=E5=B9=BF=E6=92=AD=E5=AE=83=E7=
=9A=84=E8=BF=9E=E6=8E=A5=E5=99=A8=E4=BF=A1=E6=81=AF=E3=80=82=E8=BF=9E=E6=8E=
=A5=E5=99=A8=E5=AE=9A=E4=B9=89=E4=BA=86=E5=A6=82=E4=BD=95=E4=B8=8E=E8=AF=A5=
=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=BB=BA=E7=AB=8B=E8=BF=9E=E6=8E=A5=E7=9A=84=E4=
=BF=A1=E6=81=AF=E3=80=82=E5=85=B3=E4=BA=8E=E8=BF=9E=E6=8E=A5=E5=99=A8=E6=9B=
=B4=E5=A4=9A=E7=9A=84
+ =E8=A7=A3=E9=87=8A=EF=BC=8C=E8=AF=B7=E5=8F=82=E8=A7=81=E3=80=82
+ =E5=B9=BF=E6=92=AD=E7=BB=84=E5=8C=85=E6=8B=AC=E4=BA=86=
=E4=B8=80=E7=B3=BB=E5=88=97=E7=9A=84=E8=BF=9E=E6=8E=A5=E5=99=A8=E5=AF=B9=E3=
=80=82=E6=AF=8F=E4=B8=AA=E8=BF=9E=E6=8E=A5=E5=99=A8=E5=AF=B9=E7=94=B1=E4=B8=
=BB=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=9A=84=E8=BF=9E=E6=8E=A5=E5=99=A8=E5=92=8C=
=E5=A4=87=E4=BB=BD=EF=BC=88=E5=8F=AF=E9=80=89=EF=BC=89=E6=9C=8D=E5=8A=A1=E5=
=99=A8=E8=BF=9E=E6=8E=A5=E5=99=A8=E4=BF=A1=E6=81=AF=E7=BB=84=E6=88=90=E3=80=
=82
+ =E5=B9=BF=E6=92=AD=E7=BB=84=E8=BF=98=E5=AE=9A=E4=B9=89=E4=
=BA=86=E6=89=80=E4=BD=BF=E7=94=A8=E7=9A=84UDP=E7=9A=84=E5=9C=A8=E5=9D=80=E5=
=92=8C=E7=AB=AF=E5=8F=A3=E4=BF=A1=E6=81=AF=E3=80=82
+ =E5=B9=BF=E6=92=AD=E7=BB=84=E7=9A=84=E9=85=8D=E7=BD=AE=
=E4=B8=AD=E6=9C=8D=E5=8A=A1=E5=99=A8=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6hornetq-configuration.xml=E4=B8=AD=E3=80=82=
=E4=B8=80=E4=B8=AAHornetQ=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=8F=AF=E4=BB=A5=E6=
=9C=89=E5=A4=9A=E4=B8=AA=E5=B9=BF=E6=92=AD=E7=BB=84=E3=80=82=E6=89=80=E6=9C=
=89=E7=9A=84=E5=B9=BF=E6=92=AD=E7=BB=84
+ =E5=BF=85=E9=9C=80=E5=AE=9A=E4=B9=89=E5=9C=A8broa=
dcast-groups=E5=86=85=E3=80=82
+ =E8=AE=A9=E6=88=91=E4=BB=AC=E6=9D=A5=E7=9C=8B=E4=B8=80=
=E4=B8=AAhornetq-configuration.xml=E6=96=87=E4=BB=B6=E4=
=B8=AD=E5=B9=BF=E6=92=AD=E7=BB=84=E7=9A=84=E4=BE=8B=E5=AD=90=EF=BC=9A
<broadcast-groups>
<broadcast-group name=3D"my-broadcast-group">
<local-bind-port>54321</local-bind-port>
@@ -91,87 +70,65 @@
<group-port>9876</group-port>
<broadcast-period>1000</broadcast-period>
<connector-ref connector-name=3D"netty-connector" =
- backup-connector-name=3D"backup-connector"/>
+ backup-connector=3D"backup-connector"/>
</broadcast-group>
</broadcast-groups>
- Some of the broadcast group parameters are optional and =
you'll normally use the
- defaults, but we specify them all in the above example for=
clarity. Let's discuss
- each one in turn:
+ =E6=9C=89=E4=BA=9B=E5=B9=BF=E6=92=AD=E7=BB=84=E7=9A=84=
=E5=8F=82=E6=95=B0=E6=98=AF=E5=8F=AF=E9=80=89=E7=9A=84=EF=BC=8C=E9=80=9A=E5=
=B8=B8=E6=83=85=E5=86=B5=E4=B8=8B=E5=8F=AF=E4=BB=A5=E4=BD=BF=E7=94=A8=E9=BB=
=98=E8=AE=A4=E5=80=BC=E3=80=82=E5=9C=A8=E4=B8=8A=E9=9D=A2=E4=BE=8B=E5=AD=90=
=E4=B8=AD=E6=88=91=E4=BB=AC=E4=B8=BA=E4=BA=86=E8=AF=B4=E6=98=8E=E7=9B=AE=E7=
=9A=84=E7=BB=99=E5=87=BA=E4=BA=86=E8=BF=99=E4=BA=9B=E5=8F=82=E6=95=B0=E3=80=
=82
+ =E4=B8=8B=E9=9D=A2=E6=98=AF=E8=BF=99=E4=BA=9B=E5=8F=82=
=E6=95=B0=E7=9A=84=E8=AF=B4=E6=98=8E=EF=BC=9A
- name attribute. Each broadcas=
t group in the server must
- have a unique name.
+ name=E3=80=82=E6=AF=8F=E4=B8=
=AA=E5=B9=BF=E6=92=AD=E7=BB=84=E9=9C=80=E8=A6=81=E6=9C=89=E4=B8=80=E4=B8=AA=
=E5=94=AF=E4=B8=80=E7=9A=84=E5=90=8D=E5=AD=97=E3=80=82
- local-bind-address. This is t=
he local bind
- address that the datagram socket is bound to. If y=
ou have multiple network
- interfaces on your server, you would specify which=
one you wish to use for
- broadcasts by setting this property. If this prope=
rty is not specified then
- the socket will be bound to the wildcard address, =
an IP address chosen by =
- the kernel.
+ local-bind-address=E3=80=82=
=E8=BF=99=E4=B8=AA=E5=8F=82=E6=95=B0=E6=98=AF=E5=A5=97=E6=8E=A5=E5=AD=97=E7=
=9A=84=E6=9C=AC=E5=9C=B0=E7=BB=91=E5=AE=9A=E5=9C=B0=E5=9D=80=E3=80=82=E5=A6=
=82=E6=9E=9C=E5=9C=A8=E6=9C=8D=E5=8A=A1=E5=99=A8
+ =E4=B8=AD=E6=9C=89=E5=A4=9A=E4=B8=AA=E7=BD=91=E7=
=BB=9C=E6=8E=A5=E5=8F=A3=E5=8D=A1=E6=97=B6=EF=BC=8C=E5=BF=85=E9=A1=BB=E8=A6=
=81=E6=8C=87=E5=AE=9A=E4=BD=BF=E7=94=A8=E7=9A=84=E6=98=AF=E5=93=AA=E4=B8=AA=
=E6=8E=A5=E5=8F=A3=E3=80=82=E5=A6=82=E6=9E=9C=E8=BF=99=E4=B8=AA=E5=8F=82=E6=
=95=B0=E6=B2=A1=E6=9C=89=E6=8C=87=E5=AE=9A=EF=BC=8C=E9=82=A3=E4=B9=88=E5=B0=
=86=E4=BD=BF=E7=94=A8=E7=B3=BB=E7=BB=9F=E5=86=85=E6=A0=B8
+ =E6=89=80=E9=80=89=E5=AE=9A=E7=9A=84IP=E5=9C=B0=E5=
=9D=80=E3=80=82
- local-bind-port. If you want =
to specify a local port to
- which the datagram socket is bound you can specify=
it here. Normally you
- would just use the default value of -1 which signifies
- that an anonymous port should be used.
+ local-bind-port=E3=80=82=E8=
=BF=99=E4=B8=AA=E5=8F=82=E6=95=B0=E6=8C=87=E5=AE=9A=E4=BA=86=E5=A5=97=E6=8E=
=A5=E5=AD=97=E7=9A=84=E6=9C=AC=E5=9C=B0=E7=BB=91=E5=AE=9A=E7=AB=AF=E5=8F=A3=
=E3=80=82=E9=80=9A=E5=B8=B8=E6=83=85=E5=86=B5=E4=B8=8B
+ =E5=8F=AF=E4=BB=A5=E4=BD=BF=E7=94=A8=E5=85=B6=E9=
=BB=98=E8=AE=A4=E5=80=BC-1=EF=BC=8C=E8=A1=A8=E7=A4=BA=E4=
=BD=BF=E7=94=A8=E9=9A=8F=E6=9C=BA=E7=9A=84=E7=AB=AF=E5=8F=A3=E3=80=82
- group-address. This is the mu=
lticast address to which
- the data will be broadcast. It is a class D IP add=
ress in the range 224.0.0.0 to 239.255.255.2=
55, inclusive.
- The address 224.0.0.0 is reserv=
ed and is not available
- for use. This parameter is mandatory.
+ group-address=E3=80=82=E8=BF=
=99=E4=B8=AA=E5=8F=82=E6=95=B0=E6=8C=87=E5=AE=9A=E7=9A=84=E6=98=AF=E5=B9=BF=
=E6=92=AD=E5=9C=B0=E5=9D=80=E3=80=82=E5=AE=83=E6=98=AF=E4=B8=80=E4=B8=AAD=
=E7=B1=BB=E7=9A=84IP=E5=9C=B0=E5=9D=80=EF=BC=8C
+ =E5=8F=96=E5=80=BC=E8=8C=83=E5=9B=B4=E6=98=AF224.0.0.0=E5=88=B0239.255.255.255=E3=80=82
+ =E5=9C=B0=E5=9D=80224.0.0.0=E6=
=98=AF=E4=BF=9D=E7=95=99=E5=9C=B0=E5=9D=80=EF=BC=8C=E6=89=80=E4=BB=A5=E4=B8=
=8D=E8=83=BD=E4=BD=BF=E7=94=A8=E3=80=82=E8=BF=99=E4=B8=AA=E5=8F=82=E6=95=B0=
=E6=98=AF=E5=BF=85=E9=9C=80=E6=8C=87=E5=AE=9A=E3=80=82
- group-port. This is the UDP p=
ort number used for
- broadcasting. This parameter is mandatory.
+ group-port=E3=80=82=E8=BF=99=
=E4=B8=AA=E5=8F=82=E6=95=B0=E8=AE=BE=E5=AE=9A=E5=B9=BF=E6=92=AD=E7=9A=84UDP=
=E7=AB=AF=E5=8F=A3=E3=80=82
+ =E6=98=AF=E4=B8=80=E4=B8=AA=E5=BF=85=E9=9C=80=E6=
=8C=87=E5=AE=9A=E7=9A=84=E5=8F=82=E6=95=B0=E3=80=82
- broadcast-period. This is the=
period in milliseconds
- between consecutive broadcasts. This parameter is =
optional, the default
- value is 1000 milliseconds.
+ broadcast-period=E3=80=82=E6=
=8C=87=E5=AE=9A=E4=B8=A4=E6=AC=A1=E5=B9=BF=E6=92=AD=E4=B9=8B=E9=97=B4=E7=9A=
=84=E6=97=B6=E9=97=B4=E9=97=B4=E9=9A=94=EF=BC=8C=E5=8D=95=E4=BD=8D=E6=AF=AB=
=E7=A7=92=E3=80=82
+ =E8=BF=99=E6=98=AF=E4=B8=80=E4=B8=AA=E5=8F=AF=E9=
=80=89=E5=8F=82=E6=95=B0=EF=BC=8C=E5=AE=83=E7=9A=84=E9=BB=98=E8=AE=A4=E5=80=
=BC=E6=98=AF1000=E6=AF=AB=E7=A7=92=E3=80=82
- connector-ref. This specifies=
the connector and
- optional backup connector that will be broadcasted=
(see for more=
information on
- connectors). The connector to be broadcasted is sp=
ecified by the connector-name attribute, and the b=
ackup connector to be
- broadcasted is specified by the backup-co=
nnector attribute.
- The backup-connector attribute =
is optional.
+ connector-ref=E3=80=82=E8=BF=
=99=E4=B8=AA=E5=8F=82=E6=95=B0=E6=8C=87=E5=AE=9A=E4=BA=86=E8=A6=81=E5=B9=BF=
=E6=92=AD=E7=9A=84=E8=BF=9E=E6=8E=A5=E5=99=A8=E4=BB=A5=E5=8F=8A=E5=8F=AF=E9=
=80=89=E7=9A=84=E5=A4=87=E4=BB=BD=E8=BF=9E=E6=8E=A5=E5=99=A8=E3=80=82
+ =EF=BC=88=E5=8F=82=E8=A7=81=EF=BC=89=E3=80=82
+ connector-name=E5=B1=9E=E6=80=
=A7=E7=9A=84=E5=80=BC=E6=98=AF=E8=BF=9E=E6=8E=A5=E5=99=A8=E7=9A=84=E5=90=8D=
=E5=AD=97=EF=BC=8C
+ backup-connector=E5=B1=9E=E6=80=
=A7=E6=98=AF=E5=A4=87=E4=BB=BD=E8=BF=9E=E6=8E=A5=E5=99=A8=E7=9A=84=E5=90=8D=
=E5=AD=97=EF=BC=8C=E6=98=AF=E5=8F=AF=E9=80=89=E5=B1=9E=E6=80=A7=E3=80=82
- Discovery Groups
- While the broadcast group defines how connector informat=
ion is broadcasted from a
- server, a discovery group defines how connector informatio=
n is received from a
- multicast address.
- A discovery group maintains a list of connector pairs - =
one for each broadcast by
- a different server. As it receives broadcasts on the multi=
cast group address from a
- particular server it updates its entry in the list for tha=
t server.
- If it has not received a broadcast from a particular ser=
ver for a length of time
- it will remove that server's entry from its list.
- Discovery groups are used in two places in HornetQ:
+ =E5=8F=91=E7=8E=B0=E7=BB=84
+ =E5=B9=BF=E6=92=AD=E7=BB=84=E8=A7=84=E5=AE=9A=E4=BA=86=
=E5=A6=82=E4=BD=95=E5=B9=BF=E6=92=AD=E8=BF=9E=E6=8E=A5=E5=99=A8=E7=9A=84=E4=
=BF=A1=E6=81=AF=EF=BC=8C=E5=8F=91=E7=8E=B0=E7=BB=84=E5=88=99=E5=AE=9A=E4=B9=
=89=E7=9A=84=E5=A6=82=E4=BD=95=E6=8E=A5=E6=94=B6=E8=BF=9E=E6=8E=A5=E5=99=A8=
=E7=9A=84=E4=BF=A1=E6=81=AF=E3=80=82
+ =E4=B8=80=E4=B8=AA=E5=8F=91=E7=8E=B0=E7=BB=84=E5=8C=85=
=E6=8B=AC=E4=BA=86=E4=B8=80=E7=B3=BB=E5=88=97=E7=9A=84=E8=BF=9E=E6=8E=A5=E5=
=99=A8=E5=AF=B9=EF=BC=8D=EF=BC=8D=E6=AF=8F=E4=B8=AA=E8=BF=9E=E6=8E=A5=E5=99=
=A8=E5=AF=B9=E4=BB=A3=E8=A1=A8=E4=B8=80=E4=B8=AA=E4=B8=8D=E5=90=8C=E7=9A=84=
=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=B9=BF=E6=92=AD=E7=9A=84=E8=BF=9E=E6=8E=A5=E5=
=99=A8=E4=BF=A1=E6=81=AF=E3=80=82=E6=AF=8F=E5=BD=93=E6=8E=A5=E6=94=B6=E4=B8=
=80=E6=AC=A1=E5=B9=BF=E6=92=AD=EF=BC=8C
+ =E8=BF=99=E4=B8=AA=E8=BF=9E=E6=8E=A5=E5=AF=B9=E7=9A=84=E5=
=88=97=E8=A1=A8=E5=B0=B1=E8=A2=AB=E6=9B=B4=E6=96=B0=E4=B8=80=E6=AC=A1=E3=80=
=82
+ =E5=A6=82=E6=9E=9C=E5=9C=A8=E4=B8=80=E5=AE=9A=E6=97=B6=
=E9=97=B4=E5=86=85=E6=B2=A1=E6=9C=89=E6=94=B6=E5=88=B0=E6=9F=90=E4=B8=AA=E6=
=9C=8D=E5=8A=A1=E5=99=A8=E7=9A=84=E5=B9=BF=E6=92=AD=EF=BC=8C=E5=88=99=E5=85=
=B6=E7=9B=B8=E5=BA=94=E7=9A=84=E8=BF=9E=E6=8E=A5=E5=99=A8=E5=AF=B9=E5=B0=86=
=E4=BB=8E=E5=88=97=E8=A1=A8=E4=B8=AD=E5=88=A0=E9=99=A4=E3=80=82
+ =E5=8F=91=E7=8E=B0=E7=BB=84=E5=9C=A8HornetQ=E4=B8=AD=E6=
=9C=89=E4=B8=A4=E5=A4=84=E5=BA=94=E7=94=A8=EF=BC=9A
- By cluster connections so they know what other s=
ervers in the cluster they
- should make connections to.
+ =E5=9C=A8=E5=88=9B=E5=BB=BA=E9=9B=86=E7=BE=A4=E8=
=BF=9E=E6=8E=A5=E6=97=B6=E7=94=A8=E6=9D=A5=E5=88=A4=E6=96=AD=E9=9B=86=E7=BE=
=A4=E4=B8=AD=E5=93=AA=E4=BA=9B=E6=9C=8D=E5=8A=A1=E5=99=A8=E6=98=AF=E5=8F=AF=
=E4=BB=A5=E8=BF=9E=E6=8E=A5=E7=9A=84=E3=80=82
- By messaging clients so they can discovery what =
servers in the cluster
- they can connect to.
+ =E5=AE=A2=E6=88=B7=E7=AB=AF=E7=94=A8=E6=9D=A5=E5=
=8F=91=E7=8E=B0=E5=93=AA=E4=BA=9B=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=8F=AF=E4=BB=
=A5=E8=BF=9E=E6=8E=A5=E3=80=82
- Defining Discovery Groups on the Server
- For cluster connections, discovery groups are defined in=
the server side
- configuration file hornetq-configuration.xml. All discovery groups
- must be defined inside a discovery-groups element. There can be
- many discovery groups defined by HornetQ server. Let's loo=
k at an
- example:
+ =E5=9C=A8=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=AB=AF=E5=AE=9A=
=E4=B9=89=E5=8F=91=E7=8E=B0=E7=BB=84=E3=80=82
+ =E6=9C=8D=E5=8A=A1=E5=99=A8=E7=AB=AF=E7=9A=84=E5=8F=91=
=E7=8E=B0=E7=BB=84=E5=AE=9A=E4=B9=89=E5=9C=A8hornetq-configuration=
.xml=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E4=B8=AD=E3=80=82=E6=89=
=80=E6=9C=89=E7=9A=84=E5=8F=91=E7=8E=B0=E7=BB=84=E9=83=BD=E5=BF=85=E9=A1=BB
+ =E5=9C=A8discovery-groups=E5=86=85=E5=
=AE=9A=E4=B9=89=E3=80=82=E5=8F=91=E7=8E=B0=E7=BB=84=E5=8F=AF=E4=BB=A5=E5=AE=
=9A=E4=B9=89=E5=A4=9A=E4=B8=AA=E3=80=82=E8=AF=B7=E7=9C=8B=E4=B8=8B=E9=9D=A2=
=E7=9A=84=E4=BE=8B=E5=AD=90=EF=BC=9A
<discovery-groups>
<discovery-group name=3D"my-discovery-group">
<group-address>231.7.7.7</group-address>
@@ -179,65 +136,47 @@
<refresh-timeout>10000</refresh-timeout>
</discovery-group>
</discovery-groups>
- We'll consider each parameter of the discovery group:
+ =E4=B8=8B=E9=9D=A2=E6=98=AF=E5=AF=B9=E6=AF=8F=E4=B8=AA=
=E5=8F=82=E6=95=B0=E7=9A=84=E8=A7=A3=E9=87=8A=EF=BC=9A
- name attribute. Each discover=
y group must have a unique
- name per server.
+ name=E5=B1=9E=E6=80=A7=E3=80=
=82=E6=AF=8F=E4=B8=AA=E5=8F=91=E7=8E=B0=E7=BB=84=E9=83=BD=E5=BF=85=E9=A1=BB=
=E6=9C=89=E4=B8=80=E4=B8=AA=E5=94=AF=E4=B8=80=E7=9A=84=E5=90=8D=E5=AD=97=E3=
=80=82
- group-address. This is the mu=
lticast ip address of the
- group to listen on. It should match the g=
roup-address in
- the broadcast group that you wish to listen from. =
This parameter is
- mandatory.
+ group-address=E3=80=82=E9=9C=
=80=E8=A6=81=E7=9B=91=E5=90=AC=E7=9A=84=E5=B9=BF=E6=92=AD=E5=9C=B0=E5=9D=80=
=E3=80=82=E5=AE=83=E9=9C=80=E8=A6=81=E4=B8=8E=E5=B9=BF=E6=92=AD=E7=BB=84=E7=
=9A=84
+ group-address=E4=B8=80=E8=87=B4=
=E6=89=8D=E5=8F=AF=E4=BB=A5=E6=94=B6=E5=88=B0=E5=B9=BF=E6=92=AD=E7=BB=84=E7=
=9A=84=E4=BF=A1=E6=81=AF=E3=80=82=E8=BF=99=E6=98=AF=E4=B8=80=E4=B8=AA=E5=BF=
=85=E8=A6=81=E5=8F=82=E6=95=B0=E3=80=82
- group-port. This is the UDP p=
ort of the multicast
- group. It should match the group-port in the broadcast
- group that you wish to listen from. This parameter=
is mandatory.
+ group-port=E3=80=82=E9=9C=80=
=E8=A6=81=E7=9B=91=E5=90=AC=E7=9A=84UDP=E7=AB=AF=E5=8F=A3=E3=80=82=E5=AE=83=
=E9=9C=80=E8=A6=81=E4=B8=8E=E5=B9=BF=E6=92=AD=E7=BB=84=E7=9A=84
+ group-port=E5=80=BC=E7=9B=B8=E5=
=90=8C=E6=89=8D=E5=8F=AF=E4=BB=A5=E6=94=B6=E5=88=B0=E5=B9=BF=E6=92=AD=E7=BB=
=84=E7=9A=84=E4=BF=A1=E6=81=AF=E3=80=82=E8=BF=99=E6=98=AF=E4=B8=80=E4=B8=AA=
=E5=BF=85=E8=A6=81=E5=8F=82=E6=95=B0=E3=80=82
- refresh-timeout. This is the =
period the discovery group
- waits after receiving the last broadcast from a pa=
rticular server before
- removing that servers connector pair entry from it=
s list. You would normally
- set this to a value significantly higher than the =
broadcast-period on the broadcast g=
roup otherwise servers
- might intermittently disappear from the list even =
though they are still
- broadcasting due to slight differences in timing. =
This parameter is
- optional, the default value is 10000 milliseconds (10
- seconds).
+ refresh-timeout=E3=80=82=E8=
=BF=99=E4=B8=AA=E5=8F=82=E6=95=B0=E5=86=B3=E5=AE=9A=E4=BA=86=E5=9C=A8=E6=94=
=B6=E5=88=B0=E6=9F=90=E4=B8=AA=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=9A=84=E5=B9=BF=
=E6=92=AD=E5=90=8E=EF=BC=8C=E9=9C=80=E8=A6=81=E7=AD=89=E5=BE=85
+ =E5=A4=9A=E9=95=BF=E6=97=B6=E9=97=B4=E4=B8=8B=E4=
=B8=80=E6=AC=A1=E5=B9=BF=E6=92=AD=E5=BF=85=E9=A1=BB=E6=94=B6=E5=88=B0=EF=BC=
=8C=E5=90=A6=E5=88=99=E5=B0=86=E8=AF=A5=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=9A=84=
=E8=BF=9E=E6=8E=A5=E5=99=A8=E5=AF=B9=E4=BB=8E=E5=88=97=E8=A1=A8=E4=B8=AD=E5=
=88=A0=E9=99=A4=E3=80=82=E9=80=9A=E5=B8=B8=E8=BF=99=E4=B8=AA=E5=8F=82=E6=95=
=B0=E7=9A=84=E5=80=BC=E5=BA=94=E8=AF=A5=E8=BF=9C=E5=A4=A7=E4=BA=8E
+ =E5=B9=BF=E6=92=AD=E7=BB=84=E7=9A=84broad=
cast-period=EF=BC=8C=E5=90=A6=E5=88=99=E4=BC=9A=E4=BD=BF=E6=9C=8D=
=E5=8A=A1=E5=99=A8=E4=BF=A1=E6=81=AF=E7=94=B1=E4=BA=8E=E5=B0=8F=E7=9A=84=E6=
=97=B6=E9=97=B4=E5=B7=AE=E5=BC=82=E8=80=8C=E4=B8=A2=E5=A4=B1=E3=80=82
+ =E8=BF=99=E4=B8=AA=E5=8F=82=E6=95=B0=E6=98=AF=E5=
=8F=AF=E9=80=89=E7=9A=84=EF=BC=8C=E5=AE=83=E7=9A=84=E9=BB=98=E8=AE=A4=E5=80=
=BC=E6=98=AF10000=E6=AF=AB=E7=A7=92=EF=BC=8810=E7=A7=92=
=EF=BC=89=E3=80=82
- Discovery Groups on the Client Side
- Let's discuss how to configure a HornetQ client to use d=
iscovery to
- discover a list of servers to which it can connect. The wa=
y to do this differs
- depending on whether you're using JMS or the core API.
+ =E5=AE=A2=E6=88=B7=E7=AB=AF=E7=9A=84=E5=8F=91=E7=8E=B0=
=E7=BB=84
+ =E7=8E=B0=E5=9C=A8=E8=AE=A8=E8=AE=BA=E5=A6=82=E4=BD=95=
=E9=85=8D=E7=BD=AEHornetQ=E5=AE=A2=E6=88=B7=E7=AB=AF=E6=9D=A5=E5=8F=91=E7=
=8E=B0=E5=8F=AF=E4=BB=A5=E8=BF=9E=E6=8E=A5=E7=9A=84=E6=9C=8D=E5=8A=A1=E5=99=
=A8=E5=88=97=E8=A1=A8=E3=80=82=E4=BD=BF=E7=94=A8JMS=E6=97=B6=E6=89=80=E7=94=
=A8=E7=9A=84=E6=96=B9=E6=B3=95=E4=B8=8E=E4=BD=BF=E7=94=A8=E6=A0=B8=E5=BF=83=
=E6=8E=A5=E5=8F=A3=E6=97=B6=E6=89=80=E7=94=A8=E7=9A=84
+ =E6=96=B9=E6=B3=95=E6=9C=89=E6=89=80=E4=B8=8D=E5=90=8C=E3=
=80=82
- Configuring client discovery using JMS
- If you're using JMS and you're also using the JMS Se=
rvice on the server to
- load your JMS connection factory instances into JNDI, =
then you can specify which
- discovery group to use for your JMS connection factory=
in the server side xml
- configuration hornetq-jms.xml. Let'=
s take a look at an
- example:
+ =E4=BD=BF=E7=94=A8JMS=E6=97=B6=E5=AE=A2=E6=88=B7=E7=
=AB=AF=E5=8F=91=E7=8E=B0=E7=9A=84=E9=85=8D=E7=BD=AE=E6=96=B9=E6=B3=95
+ =E5=A6=82=E6=9E=9C=E4=BD=BF=E7=94=A8JMS=EF=BC=8C=E5=
=B9=B6=E4=B8=94=E5=9C=A8=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=AB=AF=E7=9A=84JMS=E8=
=BF=9E=E6=8E=A5=E5=B7=A5=E5=8E=82=E6=98=AF=E6=B3=A8=E5=86=8C=E5=88=B0JNDI=
=E7=9A=84=E6=83=85=E5=86=B5=E4=B8=8B=EF=BC=8C=E4=BD=A0=E5=8F=AF=E4=BB=A5=E5=
=9C=A8=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=AB=AF=E7=9A=84=E9=85=8D=E7=BD=AE=E6=96=
=87=E4=BB=B6
+ hornetq-jms.xml=E4=B8=AD=E6=8C=87=
=E5=AE=9A=E8=BF=9E=E6=8E=A5=E5=B7=A5=E5=8E=82=E6=89=80=E7=94=A8=E7=9A=84=E5=
=8F=91=E7=8E=B0=E7=BB=84=E3=80=82=E5=A6=82=E4=B8=8B=E9=9D=A2=E6=89=80=E7=A4=
=BA=EF=BC=9A
<connection-factory name=3D"ConnectionF=
actory">
<discovery-group-ref discovery-group-name=3D"my-discovery-group"/>
<entries>
<entry name=3D"ConnectionFactory"/>
</entries>
</connection-factory>
- The element discovery-group-ref s=
pecifies the name of a
- discovery group defined in hornetq-configurat=
ion.xml.
- When this connection factory is downloaded from JNDI=
by a client application
- and JMS connections are created from it, those connect=
ions will be load-balanced
- across the list of servers that the discovery group ma=
intains by listening on
- the multicast address specified in the discovery group=
configuration.
- If you're using JMS, but you're not using JNDI to lo=
okup a connection factory
- - you're instantiating the JMS connection factory dire=
ctly then you can specify
- the discovery group parameters directly when creating =
the JMS connection
- factory. Here's an
- example:final String groupAddress =3D =
"231.7.7.7";
+ =E5=85=B6=E4=B8=ADdiscovery-group-ref=E7=9A=84=E5=80=BC=E6=98=AF=E5=AE=9A=E4=B9=89=E5=9C=A8
+ hornetq-configuration.xml=E6=96=87=
=E4=BB=B6=E4=B8=AD=E7=9A=84=E4=B8=80=E4=B8=AA=E5=8F=91=E7=8E=B0=E7=BB=84=E3=
=80=82
+ =E5=BD=93=E8=BF=9E=E6=8E=A5=E5=B7=A5=E5=8E=82=E4=BB=
=8EJNDI=E4=B8=8B=E8=BD=BD=E5=88=B0=E5=AE=A2=E6=88=B7=E7=AB=AF=E6=97=B6=EF=
=BC=8C=E4=BD=BF=E7=94=A8=E5=AE=83=E5=88=9B=E5=BB=BA=E8=BF=9E=E6=8E=A5=E5=B0=
=B1=E4=BC=9A=E5=9C=A8=E5=88=97=E8=A1=A8=E4=B8=AD=E7=9A=84=E6=9C=8D=E5=8A=A1=
=E5=99=A8=E9=97=B4=E8=BF=9B=E8=A1=8C=E8=B4=9F=E8=BD=BD=E5=9D=87=E8=A1=A1=E3=
=80=82
+ =E5=AE=A2=E6=88=B7=E7=AB=AF=E9=80=9A=E8=BF=87=E7=9B=91=
=E5=90=AC=E5=8F=91=E7=8E=B0=E7=BB=84=E4=B8=AD=E7=9A=84=E5=B9=BF=E6=92=AD=E5=
=9C=B0=E5=9D=80=E5=8F=AF=E4=BB=A5=E4=B8=8D=E6=96=AD=E6=9B=B4=E6=96=B0=E8=BF=
=99=E4=B8=AA=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=88=97=E8=A1=A8=E3=80=82
+ =E5=A6=82=E6=9E=9C=E4=BD=BF=E7=94=A8JMS=E4=BD=86=E6=
=98=AF=E4=B8=8D=E7=94=A8JNDI=EF=BC=8C=E8=80=8C=E6=98=AF=E7=9B=B4=E6=8E=A5=
=E5=AE=9E=E4=BE=8B=E5=8C=96JMS=E7=9A=84=E8=BF=9E=E6=8E=A5=E5=B7=A5=E5=8E=82=
=E7=9A=84=E8=AF=9D=EF=BC=8C=E5=8F=AF=E4=BB=A5=E7=94=A8=E9=80=82=E5=BD=93=E7=
=9A=84=E6=96=B9=E6=B3=95=E6=9D=A5=E8=AE=BE=E7=BD=AE=E5=8F=91=E7=8E=B0=E7=BB=
=84=E7=9A=84=E5=90=84=E4=B8=AA
+ =E5=8F=82=E6=95=B0=E3=80=82=E5=A6=82=E4=B8=8B=E6=89=80=
=E7=A4=BA=EF=BC=9Afinal String groupAddress =3D "231.7.7.7";
=
final int groupPort =3D 9876;
=
@@ -247,23 +186,17 @@
Connection jmsConnection1 =3D jmsConnectionFactory.createConnection();
=
Connection jmsConnection2 =3D jmsConnectionFactory.createConnection();
- The refresh-timeout can be set di=
rectly on the connection
- factory by using the setter method setDiscove=
ryRefreshTimeout() if you
- want to change the default value.
- There is also a further parameter settable on the co=
nnection factory using the
- setter method setInitialWaitTimeout(). If the connection
- factory is used immediately after creation then it may=
not have had enough time
- to received broadcasts from all the nodes in the clust=
er. On first usage, the
- connection factory will make sure it waits this long s=
ince creation before
- creating the first connection. The default value for t=
his parameter is 2000 milliseconds.
+ refresh-timeout=E5=8F=82=E6=95=B0=
=E5=8F=AF=E4=BB=A5=E7=9B=B4=E6=8E=A5=E5=9C=A8=E8=BF=9E=E6=8E=A5=E5=B7=A5=E5=
=8E=82=E4=B8=8A=E4=BD=BF=E7=94=A8
+ setDiscoveryRefreshTimeout()=E6=96=
=B9=E6=B3=95=E8=AE=BE=E7=BD=AE=E3=80=82
+ =E8=BF=9E=E6=8E=A5=E5=B7=A5=E5=8E=82=E8=BF=98=E6=9C=
=89=E4=B8=80=E4=B8=AA=E6=96=B9=E6=B3=95setInitialWaitTimeout()=E3=80=82=E5=AE=83=E5=8F=AF=E4=BB=A5=E8=AE=BE=E7=BD=AE=E8=BF=9E=E6=8E=
=A5=E5=B7=A5=E5=8E=82=E7=9A=84
+ =E5=88=9D=E5=A7=8B=E7=AD=89=E5=BE=85=E6=97=B6=E9=97=B4=
=E3=80=82=E5=BD=93=E4=B8=80=E4=B8=AA=E8=BF=9E=E6=8E=A5=E5=B7=A5=E5=8E=82=E8=
=A2=AB=E5=88=9B=E5=BB=BA=E5=90=8E=E7=AB=8B=E5=8D=B3=E8=BF=9B=E8=A1=8C=E7=94=
=A8=E4=BA=8E=E5=88=9B=E5=BB=BA=E8=BF=9E=E6=8E=A5=E7=9A=84=E8=AF=9D=EF=BC=8C=
=E8=BF=9E=E6=8E=A5=E5=B7=A5=E5=8E=82=E5=8F=AF=E8=83=BD=E6=B2=A1=E6=9C=89=E8=
=B6=B3=E5=A4=9F=E7=9A=84=E6=97=B6=E9=97=B4=E6=9D=A5=E6=8E=A5=E6=94=B6=E5=90=
=84
+ =E4=B8=AA=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=8F=91=E5=87=BA=
=E7=9A=84=E5=B9=BF=E6=92=AD=E4=BF=A1=E6=81=AF=EF=BC=8C=E4=B9=9F=E5=B0=B1=E6=
=97=A0=E6=B3=95=E5=BB=BA=E7=AB=8B=E5=AE=8C=E6=95=B4=E7=9A=84=E6=9C=8D=E5=8A=
=A1=E5=99=A8=E5=88=97=E8=A1=A8=E3=80=82=E6=9C=89=E4=BA=86=E8=BF=99=E4=B8=AA=
=E5=8F=82=E6=95=B0=EF=BC=8C=E8=BF=9E=E6=8E=A5=E5=B7=A5=E5=8E=82=E4=BC=9A=E5=
=9C=A8=E9=A6=96=E6=AC=A1=E5=88=9B=E5=BB=BA=E8=BF=9E=E6=8E=A5=E6=97=B6
+ =E7=AD=89=E5=BE=85=E4=B8=80=E5=AE=9A=E7=9A=84=E6=97=B6=
=E9=97=B4=EF=BC=8C=E4=BB=A5=E6=8E=A5=E6=94=B6=E5=B9=BF=E6=92=AD=E3=80=82=E9=
=BB=98=E8=AE=A4=E5=80=BC=E6=98=AF2000=E6=AF=AB=E7=A7=92=
=E3=80=82
- Configuring client discovery using Core
- If you're using the core API to directly instantiate=
ClientSessionFactory instances, then yo=
u can specify the
- discovery group parameters directly when creating the =
session factory. Here's an
- example:
+ =E4=BD=BF=E7=94=A8=E6=A0=B8=E5=BF=83API=E7=9A=84=E5=
=AE=A2=E6=88=B7=E7=AB=AF=E7=9A=84=E9=85=8D=E7=BD=AE
+ =E5=A6=82=E6=9E=9C=E4=BD=BF=E7=94=A8=E6=A0=B8=E5=BF=
=83=E6=8E=A5=E5=8F=A3=E7=9B=B4=E6=8E=A5=E5=88=9B=E5=BB=BAClientSes=
sionFactory=E7=9A=84=E5=AE=9E=E4=BE=8B=EF=BC=8C=E5=8F=AF=E4=BB=A5=
=E4=BD=BF=E7=94=A8=E7=9B=B8=E5=BA=94=E7=9A=84=E6=96=B9=E6=B3=95
+ =E7=9B=B4=E6=8E=A5=E8=BF=9B=E8=A1=8C=E5=8F=82=E6=95=B0=
=E7=9A=84=E8=AE=BE=E7=BD=AE=EF=BC=8C=E5=A6=82=EF=BC=9A
final String groupAddress =3D "231.7.7.7"; =
final int groupPort =3D 9876;
@@ -273,54 +206,37 @@
=
- The refresh-timeout can be set di=
rectly on the session
- factory by using the setter method setDiscove=
ryRefreshTimeout() if you
- want to change the default value.
- There is also a further parameter settable on the se=
ssion factory using the
- setter method setInitialWaitTimeout(). If the session factory
- is used immediately after creation then it may not hav=
e had enough time to
- received broadcasts from all the nodes in the cluster.=
On first usage, the
- session factory will make sure it waits this long sinc=
e creation before creating
- the first session. The default value for this paramete=
r is 2000 milliseconds.
+ =E6=96=B9=E6=B3=95setDiscoveryRefreshTimeou=
t()=E5=8F=AF=E4=BB=A5=E7=94=A8=E6=9D=A5=E7=9B=B4=E6=8E=A5=E8=AE=
=BE=E7=BD=AE=E5=8F=82=E6=95=B0
+ refresh-timeout=E3=80=82
+ =E4=BC=9A=E8=AF=9D=E5=B7=A5=E5=8E=82=E8=BF=98=E6=9C=
=89=E4=B8=80=E4=B8=AA=E6=96=B9=E6=B3=95setInitialWaitTimeout()=E3=80=82=E5=AE=83=E5=8F=AF=E4=BB=A5=E8=AE=BE=E7=BD=AE=E4=BC=9A=E8=AF=
=9D=E5=B7=A5=E5=8E=82=E7=9A=84
+ =E5=88=9D=E5=A7=8B=E7=AD=89=E5=BE=85=E6=97=B6=E9=97=B4=
=E3=80=82=E5=BD=93=E4=B8=80=E4=B8=AA=E4=BC=9A=E8=AF=9D=E5=B7=A5=E5=8E=82=E8=
=A2=AB=E5=88=9B=E5=BB=BA=E5=90=8E=E7=AB=8B=E5=8D=B3=E8=BF=9B=E8=A1=8C=E7=94=
=A8=E4=BA=8E=E5=88=9B=E5=BB=BA=E8=BF=9E=E6=8E=A5=E7=9A=84=E8=AF=9D=EF=BC=8C=
=E8=AF=A5=E4=BC=9A=E8=AF=9D=E5=B7=A5=E5=8E=82=E5=8F=AF=E8=83=BD=E6=B2=A1=E6=
=9C=89=E8=B6=B3=E5=A4=9F=E7=9A=84=E6=97=B6=E9=97=B4=E6=9D=A5=E6=8E=A5=E6=94=
=B6=E5=90=84
+ =E4=B8=AA=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=8F=91=E5=87=BA=
=E7=9A=84=E5=B9=BF=E6=92=AD=E4=BF=A1=E6=81=AF=EF=BC=8C=E4=B9=9F=E5=B0=B1=E6=
=97=A0=E6=B3=95=E5=BB=BA=E7=AB=8B=E5=AE=8C=E6=95=B4=E7=9A=84=E6=9C=8D=E5=8A=
=A1=E5=99=A8=E5=88=97=E8=A1=A8=E3=80=82=E6=9C=89=E4=BA=86=E8=BF=99=E4=B8=AA=
=E5=8F=82=E6=95=B0=EF=BC=8C=E4=BC=9A=E8=AF=9D=E5=B7=A5=E5=8E=82=E4=BC=9A=E5=
=9C=A8=E9=A6=96=E6=AC=A1=E5=88=9B=E5=BB=BA=E8=BF=9E=E6=8E=A5=E6=97=B6
+ =E7=AD=89=E5=BE=85=E4=B8=80=E5=AE=9A=E7=9A=84=E6=97=B6=
=E9=97=B4=EF=BC=8C=E4=BB=A5=E6=8E=A5=E6=94=B6=E5=B9=BF=E6=92=AD=E3=80=82=E9=
=BB=98=E8=AE=A4=E5=80=BC=E6=98=AF2000=E6=AF=AB=E7=A7=92=
=E3=80=82
- Server-Side Message Load Balancing
- If cluster connections are defined between nodes of a cluste=
r, then HornetQ
- will load balance messages arriving at a particular node from =
a client.
- Let's take a simple example of a cluster of four nodes A, B,=
C, and D arranged in a
- symmetric cluster (described in ).
- We have a queue called
- OrderQueue deployed on each node of the=
cluster.
- We have client Ca connected to node A, sending orders to the=
server. We have also have
- order processor clients Pa, Pb, Pc, and Pd connected to each o=
f the nodes A, B, C, D. If
- no cluster connection was defined on node A, then as order mes=
sages arrive on node A
- they will all end up in the OrderQueue on n=
ode A, so will only get
- consumed by the order processor client attached to node A, Pa.=
- If we define a cluster connection on node A, then as ordered=
messages arrive on node A
- instead of all of them going into the local OrderQueu=
e instance, they
- are distributed in a round-robin fashion between all the nodes=
of the cluster. The
- messages are forwarded from the receiving node to other nodes =
of the cluster. This is
- all done on the server side, the client maintains a single con=
nection to node A.
- For example, messages arriving on node A might be distribute=
d in the following order
- between the nodes: B, D, C, A, B, D, C, A, B, D. The exact ord=
er depends on the order
- the nodes started up, but the algorithm used is round robin.=
para>
- HornetQ cluster connections can be configured to always blin=
dly load balance
- messages in a round robin fashion irrespective of whether ther=
e are any matching
- consumers on other nodes, but they can be a bit cleverer than =
that and also be
- configured to only distribute to other nodes if they have matc=
hing consumers. We'll look
- at both these cases in turn with some examples, but first we'l=
l discuss configuring
- cluster connections in general.
+ =E6=9C=8D=E5=8A=A1=E5=99=A8=E7=AB=AF=E6=B6=88=E6=81=AF=E7=
=9A=84=E8=B4=9F=E8=BD=BD=E5=9D=87=E8=A1=A1
+ =E5=A6=82=E6=9E=9C=E9=9B=86=E7=BE=A4=E5=92=8C=E5=90=84=E8=8A=
=82=E7=82=B9=E9=97=B4=E5=AE=9A=E4=B9=89=E4=BA=86=E9=9B=86=E7=BE=A4=E8=BF=9E=
=E6=8E=A5=EF=BC=8CHornetQ=E5=8F=AF=E4=BB=A5=E5=AF=B9=E5=88=B0=E8=BE=BE=E4=
=B8=80=E4=B8=AA=E8=8A=82=E7=82=B9=E7=9A=84=E6=B6=88=E6=81=AF=E8=BF=9B=E8=A1=
=8C=E8=B4=9F=E8=BD=BD=E5=9D=87=E8=A1=A1=E3=80=82
+ =E4=B8=BE=E4=B8=80=E4=B8=AA=E7=AE=80=E5=8D=95=E7=9A=84=E4=BE=
=8B=E5=AD=90=E3=80=82=E4=B8=80=E4=B8=AA=E9=9B=86=E7=BE=A4=E6=9C=894=E4=B8=
=AA=E8=8A=82=E7=82=B9=EF=BC=8C=E5=88=86=E5=88=AB=E7=A7=B0=E4=B8=BA=E8=8A=82=
=E7=82=B9A=E3=80=81B=E3=80=81C=E5=92=8C=E8=8A=82=E7=82=B9D=E3=80=82=E5=AE=
=83=E4=BB=AC=E7=BB=84=E6=88=90=E4=BA=86=E4=B8=80=E4=B8=AA
+ =E5=AF=B9=E7=A7=B0=E5=BC=8F=E9=9B=86=E7=BE=A4=EF=BC=88=E6=9C=89=E5=85=B3=E5=AF=B9=E7=A7=B0=E5=BC=8F=E9=9B=86=E7=
=BE=A4=E5=8F=82=E8=A7=81=EF=BC=89=E3=
=80=82
+ =E5=9C=A8=E6=AF=8F=E4=B8=AA=E8=8A=82=E7=82=B9=E4=B8=8A=E9=
=83=A8=E7=BD=B2=E4=BA=86=E4=B8=80=E4=B8=AA=E5=90=8D=E4=B8=BAOrderQ=
ueue=E7=9A=84=E9=98=9F=E5=88=97=E3=80=82
+ =E4=B8=80=E4=B8=AA=E5=AE=A2=E6=88=B7=E7=AB=AFCa=E8=BF=9E=E6=
=8E=A5=E5=88=B0=E8=8A=82=E7=82=B9A=E5=B9=B6=E5=90=91=E5=85=B6=E5=8F=91=E9=
=80=81=E8=AE=A2=E5=8D=95=E6=B6=88=E6=81=AF=E3=80=82=E5=AE=A2=E6=88=B7=E7=AB=
=AFPa=E3=80=81Pb=E3=80=81Pc=E5=92=8CPd=E5=88=86=E5=88=AB=E8=BF=9E=E6=8E=A5=
=E5=88=B0=E8=8A=82=E7=82=B9A=E3=80=81B=E3=80=81C=E5=92=8CD=E5=B9=B6=E6=8E=
=A5=E6=94=B6=E5=A4=84=E7=90=86
+ =E8=BF=99=E4=BA=9B=E8=AE=A2=E5=8D=95=E6=B6=88=E6=81=AF=E3=80=
=82=E5=A6=82=E6=9E=9C=E5=9C=A8=E8=8A=82=E7=82=B9A=E4=B8=AD=E6=B2=A1=E6=9C=
=89=E5=AE=9A=E4=B9=89=E9=9B=86=E7=BE=A4=E8=BF=9E=E6=8E=A5=EF=BC=8C=E9=82=A3=
=E4=B9=88=E8=AE=A2=E5=8D=95=E6=B6=88=E6=81=AF=E9=83=BD=E5=8F=91=E9=80=81=E5=
=88=B0=E8=8A=82=E7=82=B9A=E4=B8=AD=E7=9A=84=E9=98=9F=E5=88=97Order=
Queue
+ =E4=B8=AD=E3=80=82=E5=9B=A0=E6=AD=A4=E5=8F=AA=E6=9C=89=E8=BF=
=9E=E6=8E=A5=E5=88=B0=E8=8A=82=E7=82=B9A=E7=9A=84=E5=AE=A2=E6=88=B7=E7=AB=
=AFPa=E6=89=8D=E8=83=BD=E6=8E=A5=E6=94=B6=E5=88=B0=E8=AE=A2=E5=8D=95=E6=B6=
=88=E6=81=AF=E3=80=82
+ =E5=A6=82=E6=9E=9C=E5=9C=A8=E8=8A=82=E7=82=B9A=E5=AE=9A=E4=
=B9=89=E4=BA=86=E9=9B=86=E7=BE=A4=E8=BF=9E=E6=8E=A5=E7=9A=84=E8=AF=9D=EF=BC=
=8C=E5=8F=91=E9=80=81=E5=88=B0=E8=8A=82=E7=82=B9A=E7=9A=84=E6=B6=88=E6=81=
=AF=E8=A2=AB=E8=BD=AE=E6=B5=81=EF=BC=88round-robin=EF=BC=89=E4=BB=8E=E8=8A=
=82=E7=82=B9A=E5=88=86=E9=85=8D=E5=88=B0=E5=90=84=E4=B8=AA=E8=8A=82=E7=82=
=B9=E4=B8=8A=E7=9A=84
+ OrderQueue=E9=98=9F=E5=88=97=E4=B8=AD=E3=80=
=82=E8=BF=99=E7=A7=8D=E6=B6=88=E6=81=AF=E5=88=86=E9=85=8D=E5=AE=8C=E5=85=A8=
=E5=9C=A8=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=AB=AF=E5=AE=8C=E6=88=90=EF=BC=8C=E5=
=AE=A2=E6=88=B7=E7=AB=AF=E5=8F=AA=E5=90=91=E8=8A=82=E7=82=B9A=E5=8F=91=E9=
=80=81=E6=B6=88=E6=81=AF=E3=80=82
+ =E4=BE=8B=E5=A6=82=E5=88=B0=E8=BE=BE=E8=8A=82=E7=82=B9A=E7=
=9A=84=E6=B6=88=E6=81=AF=E5=8F=AF=E8=83=BD=E4=BB=A5=E4=B8=8B=E5=88=97=E9=A1=
=BA=E5=BA=8F=E8=BF=9B=E8=A1=8C=E5=88=86=E9=85=8D=EF=BC=9AB=E3=80=81D=E3=80=
=81C=E3=80=81A=E3=80=81B=E3=80=81D=E3=80=81C=E3=80=81A=E3=80=81B=E3=80=81D=
=E3=80=82=E5=85=B7=E4=BD=93=E7=9A=84=E9=A1=BA=E5=BA=8F=E5=8F=96=E5=86=B3=E4=
=BA=8E=E8=8A=82=E7=82=B9=E5=90=AF=E5=8A=A8=E7=9A=84
+ =E5=85=88=E5=90=8E=EF=BC=8C=E4=BD=86=E6=98=AF=E5=85=B6=E7=AE=
=97=E6=B3=95=E6=98=AF=E4=B8=8D=E5=8F=98=E7=9A=84=EF=BC=88=E5=8D=B3round-rob=
in=EF=BC=89=E3=80=82
+ HornetQ=E9=9B=86=E7=BE=A4=E8=BF=9E=E6=8E=A5=E5=9C=A8=E8=BF=
=9B=E8=A1=8C=E6=B6=88=E6=81=AF=E8=B4=9F=E8=BD=BD=E5=9D=87=E8=A1=A1=E6=97=B6=
=EF=BC=8C=E5=8F=AF=E4=BB=A5=E9=85=8D=E7=BD=AE=E6=88=90=E7=BB=9F=E4=B8=80=E8=
=B4=9F=E8=BD=BD=E5=9D=87=E8=A1=A1=E6=A8=A1=E5=BC=8F=EF=BC=8C=E5=8D=B3=E4=B8=
=8D=E7=AE=A1=E5=90=84=E4=B8=AA=E8=8A=82=E7=82=B9=E4=B8=8A=E6=9C=89=E6=97=A0=
=E5=90=88=E9=80=82=E7=9A=84=E6=8E=A5=E6=94=B6=E8=80=85=EF=BC=8C=E4=B8=80=E5=
=BE=8B=E5=9C=A8
+ =E6=89=80=E6=9C=89=E8=8A=82=E7=82=B9=E9=97=B4=E8=BF=9B=E8=A1=
=8C=E6=B6=88=E6=81=AF=E7=9A=84=E5=88=86=E9=85=8D=E3=80=82=E4=B9=9F=E5=8F=AF=
=E4=BB=A5=E9=85=8D=E7=BD=AE=E6=88=90=E4=B8=BA=E6=99=BA=E8=83=BD=E8=B4=9F=E8=
=BD=BD=E5=9D=87=E8=A1=A1=E6=A8=A1=E5=BC=8F=EF=BC=8C=E5=8D=B3=E5=8F=AA=E5=B0=
=86=E6=B6=88=E6=81=AF=E5=88=86=E9=85=8D=E5=88=B0=E6=9C=89=E5=90=88=E9=80=82=
=E6=8E=A5=E6=94=B6=E8=80=85=E7=9A=84=E8=8A=82=E7=82=B9=E4=B8=8A=E3=80=82=E8=
=BF=99=E4=B8=A4=E7=A7=8D=E6=A8=A1=E5=BC=8F=E6=88=91=E4=BB=AC
+ =E9=83=BD=E5=B0=86=E4=B8=BE=E4=BE=8B=E8=AF=B4=E6=98=8E=E3=80=
=82=E9=A6=96=E5=85=88=E6=88=91=E4=BB=AC=E5=85=88=E4=BB=8B=E7=BB=8D=E4=B8=80=
=E8=88=AC=E7=9A=84=E9=9B=86=E7=BE=A4=E8=BF=9E=E6=8E=A5=E9=85=8D=E7=BD=AE=E3=
=80=82
- Configuring Cluster Connections
- Cluster connections group servers into clusters so that =
messages can be load
- balanced between the nodes of the cluster. Let's take a lo=
ok at a typical cluster
- connection. Cluster connections are always defined in hornetq-configuration.xml inside a cluster-connection
- element. There can be zero or more cluster connections def=
ined per HornetQ
- server.
+ =E9=85=8D=E7=BD=AE=E9=9B=86=E7=BE=A4=E8=BF=9E=E6=8E=A5<=
/title>
+ =E9=9B=86=E7=BE=A4=E8=BF=9E=E6=8E=A5=E5=B0=86=E4=B8=80=
=E7=BB=84=E6=9C=8D=E5=8A=A1=E5=99=A8=E8=BF=9E=E6=8E=A5=E6=88=90=E4=B8=BA=E4=
=B8=80=E4=B8=AA=E9=9B=86=E7=BE=A4=EF=BC=8C=E6=B6=88=E6=81=AF=E5=8F=AF=E4=BB=
=A5=E5=9C=A8=E9=9B=86=E7=BE=A4=E7=9A=84=E8=8A=82=E7=82=B9=E4=B9=8B=E9=97=B4=
=E8=BF=9B=E8=A1=8C=E8=B4=9F=E8=BD=BD=E5=9D=87=E8=A1=A1=E3=80=82=E9=9B=86=E7=
=BE=A4=E8=BF=9E=E6=8E=A5=E7=9A=84=E9=85=8D=E7=BD=AE=E5=9C=A8
+ hornetq-configuration.xml=E6=96=87=E4=
=BB=B6=E4=B8=AD=E7=9A=84
+ cluster-connection=E5=86=85=E3=80=82=E4=
=B8=80=E4=B8=AAHornetQ=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=8F=AF=E4=BB=A5=E6=9C=
=89=E9=9B=B6=E4=B8=AA=E6=88=96=E5=A4=9A=E4=B8=AA=E9=9B=86=E7=BE=A4=E8=BF=9E=
=E6=8E=A5=E3=80=82
+ =E4=B8=8B=E9=9D=A2=E6=98=AF=E4=B8=80=E4=B8=AA=E5=85=B8=E5=
=9E=8B=E7=9A=84=E4=BE=8B=E5=AD=90=EF=BC=9A
<cluster-connections>
<cluster-connection name=3D"my-cluster">
@@ -333,140 +249,96 @@
</cluster-connection>
</cluster-connections> =
- In the above cluster connection all parameters have been=
explicitly specified. In
- practice you might use the defaults for some.
+ =E4=B8=8A=E9=9D=A2=E7=BB=99=E5=87=BA=E4=BA=86=E9=9B=86=
=E7=BE=A4=E8=BF=9E=E6=8E=A5=E7=9A=84=E6=89=80=E6=9C=89=E5=8F=AF=E9=85=8D=E7=
=BD=AE=E5=8F=82=E6=95=B0=E3=80=82=E5=9C=A8=E5=AE=9E=E9=99=85=E5=BA=94=E7=94=
=A8=E4=B8=AD=E6=9C=89=E4=BA=9B=E4=BD=A0=E5=8F=AF=E4=BB=A5=E4=BD=BF=E7=94=A8=
=E9=BB=98=E8=AE=A4=E5=80=BC=EF=BC=8C=E4=B8=8D=E5=BF=85=E5=85=A8=E9=83=A8=E7=
=BB=99=E5=87=BA=E3=80=82
- address. Each cluster connect=
ion only applies to
- messages sent to an address that starts with this =
value.
- In this case, this cluster connection will load =
balance messages sent to
- address that start with jms. Th=
is cluster connection,
- will, in effect apply to all JMS queue and topic s=
ubscriptions since they
- map to core queues that start with the substring "=
jms".
- The address can be any value and you can have ma=
ny cluster connections
- with different values of address, simultaneously
- balancing messages for those addresses, potentiall=
y to different clusters of
- servers. By having multiple cluster connections on=
different addresses a
- single HornetQ Server can effectively take part in=
multiple clusters
- simultaneously.
- By careful not to have multiple cluster connecti=
ons with overlapping
- values of address, e.g. "europe=
" and "europe.news" since
- this could result in the same messages being distr=
ibuted between more than
- one cluster connection, possibly resulting in dupl=
icate deliveries.
- This parameter is mandatory.
+ address=E3=80=82=E6=AF=8F=E4=
=B8=AA=E9=9B=86=E7=BE=A4=E8=BF=9E=E6=8E=A5=E5=8F=AA=E6=9C=8D=E5=8A=A1=E4=BA=
=8E=E5=8F=91=E9=80=81=E5=88=B0=E4=BB=A5=E8=BF=99=E4=B8=AA=E5=8F=82=E6=95=B0=
=E7=9A=84=E5=80=BC=E4=B8=BA=E5=BC=80=E5=A7=8B=E7=9A=84
+ =E5=9C=B0=E5=9D=80=E7=9A=84=E6=B6=88=E6=81=AF=E3=
=80=82
+ =E6=9C=AC=E4=BE=8B=E4=B8=AD=E7=9A=84=E9=9B=86=E7=
=BE=A4=E8=BF=9E=E6=8E=A5=E5=8F=AA=E5=AF=B9=E5=8F=91=E5=BE=80=E4=BB=A5jms=E4=B8=BA=E5=BC=80=E5=A7=8B=E7=9A=84=E5=9C=B0=E5=9D=80=E7=
=9A=84=E6=B6=88=E6=81=AF=E8=BF=9B=E8=A1=8C=E8=B4=9F=E8=BD=BD=E5=9D=87=E8=A1=
=A1=E7=9A=84
+ =E5=A4=84=E7=90=86=E3=80=82=E8=BF=99=E4=B8=AA=E9=
=9B=86=E7=BE=A4=E8=BF=9E=E6=8E=A5=E5=AE=9E=E9=99=85=E4=B8=8A=E8=83=BD=E5=A4=
=9F=E5=A4=84=E7=90=86=E6=89=80=E6=9C=89JMS=E9=98=9F=E5=88=97=E5=92=8C=E8=AF=
=9D=E9=A2=98=E7=9A=84=E8=AE=A2=E9=98=85=E4=B8=AD=E7=9A=84=E6=B6=88=E6=81=AF=
=EF=BC=8C=E8=BF=99=E6=98=AF=E5=9B=BD=E4=B8=BA=E6=89=80=E6=9C=89JMS=E7=9A=84=
=E9=98=9F=E5=88=97
+ =E6=88=96=E8=AE=A2=E9=98=85=E9=83=BD=E6=98=A0=E5=
=B0=84=E5=88=B0=E5=86=85=E6=A0=B8=E4=B8=AD=E4=BB=A5=E2=80=9Cjms=E2=80=9C=E5=
=BC=80=E5=A4=B4=E7=9A=84=E9=98=9F=E5=88=97=E3=80=82
+ =E8=BF=99=E4=B8=AA=E5=9C=B0=E5=9D=80=E5=8F=AF=E4=
=BB=A5=E4=B8=BA=E4=BB=BB=E4=BD=95=E5=80=BC=EF=BC=8C=E8=80=8C=E4=B8=94=E5=8F=
=AF=E4=BB=A5=E9=85=8D=E7=BD=AE=E5=A4=9A=E4=B8=AA=E9=9B=86=E7=BE=A4=E8=BF=9E=
=E6=8E=A5=EF=BC=8C=E6=AF=8F=E4=B8=AA=E8=BF=9E=E6=8E=A5=E7=9A=84=E5=9C=B0=E5=
=9D=80=E5=80=BC=E5=8F=AF=E4=BB=A5=E4=B8=8D=E5=90=8C=E3=80=82=E8=BF=99=E6=A0=
=B7HornetQ
+ =E5=8F=AF=E4=BB=A5=E5=90=8C=E6=97=B6=E5=AF=B9=E4=
=B8=8D=E5=90=8C=E5=9C=B0=E5=9D=80=E5=90=8C=E6=97=B6=E8=BF=9B=E8=A1=8C=E6=B6=
=88=E6=81=AF=E7=9A=84=E8=B4=9F=E8=BD=BD=E5=9D=87=E8=A1=A1=E3=80=82=E6=9C=89=
=E7=9A=84=E5=9C=B0=E5=9D=80=E7=94=9A=E8=87=B3=E5=8F=AF=E8=83=BD=E5=9C=A8=E5=
=85=B6=E5=AE=83=E9=9B=86=E7=BE=A4=E7=9A=84=E8=8A=82=E7=82=B9=E4=B8=AD=E3=80=
=82=E8=BF=99=E4=B9=9F=E5=B0=B1=E6=84=8F=E8=B0=93=E7=9D=80
+ =E4=B8=80=E4=B8=AAHornetQ=E6=9C=8D=E5=8A=A1=E5=99=
=A8=E5=8F=AF=E4=BB=A5=E5=90=8C=E6=97=B6=E5=8F=82=E4=B8=8E=E5=88=B0=E5=A4=9A=
=E4=B8=AA=E9=9B=86=E7=BE=A4=E4=B8=AD=E3=80=82
+ =E8=A6=81=E6=B3=A8=E6=84=8F=E5=88=AB=E9=80=A0=E6=
=88=90=E5=A4=9A=E4=B8=AA=E9=9B=86=E7=BE=A4=E8=BF=9E=E6=8E=A5=E7=9A=84=E5=9C=
=B0=E5=9D=80=E4=BA=92=E7=9B=B8=E9=87=8D=E5=A4=8D=E3=80=82=E6=AF=94=E5=A6=82=
=EF=BC=8C=E5=9C=B0=E5=9D=80=E2=80=9Ceurope=E2=80=9C=E5=92=8C=E2=80=9Deurope=
.news=E2=80=9C=E5=B0=B1=E4=BA=92=E7=9B=B8=E9=87=8D=E5=A4=8D=EF=BC=8C
+ =E5=B0=B1=E4=BC=9A=E9=80=A0=E6=88=90=E5=90=8C=E4=
=B8=80=E4=B8=AA=E6=B6=88=E6=81=AF=E4=BC=9A=E8=A2=AB=E5=A4=9A=E4=B8=AA=E9=9B=
=86=E7=BE=A4=E8=BF=9E=E6=8E=A5=E8=BF=9B=E8=A1=8C=E5=88=86=E9=85=8D=EF=BC=8C=
=E8=BF=99=E6=A0=B7=E6=9C=89=E5=8F=AF=E8=83=BD=E5=8F=91=E7=94=9F=E9=87=8D=E5=
=A4=8D=E4=BC=A0=E9=80=92=E3=80=82
+ =E6=9C=AC=E5=8F=82=E6=95=B0=E6=98=AF=E5=BF=85=E9=
=A1=BB=E6=8C=87=E5=AE=9A=E7=9A=84=E3=80=82
- retry-interval. We mentioned =
before that, internally,
- cluster connections cause bridges to be created be=
tween the nodes of the
- cluster. If the cluster connection is created and =
the target node has not
- been started, or say, is being rebooted, then the =
cluster connections from
- other nodes will retry connecting to the target un=
til it comes back up, in
- the same way as a bridge does.
- This parameter determines the interval in millis=
econds between retry
- attempts. It has the same meaning as the =
retry-interval
- on a bridge (as described in ).
- This parameter is optional and its default value=
is 500
- milliseconds.
+ retry-interval=E3=80=82=E5=A6=
=82=E5=89=8D=E6=89=80=E8=BF=B0=EF=BC=8C=E4=B8=80=E4=B8=AA=E9=9B=86=E7=BE=A4=
=E8=BF=9E=E6=8E=A5=E5=AE=9E=E9=99=85=E4=B8=8A=E5=9C=A8=E5=86=85=E9=83=A8=E6=
=98=AF=E7=94=A8=E6=A1=A5=E5=B0=86=E4=B8=A4
+ =E4=B8=AA=E8=8A=82=E7=82=B9=E8=BF=9E=E6=8E=A5=E8=
=B5=B7=E6=9D=A5=E3=80=82=E5=A6=82=E6=9E=9C=E9=9B=86=E7=BE=A4=E8=BF=9E=E6=8E=
=A5=E5=B7=B2=E7=BB=8F=E5=88=9B=E5=BB=BA=E4=BD=86=E6=98=AF=E7=9B=AE=E7=9A=84=
=E8=8A=82=E7=82=B9=E8=BF=98=E6=9C=AA=E5=90=AF=E5=8A=A8=EF=BC=8C=E6=88=96=E6=
=AD=A3=E5=9C=A8=E9=87=8D=E5=90=AF=EF=BC=8C=E8=BF=99=E6=97=B6=E9=9B=86=E7=BE=
=A4=E8=BF=9E=E6=8E=A5=E5=B0=B1=E4=BC=9A=E4=B8=8D=E6=96=AD
+ =E9=87=8D=E8=AF=95=E4=B8=8E=E8=BF=99=E4=B8=AA=E8=
=8A=82=E7=82=B9=E7=9A=84=E8=BF=9E=E6=8E=A5=EF=BC=8C=E7=9B=B4=E5=88=B0=E8=8A=
=82=E7=82=B9=E5=90=AF=E5=8A=A8=E5=AE=8C=E6=AF=95=E8=BF=9E=E6=8E=A5=E6=88=90=
=E5=8A=9F=E4=B8=BA=E6=AD=A2=E3=80=82
+ =E8=BF=99=E4=B8=AA=E5=8F=82=E6=95=B0=E5=86=B3=E5=
=AE=9A=E4=BA=86=E4=B8=A4=E6=AC=A1=E9=87=8D=E8=AF=95=E4=B9=8B=E9=97=B4=E7=9A=
=84=E6=97=B6=E9=97=B4=E9=97=B4=E9=9A=94=EF=BC=8C=E5=8D=95=E4=BD=8D=E6=98=AF=
=E6=AF=AB=E7=A7=92=E3=80=82=E5=AE=83=E4=B8=8E=E6=A1=A5=E7=9A=84=E5=8F=82=E6=
=95=B0retry-interval
+ =E7=9A=84=E5=90=AB=E4=B9=89=E7=9B=B8=E5=90=8C=EF=
=BC=88=E5=8F=82=E8=A7=81=EF=BC=89=E3=80=82=
+ =E8=BF=99=E4=B8=AA=E5=8F=82=E6=95=B0=E6=98=AF=E5=
=8F=AF=E9=80=89=E7=9A=84=EF=BC=8C=E9=BB=98=E8=AE=A4=E5=80=BC=E6=98=AF500=E6=AF=AB=E7=A7=92=E3=80=82
- use-duplicate-detection. Inte=
rnally cluster connections
- use bridges to link the nodes, and bridges can be =
configured to add a
- duplicate id property in each message that is forw=
arded. If the target node
- of the bridge crashes and then recovers, messages =
might be resent from the
- source node. By enabling duplicate detection any d=
uplicate messages will be
- filtered out and ignored on receipt at the target =
node.
- This parameter has the same meaning as use-duplicate-detection on a bridge=
. For more information on
- duplicate detection, please see .
- This parameter is optional and has a default val=
ue of true.
+ use-duplicate-detection=E3=80=
=82=E9=9B=86=E7=BE=A4=E8=BF=9E=E6=8E=A5=E4=BD=BF=E7=94=A8=E6=A1=A5=E6=9D=A5=
=E8=BF=9E=E6=8E=A5=E5=90=84=E8=8A=82=E7=82=B9=EF=BC=8C=E8=80=8C=E6=A1=A5=E5=
=8F=AF=E4=BB=A5
+ =E9=80=9A=E8=BF=87=E9=85=8D=E7=BD=AE=E5=90=91=E6=
=AF=8F=E4=B8=AA=E8=BD=AC=E5=8F=91=E7=9A=84=E6=B6=88=E6=81=AF=E6=B7=BB=E5=8A=
=A0=E4=B8=80=E4=B8=AA=E9=87=8D=E5=A4=8Did=E7=9A=84=E5=B1=9E=E6=80=A7=E3=80=
=82=E5=A6=82=E6=9E=9C=E7=9B=AE=E7=9A=84=E8=8A=82=E7=82=B9=E5=B4=A9=E6=BA=83=
=E5=B9=B6=E9=87=8D=E5=90=AF=EF=BC=8C=E6=B6=88=E6=81=AF=E5=8F=AF=E4=BB=A5=E8=
=A2=AB=E9=87=8D=E6=96=B0=E5=8F=91=E9=80=81=E3=80=82
+ =E9=87=8D=E5=A4=8D=E6=A3=80=E6=B5=8B=E7=9A=84=E5=
=8A=9F=E8=83=BD=E5=B0=B1=E6=98=AF=E5=9C=A8=E8=BF=99=E7=A7=8D=E6=83=85=E5=86=
=B5=E4=B8=8B=E5=B0=86=E9=87=8D=E5=A4=8D=E5=8F=91=E9=80=81=E7=9A=84=E6=B6=88=
=E6=81=AF=E8=BF=9B=E8=A1=8C=E8=BF=87=E6=BB=A4=E5=B9=B6=E4=B8=A2=E5=BC=83=E3=
=80=82
+ =E8=BF=99=E4=B8=AA=E5=8F=82=E6=95=B0=E4=B8=8E=E6=
=A1=A5=E7=9A=84=E5=8F=82=E6=95=B0use-duplicate-detection=E7=9B=B8=E5=
=90=8C=E3=80=82=E5=85=B3=E4=BA=8E=E9=87=8D=E5=A4=8D=E6=A3=80=E6=B5=8B=E7=9A=
=84=E6=9B=B4=E5=A4=9A=E4=BF=A1=E6=81=AF=EF=BC=8C=E8=AF=B7=E5=8F=82=E8=A7=81
+ =E3=80=82=
para>
+ =E8=BF=99=E5=8F=82=E6=95=B0=E6=98=AF=E5=8F=AF=E9=
=80=89=E7=9A=84=EF=BC=8C=E9=BB=98=E8=AE=A4=E5=80=BC=E6=98=AFtrue=
literal>=E3=80=82
- forward-when-no-consumers. Th=
is parameter determines
- whether messages will be distributed round robin b=
etween other nodes of the
- cluster irrespective of wheth=
er there are matching or
- indeed any consumers on other nodes.
- If this is set to true then e=
ach incoming message will
- be round robin'd even though the same queues on th=
e other nodes of the
- cluster may have no consumers at all, or they may =
have consumers that have
- non matching message filters (selectors). Note tha=
t HornetQ will
- not forward messages to o=
ther nodes if there are no
- queues of the same name o=
n the other nodes, even if
- this parameter is set to true.<=
/para>
- If this is set to false then =
HornetQ will only
- forward messages to other nodes of the cluster if =
the address to which they
- are being forwarded has queues which have consumer=
s, and if those consumers
- have message filters (selectors) at least one of t=
hose selectors must match
- the message.
- This parameter is optional, the default value is=
false.
+ forward-when-no-consumers=E3=
=80=82=E8=BF=99=E4=B8=AA=E5=8F=82=E6=95=B0=E5=86=B3=E5=AE=9A=E4=BA=86=E6=98=
=AF=E5=90=A6=E5=90=91=E6=B2=A1=E6=9C=89=E5=90=88=E9=80=82=E6=8E=A5=E6=94=B6=
=E8=80=85
+ =E7=9A=84=E8=8A=82=E7=82=B9=E5=88=86=E9=85=8D=E6=
=B6=88=E6=81=AF=E3=80=82=E5=8D=B3=E4=B8=8D=E7=AE=A1=E6=9C=89=E6=B2=A1=E6=9C=
=89=E5=90=88=E9=80=82=E7=9A=84=E6=8E=A5=E6=94=B6=E8=80=85=EF=BC=8C=E6=B6=88=
=E6=81=AF=E5=9C=A8=E6=89=80=E6=9C=89=E7=9A=84=E8=8A=82=E7=82=B9=E9=97=B4=E8=
=BD=AE=E6=B5=81=E5=88=86=E9=85=8D=E3=80=82
+ =E5=A6=82=E6=9E=9C=E8=BF=99=E4=B8=AA=E5=8F=82=E6=
=95=B0=E8=AE=BE=E4=B8=BAtrue=EF=BC=8C=E5=88=99=E6=B6=88=
=E6=81=AF=E5=B0=B1=E4=BC=9A=E8=BD=AE=E6=B5=81=E5=9C=A8=E6=AF=8F=E4=B8=AA=E8=
=8A=82=E7=82=B9=E9=97=B4=E5=88=86=E9=85=8D=EF=BC=8C=E4=B8=8D=E7=AE=A1=E6=98=
=AF=E5=90=A6
+ =E8=8A=82=E7=82=B9=E4=B8=8A=E6=9C=89=E6=B2=A1=E6=
=9C=89=E7=9B=B8=E5=BA=94=E7=9A=84=E6=8E=A5=E6=94=B6=E8=80=85=EF=BC=88=E6=88=
=96=E8=80=85=E6=9C=89=E6=8E=A5=E6=94=B6=E8=80=85=E4=BD=86=E6=98=AF=E5=85=B7=
=E6=9C=89=E4=B8=8D=E5=8C=B9=E9=85=8D=E7=9A=84=E9=80=89=E6=8B=A9=E5=99=A8=EF=
=BC=89=E3=80=82=E6=B3=A8=E6=84=8F=EF=BC=8C=E5=A6=82=E6=9E=9C=E5=85=B6=E5=AE=
=83=E8=8A=82=E7=82=B9=E4=B8=AD=E6=B2=A1=E6=9C=89
+ =E4=B8=8E=E6=9C=AC=E8=8A=82=E7=82=B9=E5=90=8C=E5=
=90=8D=E7=9A=84=E9=98=9F=E5=88=97=EF=BC=8CHornetQ=E4=B8=8D=E4=BC=9A=E5=B0=
=86=E6=B6=88=E6=81=AF=E8=BD=AC=E5=8F=91=E5=88=B0=E9=82=A3=E4=BA=9B=E8=8A=82=
=E7=82=B9=E4=B8=AD=E5=8E=BB=EF=BC=8C=E4=B8=8D=E5=8F=97=E6=9C=AC=E5=8F=82=E6=
=95=B0=E7=9A=84=E9=99=90=E5=88=B6=E3=80=82
+ =E5=A6=82=E6=9E=9C=E5=8F=82=E6=95=B0=E8=AE=BE=E4=
=B8=BAfalse=EF=BC=8C HornetQ=E4=B8=AD=E5=B0=86=E6=B6=88=
=E6=81=AF=E8=BD=AC=E5=8F=91=E5=88=B0=E9=9B=86=E7=BE=A4=E4=B8=AD=E9=82=A3=E4=
=BA=9B=E6=9C=89=E7=9D=80=E9=80=82=E5=90=88=E6=8E=A5=E6=94=B6=E8=80=85
+ =E7=9A=84=E8=8A=82=E7=82=B9=E4=B8=AD=E3=80=82=E5=
=A6=82=E6=9E=9C=E6=8E=A5=E6=94=B6=E8=80=85=E6=9C=89=E9=80=89=E6=8B=A9=E5=99=
=A8=EF=BC=8C=E5=88=99=E8=87=B3=E5=B0=91=E6=9C=89=E4=B8=80=E4=B8=AA=E9=80=89=
=E6=8B=A9=E5=99=A8=E4=B8=8E=E6=89=80=E8=BD=AC=E5=8F=91=E7=9A=84=E6=B6=88=E6=
=81=AF=E5=8C=B9=E9=85=8D=E6=89=8D=E5=8F=AF=EF=BC=8C=E5=90=A6=E5=88=99=E4=B8=
=8D=E8=BD=AC=E5=8F=91=E3=80=82
+ =E6=9C=AC=E5=8F=82=E6=95=B0=E6=98=AF=E5=8F=AF=E9=
=80=89=E7=9A=84=EF=BC=8C=E9=BB=98=E8=AE=A4=E5=80=BC=E6=98=AFfalse<=
/literal>=E3=80=82
- max-hops. When a cluster conn=
ection decides the set of
- nodes to which it might load balance a message, th=
ose nodes do not have to
- be directly connected to it via a cluster connecti=
on. HornetQ can be
- configured to also load balance messages to nodes =
which might be connected
- to it only indirectly with other HornetQ servers a=
s intermediates in
- a chain.
- This allows HornetQ to be configured in more com=
plex topologies
- and still provide message load balancing. We'll di=
scuss this more later in
- this chapter.
- The default value for this parameter is 1, which means
- messages are only load balanced to other HornetQ s=
erves which are
- directly connected to this server. This parameter =
is optional.
+ max-hops=E3=80=82=E5=BD=93=E4=
=B8=80=E4=B8=AA=E9=9B=86=E7=BE=A4=E8=BF=9E=E6=8E=A5=E5=9C=A8=E7=A1=AE=E5=AE=
=9A=E8=BF=9B=E8=A1=8C=E6=B6=88=E6=81=AF=E8=B4=9F=E8=BD=BD=E5=9D=87=E8=A1=A1=
=E7=9A=84=E8=8A=82=E7=82=B9=E7=BB=84=E6=97=B6=EF=BC=8C=E8=BF=99=E4=BA=9B
+ =E8=8A=82=E7=82=B9=E4=B8=8D=E4=B8=80=E5=AE=9A=E6=
=98=AF=E4=B8=8E=E6=9C=AC=E8=8A=82=E7=82=B9=E7=9B=B4=E6=8E=A5=E7=9B=B8=E8=BF=
=9E=E7=9A=84=E8=8A=82=E7=82=B9=E3=80=82HornetQ=E5=8F=AF=E4=BB=A5=E9=80=9A=
=E8=BF=87=E5=85=B6=E5=AE=83HornetQ=E8=8A=82=E7=82=B9=E4=BD=9C=E4=B8=BA=E4=
=B8=AD=E4=BB=8B=E5=90=91=E9=82=A3=E4=BA=9B=E9=9D=9E=E7=9B=B4=E6=8E=A5=E7=9B=
=B8
+ =E8=BF=9E=E7=9A=84=E8=8A=82=E7=82=B9=E8=BD=AC=E5=
=8F=91=E6=B6=88=E6=81=AF=E3=80=82
+ =E8=BF=99=E6=A0=B7=E5=8F=AF=E4=BB=A5=E4=BD=BFHor=
netQ=E7=BB=84=E6=88=90=E6=9B=B4=E5=8A=A0=E5=A4=8D=E6=9D=82=E7=9A=84=E6=8B=
=93=E6=89=91=E7=BB=93=E6=9E=84=E5=B9=B6=E4=B8=94=E4=BB=8D=E5=8F=AF=E6=8F=90=
=E4=BE=9B=E6=B6=88=E6=81=AF=E7=9A=84=E8=B4=9F=E8=BD=BD=E5=9D=87=E8=A1=A1=E3=
=80=82=E5=9C=A8=E6=9C=AC=E7=AB=A0=E7=9A=84=E5=90=8E=E9=9D=A2=E6=88=91=E4=BB=
=AC=E8=BF=98=E8=A6=81=E4=BD=9C
+ =E8=BF=9B=E4=B8=80=E6=AD=A5=E7=9A=84=E8=AE=A8=E8=
=AE=BA=E3=80=82
+ =E6=9C=AC=E5=8F=82=E6=95=B0=E6=98=AF=E5=8F=AF=E9=
=80=89=E5=8F=82=E6=95=B0=EF=BC=8C=E5=AE=83=E7=9A=84=E9=BB=98=E8=AE=A4=E5=80=
=BC=E6=98=AF 1=EF=BC=8C=E8=A1=A8=E7=A4=BA=E6=B6=88=E6=81=
=AF=E5=8F=AA=E5=90=91=E7=9B=B4=E6=8E=A5=E7=9B=B8=E8=BF=9E=E7=9A=84=E8=8A=82=
=E7=82=B9=E8=BF=9B=E8=A1=8C=E8=B4=9F=E8=BD=BD=E5=9D=87=E8=A1=A1=E3=80=82
- discovery-group-ref. This par=
ameter determines which
- discovery group is used to obtain the list of othe=
r servers in the cluster
- that this cluster connection will make connections=
to.
+ discovery-group-ref=E3=80=82=
=E8=BF=99=E4=B8=AA=E5=8F=82=E6=95=B0=E5=86=B3=E5=AE=9A=E4=BA=86=E4=BD=BF=E7=
=94=A8=E5=93=AA=E4=B8=AA=E5=8F=91=E7=8E=B0=E7=BB=84=E6=9D=A5=E8=8E=B7=E5=BE=
=97=E9=9B=86=E7=BE=A4=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=9A=84=E5=88=97=E8=A1=A8=
=E3=80=82
+ =E9=9B=86=E7=BE=A4=E8=BF=9E=E6=8E=A5=E4=B8=8E=E5=
=88=97=E8=A1=A8=E4=B8=AD=E7=9A=84=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=BB=BA=E7=AB=
=8B=E8=BF=9E=E6=8E=A5=E3=80=82
- Cluster User Credentials
+ =E9=9B=86=E7=BE=A4=E7=94=A8=E6=88=B7=E7=9A=84=E5=AE=89=
=E5=85=A8=E4=BF=A1=E6=81=AF
=
- When creating connections between nodes of a cluster to =
form a cluster connection,
- HornetQ uses a cluster user and cluster password which is =
defined in hornetq-configuration.xml:
+ =E5=BD=93=E9=9B=86=E7=BE=A4=E4=B8=AD=E4=B8=A4=E4=B8=AA=
=E8=8A=82=E7=82=B9=E5=BB=BA=E7=AB=8B=E8=BF=9E=E6=8E=A5=E6=97=B6=EF=BC=8CHor=
netQ=E4=BD=BF=E7=94=A8=E4=B8=80=E4=B8=AA=E9=9B=86=E7=BE=A4=E7=94=A8=E6=88=
=B7=E5=92=8C=E9=9B=86=E7=BE=A4=E5=AF=86=E7=A0=81=E3=80=82=E5=AE=83=E4=BB=AC=
=E5=AE=9A=E4=B9=89=E5=9C=A8
+ hornetq-configuration.xml=E6=96=87=E4=
=BB=B6=E4=B8=AD=EF=BC=9A
<cluster-user>HORNETQ.CLUSTER.ADMIN.USER</cluster=
-user>
<cluster-password>CHANGE ME!!</cluster-password&g=
t;
- It is imperative that these values are changed =
from their default, or remote clients will be able to make connections
- to the server using the default values. If they are not
- changed from the default, HornetQ will detect this and pes=
ter you with a warning on every
- start-up.
+ =E5=BC=BA=E7=83=88=E5=BB=BA=E8=AE=AE=E5=9C=A8=
=E5=AE=9E=E9=99=85=E5=BA=94=E7=94=A8=E4=B8=AD=E4=B8=8D=E8=A6=81=E4=BD=BF=E7=
=94=A8=E9=BB=98=E8=AE=A4=E7=9A=84=E5=80=BC=EF=BC=8C=E5=90=A6=E5=88=99=E4=BB=
=BB=E6=84=8F=E8=BF=9C=E7=A8=8B=E5=AE=A2=E6=88=B7=E7=AB=AF=E4=BC=9A=E4=BD=BF=
=E7=94=A8=E8=BF=99=E4=BA=9B=E9=BB=98=E8=AE=A4=E5=80=BC=E8=BF=9E=E6=8E=A5=E5=
=88=B0=E6=9C=8D=E5=8A=A1=E5=99=A8=E4=B8=8A=E3=80=82=E5=BD=93=E4=BD=BF=E7=94=
=A8=E9=BB=98=E8=AE=A4=E5=80=BC=E6=97=B6=EF=BC=8C
+ HornetQ=E4=BC=9A=E6=A3=80=E6=B5=8B=E5=88=B0=E5=B9=B6=E5=9C=
=A8=E6=AF=8F=E6=AC=A1=E5=90=AF=E5=8A=A8=E7=9A=84=E6=97=B6=E5=80=99=E7=BB=99=
=E5=87=BA=E8=AD=A6=E5=91=8A=E3=80=82
- Client-Side Load balancing
- With HornetQ client-side load balancing, subsequent =
- sessions created using a single session factory can be connect=
ed to different nodes of the
- cluster. This allows sessions to spread smoothly across the no=
des of a cluster and
- not be "clumped" on any particular node.
- The load balancing policy to be used by the client factory i=
s configurable. HornetQ
- provides two out-of-the-box load balancing policies and you ca=
n also implement
- your own and use that.
- The out-of-the-box policies are
+ =E5=AE=A2=E6=88=B7=E7=AB=AF=E8=B4=9F=E8=BD=BD=E5=9D=87=E8=
=A1=A1
+ HornetQ=E7=9A=84=E5=AE=A2=E6=88=B7=E7=AB=AF=E8=B4=9F=E8=BD=
=BD=E5=9D=87=E8=A1=A1=E4=BD=BF=E5=90=8C=E4=B8=80=E4=B8=AA=E4=BC=9A=E8=AF=9D=
=E5=B7=A5=E5=8E=82=E6=AF=8F=E6=AC=A1=E5=88=9B=E5=BB=BA=E4=B8=80=E4=B8=AA=E4=
=BC=9A=E8=AF=9D=E6=97=B6=EF=BC=8C=E9=83=BD=E8=BF=9E=E6=8E=A5=E5=88=B0=E9=9B=
=86=E7=BE=A4=E4=B8=8D=E5=90=8C=E7=9A=84=E8=8A=82=E7=82=B9=E4=B8=8A=E3=80=82=
=E8=BF=99=E6=A0=B7=E5=8F=AF=E4=BB=A5=E4=BD=BF=E6=89=80=E7=9A=84=E6=9C=89=E4=
=BC=9A=E8=AF=9D
+ =E5=9D=87=E5=8C=80=E5=88=86=E5=B8=83=E5=9C=A8=E9=9B=86=E7=BE=
=A4=E7=9A=84=E5=90=84=E4=B8=AA=E8=8A=82=E7=82=B9=E4=B8=8A=EF=BC=8C=E8=80=8C=
=E4=B8=8D=E4=BC=9A=E2=80=98=E6=8B=A5=E6=8C=A4=E2=80=99=E5=88=B0=E6=9F=90=E4=
=B8=80=E4=B8=AA=E8=8A=82=E7=82=B9=E4=B8=8A=E3=80=82
+ =E5=AE=A2=E6=88=B7=E7=AB=AF=E8=B4=9F=E8=BD=BD=E5=9D=87=E8=A1=
=A1=E7=9A=84=E7=AD=96=E7=95=A5=E6=98=AF=E5=8F=AF=E9=85=8D=E7=BD=AE=E7=9A=84=
=E3=80=82HornetQ=E6=8F=90=E4=BE=9B=E4=B8=A4=E7=A7=8D=E7=8E=B0=E6=88=90=E7=
=9A=84=E8=B4=9F=E8=BD=BD=E5=9D=87=E8=A1=A1=E7=AD=96=E7=95=A5=E3=80=82=E4=BD=
=A0=E4=B9=9F=E5=8F=AF=E4=BB=A5=E5=AE=9E=E7=8E=B0=E8=87=AA=E5=B7=B1=E7=9A=84=
=E7=AD=96=E7=95=A5=E3=80=82
+ =E4=B8=A4=E7=A7=8D=E7=8E=B0=E6=88=90=E7=9A=84=E7=AD=96=E7=95=
=A5=E6=98=AF=EF=BC=9A
- Round Robin. With this policy the first node is chos=
en randomly then each
- subsequent node is chosen sequentially in the same ord=
er.
- For example nodes might be chosen in the order B, C,=
D, A, B, C, D, A, B or D,
- A, B, C, A, B, C, D, A or C, D, A, B, C, D, A, B, C, D=
, A.
+ =E8=BD=AE=E6=B5=81=E7=AD=96=E7=95=A5=EF=BC=88Round R=
obin=EF=BC=89=E3=80=82=E8=BF=99=E4=B8=AA=E7=AD=96=E7=95=A5=E6=98=AF=E5=85=
=88=E9=9A=8F=E6=9C=BA=E9=80=89=E6=8B=A9=E4=B8=80=E4=B8=AA=E8=8A=82=E7=82=B9=
=E4=BD=9C=E4=B8=BA=E7=AC=AC=E4=B8=80=E4=B8=AA=E8=8A=82=E7=82=B9=EF=BC=8C=E7=
=84=B6=E5=90=8E=E4=BE=9D=E6=AC=A1=E9=80=89=E6=8B=A9=E5=90=84=E4=B8=AA=E8=8A=
=82=E7=82=B9=E3=80=82
+ =E4=BE=8B=E5=A6=82=E4=B8=80=E4=B8=AA=E9=A1=BA=E5=BA=
=8F=E5=8F=AF=E8=83=BD=E6=98=AF B, C, D, A, B, C, D, A, B=EF=BC=8C=E5=8F=A6=
=E4=B8=80=E4=B8=AA=E4=B9=9F=E5=8F=AF=E8=83=BD=E6=98=AF D,
+ A, B, C, D=EF=BC=8CA, B, C, D, A =E6=88=96=E8=80=85 C,=
D, A, B, C, D, A, B, C, D, A=E7=AD=89=E7=AD=89=E3=80=82
- Random. With this policy each node is chosen randoml=
y.
+ =E9=9A=8F=E6=9C=BA=E7=AD=96=E7=95=A5=E3=80=82=E6=AF=
=8F=E6=AC=A1=E9=83=BD=E6=98=AF=E9=9A=8F=E6=9C=BA=E9=80=89=E6=8B=A9=E4=B8=80=
=E4=B8=AA=E8=8A=82=E7=82=B9=E6=9D=A5=E5=BB=BA=E7=AB=8B=E4=BC=9A=E8=AF=9D=E3=
=80=82
- You can also implement your own policy by implementing the i=
nterface org.hornetq.api.core.client.loadbalance.ConnectionLoadBal=
ancingPolicy
- Specifying which load balancing policy to use differs whethe=
r you are using JMS or the
- core API. If you don't specify a policy then the default will =
be used which is =E4=BD=A0=E5=8F=AF=E4=BB=A5=E5=AE=9E=E7=8E=B0=E8=87=AA=E5=B7=
=B1=E7=9A=84=E7=AD=96=E7=95=A5=E3=80=82=E5=8F=AA=E9=9C=80=E8=A6=81=E5=AE=9E=
=E7=8E=B0=E6=8E=A5=E5=8F=A3org.hornetq.api.core.client.loadbalance.ConnectionLoadBal=
ancingPolicy=E5=8D=B3=E5=8F=AF=E3=80=82
+ =E6=A0=B9=E6=8D=AE=E4=BD=A0=E4=BD=BF=E7=94=A8=E7=9A=84=E6=98=
=AFJMS=E8=BF=98=E6=98=AF=E6=A0=B8=E5=BF=83=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=8C=
=87=E5=AE=9A=E8=B4=9F=E8=BD=BD=E5=9D=87=E8=A1=A1=E7=9A=84=E6=96=B9=E6=B3=95=
=E6=98=AF=E6=9C=89=E6=89=80=E4=B8=8D=E5=90=8C=E7=9A=84=E3=80=82=E5=A6=82=E6=
=9E=9C=E4=BD=A0=E4=B8=8D=E6=8C=87=E5=AE=9A=E7=AD=96=E7=95=A5=EF=BC=8C=E9=BB=
=98=E8=AE=A4=E7=9A=84=E7=AD=96=E7=95=A5=E6=98=AForg.hornetq.api.core.client.loadbalance.RoundRobinConnect=
ionLoadBalancingPolicy.
- If you're using JMS, and you're using JNDI on the server to =
put your JMS connection
- factories into JNDI, then you can specify the load balancing p=
olicy directly in the
- hornetq-jms.xml configuration file on t=
he server as follows:
+ =E5=A6=82=E6=9E=9C=E4=BD=BF=E7=94=A8=E7=9A=84=E6=98=AFJMS=EF=
=BC=8C=E5=B9=B6=E4=B8=94JMS=E8=BF=9E=E6=8E=A5=E5=B7=A5=E5=8E=82=E6=B3=A8=E5=
=86=8C=E5=88=B0JNDI=EF=BC=8C=E5=88=99=E4=BD=A0=E9=9C=80=E8=A6=81=E5=9C=A8hornetq-jms.xml=E6=96=87=E4=BB=B6=E4=B8=AD=E5=AE=9A=E4=B9=
=89=E7=AD=96=E7=95=A5=EF=BC=8C=E5=A6=82=EF=BC=9A
<connection-factory name=3D"ConnectionFactory">
<discovery-group-ref discovery-group-name=3D"my-discovery-group"/&g=
t;
@@ -477,49 +349,39 @@
org.hornetq.api.core.client.loadbalance.RandomConnectionLoadBalancingP=
olicy
</connection-load-balancing-policy-class-name>
</connection-factory> =
- The
- above example would deploy a JMS connection factory that uses =
the random connection load
- balancing policy.
- If you're using JMS but you're instantiating your connection=
factory directly on the
- client side then you can set the load balancing policy using t=
he setter on the HornetQConnectionFactory before using it:
+ =E4=B8=8A=E9=9D=A2=E7=9A=84=E9=85=8D=E7=BD=AE=E5=
=B0=86=E9=83=A8=E7=BD=B2=E4=B8=80=E4=B8=AA=E8=BF=9E=E6=8E=A5=E5=B7=A5=E5=8E=
=82=EF=BC=8C=E5=AE=83=E7=9A=84=E8=BF=9E=E6=8E=A5=E8=B4=9F=E8=BD=BD=E5=9D=87=
=E8=A1=A1=E7=AD=96=E7=95=A5=E6=98=AF=E9=9A=8F=E6=9C=BA=E7=AD=96=E7=95=A5=E3=
=80=82
+ =E5=A6=82=E6=9E=9C=E4=BD=BF=E7=94=A8JMS=EF=BC=8C=E4=BD=86=E6=
=98=AF=E4=BD=A0=E5=9C=A8=E5=AE=A2=E6=88=B7=E7=AB=AF=E6=98=AF=E7=9B=B4=E6=8E=
=A5=E5=88=9B=E5=BB=BA=E8=BF=9E=E6=8E=A5=E5=B7=A5=E5=8E=82=E7=9A=84=E5=AE=9E=
=E4=BE=8B=EF=BC=8C=E9=82=A3=E4=B9=88=E4=BD=A0=E9=9C=80=E8=A6=81=E7=94=A8=E7=
=9B=B8=E5=BA=94=E7=9A=84=E6=96=B9=E6=B3=95=E5=9C=A8HornetQConnectionFactory=E4=B8=8A=E7=9B=B4=E6=
=8E=A5=E8=AE=BE=E7=BD=AE=EF=BC=9A
ConnectionFactory jmsConnectionFactory =3D HornetQJMSClient.createConnecti=
onFactory(...);
jmsConnectionFactory.setLoadBalancingPolicyClassName("com.acme.MyLoadBalan=
cingPolicy");
- If you're using the core API, you can set the load balancing=
policy directly on the
- ClientSessionFactory instance you are u=
sing:
+ =E5=A6=82=E6=9E=9C=E4=BD=A0=E4=BD=BF=E7=94=A8=E6=A0=B8=E5=BF=
=83=E6=8E=A5=E5=8F=A3=E7=9A=84=E8=AF=9D=EF=BC=8C=E4=BD=A0=E8=A6=81=E7=9B=B4=
=E6=8E=A5=E5=9C=A8ClientSessionFactory=E4=B8=8A=E8=AE=BE=
=E7=BD=AE=E7=AD=96=E7=95=A5=EF=BC=9A
ClientSessionFactory factory =3D HornetQClient.createClientSessionFactory(=
...);
factory.setLoadBalancingPolicyClassName("com.acme.MyLoadBalancingPolicy");
- The set of servers over which the factory load balances can =
be determined in one of
- two ways:
+ =E8=BF=9E=E6=8E=A5=E5=B7=A5=E5=8E=82=E8=BF=9B=E8=A1=8C=E8=B4=
=9F=E8=BD=BD=E5=9D=87=E8=A1=A1=E7=9A=84=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=BB=84=
=E5=8F=AF=E4=BB=A5=E6=9C=89=E4=B8=A4=E7=A7=8D=E6=96=B9=E6=B3=95=E6=9D=A5=E7=
=A1=AE=E5=AE=9A=EF=BC=9A
- Specifying servers explicitly
+ =E6=98=BE=E5=BC=8F=E6=8C=87=E5=AE=9A=E6=9C=8D=E5=8A=
=A1=E5=99=A8
- Using discovery.
+ =E4=BD=BF=E7=94=A8=E5=8F=91=E7=8E=B0=E7=BB=84=E5=8A=
=9F=E8=83=BD
- Specifying Members of a Cluster Explicitly
- Sometimes UDP is not enabled on a network so it's not possib=
le to use UDP server
- discovery for clients to discover the list of servers in the c=
luster, or for servers to
- discover what other servers are in the cluster.
- In this case, the list of servers in the cluster can be spec=
ified explicitly on each
- node and on the client side. Let's look at how we do this:
+ =E6=98=BE=E5=BC=8F=E6=8C=87=E5=AE=9A=E9=9B=86=E7=BE=A4=E6=
=9C=8D=E5=8A=A1=E5=99=A8
+ =E6=9C=89=E7=9A=84=E7=BD=91=E7=BB=9C=E5=B9=B6=E4=B8=8D=E5=BC=
=80=E6=94=BEUDP=EF=BC=8C=E6=89=80=E4=BB=A5=E5=B0=B1=E4=B8=8D=E8=83=BD=E4=BD=
=BF=E7=94=A8=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=8F=91=E7=8E=B0=E5=8A=9F=E8=83=BD=
=E6=9D=A5=E8=8E=B7=E5=8F=96=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=88=97=E8=A1=A8=E3=
=80=82
+ =E5=9C=A8=E8=BF=99=E7=A7=8D=E6=83=85=E5=86=B5=E4=B8=8B=EF=BC=
=8C=E5=8F=AF=E4=BB=A5=E6=98=BE=E5=BC=8F=E5=9C=B0=E5=9C=A8=E6=AF=8F=E4=B8=AA=
=E8=8A=82=E7=82=B9=E6=88=96=E5=AE=A2=E6=88=B7=E7=AB=AF=E6=8C=87=E5=AE=9A=E6=
=9C=8D=E5=8A=A1=E5=99=A8=E7=9A=84=E5=88=97=E8=A1=A8=E3=80=82=E4=B8=8B=E9=9D=
=A2=E4=BB=8B=E7=BB=8D=E5=A6=82=E4=BD=95=E5=81=9A=EF=BC=9A
- Specify List of Servers on the Client Side
- This differs depending on whether you're using JMS or th=
e Core API
+ =E5=9C=A8=E5=AE=A2=E6=88=B7=E7=AB=AF=E6=8C=87=E5=AE=9A=
=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=88=97=E8=A1=A8
+ =E6=A0=B9=E6=8D=AE=E4=BD=BF=E7=94=A8=E7=9A=84=E6=98=AFJM=
S=E8=BF=98=E6=98=AF=E6=A0=B8=E5=BF=83=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=89=80=
=E7=94=A8=E7=9A=84=E6=96=B9=E6=B3=95=E4=B9=9F=E4=B8=8D=E5=90=8C=E3=80=82
- Specifying List of Servers using JMS
- If you're using JMS, and you're using the JMS Servic=
e to load your JMS
- connection factory instances directly into JNDI on the=
server, then you can
- specify the list of servers in the server side configu=
ration file hornetq-jms.xml. Let's take a look at a=
n example:
+ =E4=BD=BF=E7=94=A8JMS=E6=97=B6=E6=8C=87=E5=AE=9A=E6=
=9C=8D=E5=8A=A1=E5=99=A8=E5=88=97=E8=A1=A8
+ =E5=A6=82=E6=9E=9C=E4=BD=BF=E7=94=A8JMS=EF=BC=8C=E5=
=B9=B6=E4=B8=94JMS=E8=BF=9E=E6=8E=A5=E5=B7=A5=E5=8E=82=E6=98=AF=E6=B3=A8=E5=
=86=8C=E5=88=B0JNDI=E7=9A=84=E8=AF=9D=EF=BC=8C=E4=BD=A0=E9=9C=80=E8=A6=81=
=E5=9C=A8=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=AB=AF=E7=9A=84=E9=85=8D=E7=BD=AE=E6=
=96=87=E4=BB=B6
+ hornetq-jms.xml=E4=B8=AD=E6=9D=A5=
=E6=8C=87=E5=AE=9A=EF=BC=8C=E5=A6=82=E4=B8=8B=E9=9D=A2=E7=9A=84=E4=BE=8B=E5=
=AD=90=EF=BC=9A
<connection-factory name=3D"ConnectionF=
actory">
<connectors>
<connector-ref connector-name=3D"my-connector1" =
@@ -533,23 +395,17 @@
<entry name=3D"ConnectionFactory"/>
</entries>
</connection-factory>
- The connection-factory element ca=
n contain zero or more
- connector-ref elements, each on=
e of which specifies a
- connector-name attribute and an=
optional backup-connector-name attribute. The connector-name attribute references a c=
onnector defined in
- hornetq-configuration.xml which=
will be used as a live
- connector. The backup-connector-name is optional, and if
- specified it also references a connector defined in hornetq-configuration.xml. For more inf=
ormation on connectors please
- see .
- The connection factory thus maintains a list of [con=
nector, backup connector]
- pairs, these pairs are then used by the client connect=
ion load balancing policy
- on the client side when creating connections to the cl=
uster.
- If you're using JMS but you're not using JNDI then y=
ou can also specify the
- list of [connector, backup connector] pairs directly w=
hen instantiating the
- HornetQConnectionFactory, here'=
s an
- example:List<Pair<TransportConfi=
guration, TransportConfiguration>> serverList =3D =
+ =E5=85=B6=E4=B8=AD=E7=9A=84connection-facto=
ry=E5=86=85=E5=8F=AF=E4=BB=A5=E5=8C=85=E5=90=AB=E9=9B=B6=E6=88=96=
=E5=A4=9A=E4=B8=AA
+ connector-ref=E3=80=82=E6=AF=8F=
=E4=B8=AAconnector-ref
+ =E9=83=BD=E6=8B=A5=E6=9C=89connector-name=
=E5=B1=9E=E6=80=A7=E5=92=8C=E4=B8=80=E4=B8=AA=E5=8F=AF=E9=80=89=
=E7=9A=84backup-connector-name=E5=B1=9E=E6=80=A7=
=E3=80=82connector-name =E5=B1=9E=E6=80=A7=E6=8C=
=87=E5=90=91=E7=9A=84=E6=98=AF=E4=B8=80=E4=B8=AA=E5=9C=A8hornetq-c=
onfiguration.xml
+ =E6=96=87=E4=BB=B6=E4=B8=AD=E5=AE=9A=E4=B9=89=E7=
=9A=84=E8=BF=9E=E6=8E=A5=E5=99=A8=E3=80=82=E8=80=8Cbackup-connecto=
r-name=E5=B1=9E=E6=80=A7=E4=B9=9F=E6=98=AF=E6=8C=87=E5=90=91=E5=
=9C=A8
+ hornetq-configuration.xml=E6=96=
=87=E4=BB=B6=E4=B8=AD=E5=AE=9A=E4=B9=89=E7=9A=84=E4=B8=80=E4=B8=AA=E8=BF=9E=
=E6=8E=A5=E5=99=A8=E3=80=82
+ =E6=9C=89=E5=85=B3=E8=BF=9E=E6=8E=A5=E5=99=A8=E6=
=9B=B4=E5=A4=9A=E7=9A=84=E4=BF=A1=E6=81=AF=E5=8F=82=E8=A7=81=E3=80=82
+ =E8=BF=9E=E6=8E=A5=E5=B7=A5=E5=8E=82=E8=BF=99=E6=A0=
=B7=E5=B0=B1=E4=BF=9D=E5=AD=98=E6=9C=89=E4=B8=80=E7=BB=84[=E8=BF=9E=E6=8E=
=A5=E5=99=A8, =E5=A4=87=E4=BB=BD=E8=BF=9E=E6=8E=A5=E5=99=A8]=E5=AF=B9=EF=BC=
=8C=E7=94=A8=E4=BA=8E=E5=AE=A2=E6=88=B7=E7=AB=AF=E5=9C=A8=E5=88=9B=E5=BB=BA=
=E8=BF=9E=E6=8E=A5=E6=97=B6=E7=9A=84=E8=B4=9F=E8=BD=BD=E5=9D=87=E8=A1=A1=E3=
=80=82
+ =E5=A6=82=E6=9E=9C=E4=BD=A0=E4=BD=BF=E7=94=A8JMS=EF=
=BC=8C=E4=BD=86=E4=B8=8D=E4=BD=BF=E7=94=A8JNDI=EF=BC=8C=E4=BD=A0=E5=8F=AF=
=E4=BB=A5=E7=9B=B4=E6=8E=A5=E5=88=9B=E5=BB=BAHornetQConnectionFact=
ory
+ =E7=9A=84=E5=AE=9E=E4=BE=8B=EF=BC=8C=E7=84=B6=E5=90=8E=
=E7=94=A8=E7=9B=B8=E5=BA=94=E7=9A=84=E6=96=B9=E6=B3=95=E6=9D=A5=E8=AE=BE=E5=
=AE=9A=E8=BF=9E=E6=8E=A5=E5=99=A8=E5=AF=B9=E5=88=97=E8=A1=A8=EF=BC=8C=E5=A6=
=82=E4=B8=8B=E4=BE=8B=EF=BC=9AList<Pair<TransportConf=
iguration, TransportConfiguration>> serverList =3D =
new ArrayList<Pair<TransportConfiguration, TransportConfigur=
ation>>();
=
serverList.add(new Pair<TransportConfiguration, =
@@ -564,20 +420,15 @@
Connection jmsConnection1 =3D jmsConnectionFactory.createConnection();
=
Connection jmsConnection2 =3D jmsConnectionFactory.createConnection();
- In the above snippet we create a list of pairs of TransportConfiguration objects. Each TransportConfiguration object contains =
knowledge of how to make a
- connection to a specific server.
- A HornetQConnectionFactory instan=
ce is then created passing
- the list of servers in the constructor. Any connection=
s subsequently created by
- this factory will create connections according to the =
client connection load
- balancing policy applied to that list of servers.
+ =E4=B8=8A=E9=9D=A2=E7=9A=84=E4=BB=A3=E7=A0=81=E4=B8=
=AD=E6=88=91=E4=BB=AC=E5=88=9B=E5=BB=BA=E4=BA=86=E4=B8=80=E7=BB=84=
TransportConfiguration=E5=AF=B9=E8=B1=A1=E3=80=82=E6=AF=8F=E4=B8=
=AA
+ TransportConfiguration=E5=AF=B9=E8=
=B1=A1=E5=8C=85=E6=8B=AC=E4=BA=86=E5=A6=82=E4=BD=95=E8=BF=9E=E6=8E=A5=E6=9F=
=90=E4=B8=AA=E7=89=B9=E5=AE=9A=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=9A=84=E4=BF=A1=
=E6=81=AF=E3=80=82
+ =E7=84=B6=E5=90=8E=EF=BC=8C=E4=BD=BF=E7=94=A8=E8=BF=
=99=E4=B8=AA=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=88=97=E8=A1=A8=E5=88=9B=E5=BB=BA=
=E4=BA=86=E4=B8=80=E4=B8=AAHornetQConnectionFactory=E5=
=AE=9E=E4=BE=8B=E3=80=82
+ =E8=BF=99=E6=A0=B7=E9=80=9A=E8=BF=87=E8=BF=99=E4=B8=AA=
=E5=B7=A5=E5=8E=82=E5=88=9B=E5=BB=BA=E7=9A=84=E8=BF=9E=E6=8E=A5=E5=B0=B1=E5=
=8F=AF=E4=BB=A5=E4=BD=BF=E7=94=A8=E8=BF=99=E4=B8=AA=E5=88=97=E8=A1=A8=EF=BC=
=8C=E7=94=B1=E6=89=80=E7=94=A8=E7=9A=84=E5=AE=A2=E6=88=B7=E8=BF=9E=E6=8E=A5=
=E8=B4=9F=E8=BD=BD=E5=9D=87=E8=A1=A1=E7=AD=96=E7=95=A5=E6=9D=A5=E8=BF=9B=E8=
=A1=8C=E8=BF=9E=E6=8E=A5=E7=9A=84=E8=B4=9F=E8=BD=BD=E5=9D=87=E8=A1=A1=E3=80=
=82
- Specifying List of Servers using the Core API
- If you're using the core API you can also specify th=
e list of servers directly
- when creating the ClientSessionFactory instance. Here's an
- example:
+ =E4=BD=BF=E7=94=A8=E6=A0=B8=E5=BF=83=E6=8E=A5=E5=8F=
=A3=E6=8C=87=E5=AE=9A=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=88=97=E8=A1=A8
+ =E5=A6=82=E6=9E=9C=E4=BD=BF=E7=94=A8=E6=A0=B8=E5=BF=
=83=E6=8E=A5=E5=8F=A3=EF=BC=8C=E4=BD=A0=E5=8F=AF=E4=BB=A5=E7=9B=B4=E6=8E=A5=
=E5=9C=A8ClientSessionFactory=E5=AE=9E=E4=BE=8B=E4=B8=8A=
=E8=AE=BE=E7=BD=AE=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=88=97=E8=A1=A8=E3=80=82
+ =E5=A6=82=E4=B8=8B=E4=BE=8B=EF=BC=9A
List<Pair<TransportConfiguration, Tr=
ansportConfiguration>> serverList =3D =
new ArrayList<Pair<TransportConfiguration, TransportConfigur=
ation>>();
=
@@ -593,24 +444,18 @@
ClientSession sesison1 =3D factory.createClientSession(...);
=
ClientSession session2 =3D factory.createClientSession(...);
- In the above snippet we create a list of pairs of TransportConfiguration objects. Each TransportConfiguration object contains =
knowledge of how to make a
- connection to a specific server. For more information =
on this, please see =
- .
- A ClientSessionFactoryImpl instan=
ce is then created passing
- the list of servers in the constructor. Any sessions s=
ubsequently created by
- this factory will create sessions according to the cli=
ent connection load
- balancing policy applied to that list of servers.
+ =E5=9C=A8=E4=B8=8A=E9=9D=A2=E7=9A=84=E4=BB=A3=E7=A0=
=81=E4=B8=AD=E6=88=91=E4=BB=AC=E5=88=9B=E5=BB=BA=E4=BA=86=E4=B8=80=E7=BB=84=
ClientSessionFactoryImpl=E5=AF=B9=E8=B1=A1=E3=80=82=E6=
=AF=8F=E4=B8=AA
+ TransportConfiguration=E5=AF=B9=E8=
=B1=A1=E5=8C=85=E6=8B=AC=E4=BA=86=E5=A6=82=E4=BD=95=E8=BF=9E=E6=8E=A5=E6=9F=
=90=E4=B8=AA=E7=89=B9=E5=AE=9A=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=9A=84=E4=BF=A1=
=E6=81=AF=E3=80=82
+ =E6=9C=89=E5=85=B3=E4=BF=A1=E6=81=AF=E8=AF=B7=E5=8F=82=
=E8=A7=81=E3=80=82
+ =E7=84=B6=E5=90=8E=EF=BC=8C=E4=BD=BF=E7=94=A8=E8=BF=
=99=E4=B8=AA=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=88=97=E8=A1=A8=E5=88=9B=E5=BB=BA=
=E4=BA=86=E4=B8=80=E4=B8=AAHornetQConnectionFactory=E5=
=AE=9E=E4=BE=8B=E3=80=82
+ =E8=BF=99=E6=A0=B7=E9=80=9A=E8=BF=87=E8=BF=99=E4=B8=AA=
=E5=B7=A5=E5=8E=82=E5=88=9B=E5=BB=BA=E7=9A=84=E4=BC=9A=E8=AF=9D=E5=B0=B1=E5=
=8F=AF=E4=BB=A5=E4=BD=BF=E7=94=A8=E8=BF=99=E4=B8=AA=E5=88=97=E8=A1=A8=EF=BC=
=8C=E7=94=B1=E6=89=80=E7=94=A8=E7=9A=84=E5=AE=A2=E6=88=B7=E8=BF=9E=E6=8E=A5=
=E8=B4=9F=E8=BD=BD=E5=9D=87=E8=A1=A1=E7=AD=96=E7=95=A5=E6=9D=A5=E8=BF=9B=E8=
=A1=8C=E8=BF=9E=E6=8E=A5=E7=9A=84=E8=B4=9F=E8=BD=BD=E5=9D=87=E8=A1=A1=E3=80=
=82
- Specifying List of Servers to form a Cluster
- Let's take a look at an example where each cluster conne=
ction is defined for a
- symmetric cluster, but we're not using discovery for each =
node to discover its
- neighbours, instead we'll configure each cluster connectio=
n to have explicit
- knowledge of all the other nodes in the cluster.
- Here's an example cluster connection definition showing =
that:
+ =E6=8C=87=E5=AE=9A=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=88=97=
=E8=A1=A8=E4=BB=A5=E7=BB=84=E6=88=90=E9=9B=86=E7=BE=A4
+ =E4=B8=8B=E9=9D=A2=E6=88=91=E4=BB=AC=E8=80=83=E8=99=91=
=E4=B8=80=E4=B8=AA=E5=AF=B9=E7=A7=B0=E9=9B=86=E7=BE=A4=E7=9A=84=E4=BE=8B=E5=
=AD=90=EF=BC=8C=E6=88=91=E4=BB=AC=E9=85=8D=E7=BD=AE=E4=BA=86=E6=AF=8F=E4=B8=
=AA=E9=9B=86=E7=BE=A4=E8=BF=9E=E6=8E=A5=EF=BC=8C=E4=BD=86=E6=98=AF=E4=B8=8D=
=E4=BD=BF=E7=94=A8=E5=8F=91=E7=8E=B0=E5=8A=9F=E8=83=BD=E6=9D=A5=E8=8E=B7=E5=
=BE=97=E6=9C=8D=E5=8A=A1=E5=99=A8=E4=BF=A1=E6=81=AF=E3=80=82=E6=88=91=E4=BB=
=AC
+ =E9=87=87=E7=94=A8=E9=85=8D=E7=BD=AE=E7=9A=84=E6=96=B9=E6=
=B3=95=E6=9D=A5=E6=98=BE=E5=BC=8F=E6=8C=87=E5=AE=9A=E9=9B=86=E7=BE=A4=E7=9A=
=84=E6=89=80=E6=9C=89=E6=88=90=E5=91=98=E3=80=82
+ =E4=B8=8B=E9=9D=A2=E5=B0=B1=E6=98=AF=E4=B8=80=E4=B8=AA=
=E9=9B=86=E7=BE=A4=E8=BF=9E=E6=8E=A5=E7=9A=84=E9=85=8D=E7=BD=AE=EF=BC=9A
<cluster-connections>
<cluster-connection name=3D"my-explicit-cluster">
<address>jms</address>
@@ -622,115 +467,80 @@
backup-connector-name=3D"my-backup-connector3"/>
</cluster-connection>
</cluster-connections>
- The cluster-connection element can co=
ntain zero or more
- connector-ref elements, each one of=
which specifies a
- connector-name attribute and an opt=
ional backup-connector-name attribute. The connector-name attribute references a conne=
ctor defined in hornetq-configuration.xml which will be use=
d as a live connector. The
- backup-connector-name is optional, =
and if specified it also
- references a connector defined in hornetq-configu=
ration.xml. For more
- information on connectors please see .
+ cluster-connection=E4=B8=AD=E5=8F=AF=
=E4=BB=A5=E5=8C=85=E6=8B=AC=E9=9B=B6=E6=88=96=E5=A4=9A=E4=B8=AAcon=
nector-ref,
+ =E6=AF=8F=E4=B8=AAconnector-ref=E9=
=83=BD=E6=9C=89=E4=B8=80=E4=B8=AAconnector-name=E5=B1=9E=
=E6=80=A7=E5=92=8C
+ =E4=B8=80=E4=B8=AA=E5=8F=AF=E9=80=89=E7=9A=84=
backup-connector-name=E5=B1=9E=E6=80=A7=E3=80=82connector-name=E5=B1=9E=E6=80=A7=E6=8C=87=
=E5=90=91=E4=B8=80=E4=B8=AA=E5=9C=A8hornetq-configuration.xml=E6=96=87=E4=BB=B6=
=E4=B8=AD=E5=AE=9A=E4=B9=89=E7=9A=84=E4=B8=80=E4=B8=AA=E8=BF=9E=E6=8E=A5=E5=
=99=A8=EF=BC=8C=E5=AE=83=E6=98=AF=E4=B8=BB=E8=BF=9E=E6=8E=A5=E5=99=A8=E3=80=
=82=E5=8F=AF=E9=80=89=E7=9A=84
+ backup-connector-name=E6=8C=87=E5=
=90=91=E7=9A=84=E4=B9=9F=E6=98=AF=E5=9C=A8
+ hornetq-configuration.xml=E6=96=87=
=E4=BB=B6=E4=B8=AD=E5=AE=9A=E4=B9=89=E7=9A=84=E4=B8=80=E4=B8=AA=E8=BF=9E=E6=
=8E=A5=E5=99=A8=E3=80=82
+ =E6=9C=89=E5=85=B3=E8=BF=9E=E6=8E=A5=E5=99=A8=E7=9A=84=
=E8=AF=A6=E7=BB=86=E4=BF=A1=E6=81=AF=E5=8F=82=E8=A7=81=E3=80=82
- Due to a limitation in HornetQ 2.0.0, failover is not=
supported for clusters
- defined using a static set of nodes. To support failover=
over cluster nodes, they =
- must be configured to use a discovery group.
+ =E7=94=B1=E4=BA=8EHornetQ 2.0.0=E7=9A=84=E9=99=90=E5=
=88=B6=EF=BC=8C=E4=BD=BF=E7=94=A8=E9=9D=99=E6=80=81=E8=8A=82=E7=82=B9=E5=88=
=97=E8=A1=A8=E7=9A=84=E9=9B=86=E7=BE=A4=E4=B8=8D=E6=94=AF=E6=8C=81=E5=A4=B1=
=E6=95=88=E5=A4=87=E6=8F=B4=EF=BC=88failover=EF=BC=89=E3=80=82=E8=A6=81=E6=
=83=B3=E6=94=AF=E6=8C=81=E5=A4=B1=E6=95=88=E5=A4=87=E6=8F=B4=EF=BC=8C
+ =E5=B0=B1=E5=BF=85=E9=A1=BB=E4=BD=BF=E7=94=A8=E5=8F=91=
=E7=8E=B0=E7=BB=84=E3=80=82
- Message Redistribution
- Another important part of clustering is message redistributi=
on. Earlier we learned how
- server side message load balancing round robins messages acros=
s the cluster. If forward-when-no-consumers is false, then messag=
es won't be forwarded to
- nodes which don't have matching consumers, this is great and e=
nsures that messages don't
- arrive on a queue which has no consumers to consume them, howe=
ver there is a situation
- it doesn't solve: What happens if the consumers on a queue clo=
se after the messages have
- been sent to the node? If there are no consumers on the queue =
the message won't get
- consumed and we have a starvation situati=
on.
- This is where message redistribution comes in. With message =
redistribution HornetQ
- can be configured to automatically redistribute messages
- from queues which have no consumers back to other nodes in the=
cluster which do have
- matching consumers.
- Message redistribution can be configured to kick in immediat=
ely after the last
- consumer on a queue is closed, or to wait a configurable delay=
after the last consumer
- on a queue is closed before redistributing. By default message=
redistribution is
- disabled.
- Message redistribution can be configured on a per address ba=
sis, by specifying the
- redistribution delay in the address settings, for more informa=
tion on configuring
- address settings, please see .
- Here's an address settings snippet from hornetq-con=
figuration.xml
- showing how message redistribution is enabled for a set of que=
ues:
+ =E6=B6=88=E6=81=AF=E5=86=8D=E5=88=86=E9=85=8D
+ =E9=9B=86=E7=BE=A4=E7=9A=84=E5=8F=A6=E4=B8=80=E4=B8=AA=E9=87=
=8D=E8=A6=81=E5=8A=9F=E8=83=BD=E6=98=AF=E6=B6=88=E6=81=AF=E7=9A=84=E5=86=8D=
=E5=88=86=E9=85=8D=E3=80=82=E5=89=8D=E9=9D=A2=E6=88=91=E4=BB=AC=E7=9F=A5=E9=
=81=93=E5=9C=A8=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=AB=AF=E5=8F=AF=E4=BB=A5=E5=AF=
=B9=E6=B6=88=E6=81=AF=E5=A4=A7=E9=9B=86=E7=BE=A4=E8=8A=82=E7=82=B9=E9=97=B4=
=E8=BF=9B=E8=A1=8C=E8=BD=AE=E6=B5=81=E6=96=B9=E5=BC=8F=E7=9A=84=E8=B4=9F=E8=
=BD=BD=E5=9D=87=E8=A1=A1=E3=80=82=E5=A6=82=E6=9E=9C
+ forward-when-no-consumers=E5=8F=82=E6=95=B0=
=E4=B8=BAfalse=EF=BC=8C=E6=B6=88=E6=81=AF=E5=B0=86=E4=B8=8D=E4=BC=9A=E8=BD=
=AC=E5=8F=91=E5=88=B0=E9=82=A3=E4=BA=9B=E6=B2=A1=E6=9C=89=E7=9B=B8=E5=BA=94=
=E6=8E=A5=E6=94=B6=E8=80=85=E7=9A=84=E8=8A=82=E7=82=B9=E4=B8=AD=E3=80=82
+ =E8=BF=99=E6=A0=B7=E5=8F=AF=E4=BB=A5=E6=9C=89=E6=95=88=E9=81=
=BF=E5=85=8D=E4=BA=86=E6=B6=88=E6=81=AF=E8=A2=AB=E9=80=81=E5=88=B0=E4=B8=80=
=E4=B8=AA=E4=B8=8D=E5=8F=AF=E8=83=BD=E8=A2=AB=E6=8E=A5=E6=94=B6=E7=9A=84=E8=
=8A=82=E7=82=B9=E4=B8=8A=E3=80=82=E4=BD=86=E4=BB=8D=E7=84=B6=E6=9C=89=E4=B8=
=80=E4=B8=AA=E9=97=AE=E9=A2=98=E6=97=A0=E6=B3=95=E8=A7=A3=E5=86=B3=EF=BC=9A=
=E5=B0=B1=E6=98=AF=E5=A6=82=E6=9E=9C=E5=9C=A8=E6=B6=88=E6=81=AF=E5=8F=91=E5=
=88=B0=E4=B8=80=E4=B8=AA=E8=8A=82=E7=82=B9=E5=90=8E=EF=BC=8C
+ =E5=AE=83=E7=9A=84=E6=8E=A5=E6=94=B6=E8=80=85=E8=A2=AB=E5=85=
=B3=E9=97=AD=EF=BC=8C=E9=82=A3=E4=B9=88=E8=BF=99=E4=BA=9B=E6=B6=88=E6=81=AF=
=E4=BB=8D=E7=84=B6=E4=B8=8D=E8=83=BD=E8=A2=AB=E6=8E=A5=E6=94=B6=E4=BA=86=EF=
=BC=8C=E9=80=A0=E6=88=90=E4=BA=86=E4=B8=80=E7=A7=8D=E6=B6=88=E6=81=AF=E5=8C=AE=E4=B9=8F=E6=83=85=E5=BD=A2=E3=80=82
+ =E8=BF=99=E7=A7=8D=E6=83=85=E5=86=B5=E4=B8=8B=E5=A6=82=E4=BD=
=95=E5=A4=84=E7=90=86=EF=BC=9F
+ =E8=BF=99=E9=87=8C=E5=B0=B1=E9=9C=80=E8=A6=81=E6=B6=88=E6=81=
=AF=E5=86=8D=E5=88=86=E9=85=8D=E5=8A=9F=E8=83=BD=E3=80=82=E9=80=9A=E8=BF=87=
=E9=85=8D=E7=BD=AE=EF=BC=8CHornetQ=E5=8F=AF=E4=BB=A5=E5=B0=86=E6=B2=A1=E6=
=9C=89=E6=8E=A5=E6=94=B6=E8=80=85=E7=9A=84=E9=98=9F=E5=88=97=E4=B8=AD=E7=9A=
=84=E6=B6=88=E6=81=AF=E5=86=8D=E6=AC=A1=E5=88=86=E9=85=8D
+ =E5=88=B0=E6=9C=89=E6=8E=A5=E6=94=B6=E8=80=85=E7=9A=84=E8=8A=
=82=E7=82=B9=E4=B8=8A=E5=8E=BB=E3=80=82
+ =E9=80=9A=E8=BF=87=E9=85=8D=E7=BD=AE=EF=BC=8C=E6=B6=88=E6=81=
=AF=E5=8F=AF=E4=BB=A5=E5=9C=A8=E9=98=9F=E5=88=97=E6=9C=80=E5=90=8E=E4=B8=80=
=E4=B8=AA=E6=8E=A5=E6=94=B6=E8=80=85=E5=85=B3=E9=97=AD=E6=97=B6=E7=AB=8B=E5=
=8D=B3=E8=BF=9B=E8=A1=8C=EF=BC=8C=E4=B9=9F=E5=8F=AF=E4=BB=A5=E9=85=8D=E7=BD=
=AE=E6=88=90=E7=AD=89=E5=BE=85=E4=B8=80=E6=AE=B5=E6=97=B6=E9=97=B4=E5=86=8D=
=E8=BF=9B=E8=A1=8C=E3=80=82=E9=BB=98=E8=AE=A4=E6=B6=88=E6=81=AF=E5=86=8D=E5=
=88=86=E9=85=8D=E5=8A=9F=E8=83=BD=E6=98=AF
+ =E5=85=B3=E9=97=AD=E7=9A=84=E3=80=82
+ =E6=B6=88=E6=81=AF=E5=86=8D=E5=88=86=E9=85=8D=E5=8A=9F=E8=83=
=BD=E5=8F=AF=E4=BB=A5=E5=9F=BA=E4=BA=8E=E5=9C=B0=E5=9D=80=E8=BF=9B=E8=A1=8C=
=E9=85=8D=E7=BD=AE=EF=BC=8C=E5=8D=B3=E5=9C=A8=E5=9C=B0=E5=9D=80=E8=AE=BE=E7=
=BD=AE=E4=B8=AD=E6=8C=87=E5=AE=9A=E5=86=8D=E5=88=86=E9=85=8D=E7=9A=84=E5=BB=
=B6=E6=97=B6=E3=80=82=E5=85=B3=E4=BA=8E=E5=9C=B0=E5=9D=80=E8=AE=BE=E7=BD=AE=
=E7=9A=84=E6=9B=B4=E5=A4=9A=E4=BF=A1=E6=81=AF=EF=BC=8C=E8=AF=B7=E5=8F=82=E8=
=A7=81
+ =E3=80=82
+ =E4=B8=8B=E9=9D=A2=E6=98=AF=E4=BB=8Ehornetq-configu=
ration.xml=E6=96=87=E4=BB=B6=E4=B8=AD=E6=8F=90=E5=8F=96=E7=9A=84=
=E6=B6=88=E6=81=AF=E5=86=8D=E5=88=86=E9=85=8D=E7=9A=84=E9=85=8D=E7=BD=AE=EF=
=BC=9A
<address-settings> =
<address-setting match=3D"jms.#">
<redistribution-delay>0</redistribution-delay>
</address-setting>
</address-settings>
- The above address-settings block would se=
t a redistribution-delay of 0 fo=
r any queue which is bound
- to an address that starts with "jms.". All JMS queues and topi=
c subscriptions are bound
- to addresses that start with "jms.", so the above would enable=
instant (no delay)
- redistribution for all JMS queues and topic subscriptions.
- The attribute match can be an exact match=
or it can be a string
- that conforms to the HornetQ wildcard syntax (described in ).
- The element redistribution-delay defines =
the delay in milliseconds
- after the last consumer is closed on a queue before redistribu=
ting messages from that
- queue to other nodes of the cluster which do have matching con=
sumers. A delay of zero
- means the messages will be immediately redistributed. A value =
of -1
- signifies that messages will never be redistributed. The defau=
lt value is -1.
- It often makes sense to introduce a delay before redistribut=
ing as it's a common case
- that a consumer closes but another one quickly is created on t=
he same queue, in such a
- case you probably don't want to redistribute immediately since=
the new consumer will
- arrive shortly.
+ =E4=B8=8A=E9=9D=A2address-settings=E4=B8=
=AD=E8=AE=BE=E7=BD=AE=E7=9A=84redistribution-delay=E5=80=BC=E4=B8=BA=
0=E3=80=82=E5=AE=83=E9=80=82=E7=94=A8=E4=BA=8E=E6=89=80=E6=9C=89=
=E4=BB=A5=E2=80=9Cjms=E2=80=9C=E5=BC=80=E5=A4=B4=E7=9A=84
+ =E5=9C=B0=E5=9D=80=E3=80=82=E7=94=B1=E4=BA=8E=E6=89=80=E6=9C=
=89JMS=E9=98=9F=E5=88=97=E4=B8=8E=E8=AF=9D=E9=A2=98=E8=AE=A2=E9=98=85=E9=83=
=BD=E7=BB=91=E5=AE=9A=E5=88=B0=E4=BB=A5=E2=80=9Djms=E2=80=9C=E4=B8=BA=E5=BC=
=80=E5=A4=B4=E7=9A=84=E5=9C=B0=E5=9D=80=EF=BC=8C=E6=89=80=E4=BB=A5=E4=B8=8A=
=E8=BF=B0=E9=85=8D=E7=BD=AE=E7=9A=84=E7=AB=8B=E5=8D=B3=E6=96=B9=E5=BC=8F=EF=
=BC=88=E6=B2=A1=E6=9C=89=E5=BB=B6=E8=BF=9F=EF=BC=89=E6=B6=88=E6=81=AF
+ =E5=86=8D=E5=88=86=E9=85=8D=E9=80=82=E7=94=A8=E4=BA=8E=E6=89=
=80=E6=9C=89=E7=9A=84JMS=E9=98=9F=E5=88=97=E5=92=8C=E8=AF=9D=E9=A2=98=E8=AE=
=A2=E9=98=85=E3=80=82
+ match=E5=B1=9E=E6=80=A7=E5=8F=AF=E4=BB=A5=
=E6=98=AF=E7=B2=BE=E7=A1=AE=E5=8C=B9=E9=85=8D=EF=BC=8C=E4=B9=9F=E5=8F=AF=E4=
=BB=A5=E4=BD=BF=E7=94=A8=E9=80=9A=E9=85=8D=E7=AC=A6=E3=80=82=E9=80=9A=E9=85=
=8D=E7=AC=A6=E8=A6=81=E7=AC=A6=E5=90=88HornetQ=E7=9A=84=E9=80=9A=E9=85=8D=
=E7=AC=A6
+ =E8=AF=AD=E6=B3=95=EF=BC=88=E5=9C=A8=E4=B8=AD=E6=8F=8F=E8=BF=B0=EF=BC=89=E3=80=82
+ redistribution-delay=E5=AE=9A=E4=B9=89=E4=
=BA=86=E9=98=9F=E5=88=97=E6=9C=80=E5=90=8E=E4=B8=80=E4=B8=AA=E6=8E=A5=E6=94=
=B6=E8=80=85=E5=85=B3=E9=97=AD=E5=90=8E=E5=9C=A8=E8=BF=9B=E8=A1=8C=E6=B6=88=
=E6=81=AF=E5=86=8D=E5=88=86=E9=85=8D=E5=89=8D=E6=89=80=E7=AD=89=E5=BE=85=E7=
=9A=84
+ =E6=97=B6=E9=97=B4=EF=BC=8C=E5=8D=95=E4=BD=8D=E6=AF=AB=E7=A7=
=92=E3=80=82=E5=A6=82=E6=9E=9C=E5=85=B6=E5=80=BC=E6=98=AF0=EF=BC=8C=E8=A1=
=A8=E7=A4=BA=E7=AB=8B=E5=8D=B3=E8=BF=9B=E8=A1=8C=E6=B6=88=E6=81=AF=E5=86=8D=
=E5=88=86=E9=85=8D=E3=80=82-1=E8=A1=A8=E7=A4=BA=E4=B8=8D=
=E4=BC=9A=E8=BF=9B=E8=A1=8C=E6=B6=88=E6=81=AF=E5=86=8D=E5=88=86=E9=85=8D=E3=
=80=82
+ =E9=BB=98=E8=AE=A4=E5=80=BC=E6=98=AF-1=E3=
=80=82
+ =E9=80=9A=E5=B8=B8=E4=B8=BA=E6=B6=88=E6=81=AF=E5=88=86=E9=85=
=8D=E5=AE=9A=E4=B9=89=E4=B8=80=E4=B8=AA=E5=BB=B6=E8=BF=9F=E6=98=AF=E6=9C=89=
=E5=AE=9E=E9=99=85=E6=84=8F=E4=B9=89=E7=9A=84=E3=80=82=E5=BE=88=E5=A4=9A=E6=
=97=B6=E5=80=99=E5=BD=93=E4=B8=80=E4=B8=AA=E6=8E=A5=E6=94=B6=E8=80=85=E8=A2=
=AB=E5=85=B3=E9=97=AD=E6=97=B6=EF=BC=8C=E5=BE=88=E5=BF=AB=E5=B0=B1=E4=BC=9A=
=E6=9C=89=E4=B8=80=E4=B8=AA=E6=96=B0=E7=9A=84=E6=8E=A5=E6=94=B6=E8=80=85=E8=
=A2=AB=E5=88=9B=E5=BB=BA=E3=80=82
+ =E5=9C=A8=E8=BF=99=E7=A7=8D=E6=83=85=E5=86=B5=E4=B8=8B=E5=8A=
=A0=E4=B8=80=E5=BB=B6=E8=BF=9F=E5=8F=AF=E4=BB=A5=E4=BD=BF=E6=B6=88=E6=81=AF=
=E7=BB=A7=E7=BB=AD=E5=9C=A8=E6=9C=AC=E5=9C=B0=E8=BF=9B=E8=A1=8C=E6=8E=A5=E6=
=94=B6=EF=BC=8C=E8=80=8C=E4=B8=8D=E4=BC=9A=E5=B0=86=E6=B6=88=E6=81=AF=E8=BD=
=AC=E5=8F=91=E5=88=B0=E5=88=AB=E5=A4=84=E3=80=82
- Cluster topologies
- HornetQ clusters can be connected together in many different=
topologies, let's
- consider the two most common ones here
+ =E9=9B=86=E7=BE=A4=E6=8B=93=E6=89=91=E7=BB=93=E6=9E=84
+ HornetQ=E9=9B=86=E7=BE=A4=E5=8F=AF=E4=BB=A5=E6=9C=89=E5=A4=
=9A=E7=A7=8D=E6=8B=93=E6=89=91=E7=BB=93=E6=9E=84=E3=80=82=E6=88=91=E4=BB=AC=
=E6=9D=A5=E7=9C=8B=E4=B8=A4=E4=B8=AA=E6=9C=80=E5=B8=B8=E8=A7=81=E7=9A=84=E7=
=BB=93=E6=9E=84=E3=80=82
- Symmetric cluster
- A symmetric cluster is probably the most common cluster =
topology, and you'll be
- familiar with if you've had experience of JBoss Applicatio=
n Server
- clustering.
- With a symmetric cluster every node in the cluster is co=
nnected to every other
- node in the cluster. In other words every node in the clus=
ter is no more than one
- hop away from every other node.
- To form a symmetric cluster every node in the cluster de=
fines a cluster connection
- with the attribute max-hops set to 1.
- Typically the cluster connection will use server discovery=
in order to know what
- other servers in the cluster it should connect to, althoug=
h it is possible to
- explicitly define each target server too in the cluster co=
nnection if, for example,
- UDP is not available on your network.
- With a symmetric cluster each node knows about all the q=
ueues that exist on all
- the other nodes and what consumers they have. With this kn=
owledge it can determine
- how to load balance and redistribute messages around the n=
odes.
+ =E5=AF=B9=E7=A7=B0=E5=BC=8F=E9=9B=86=E7=BE=A4
+ =E5=AF=B9=E7=A7=B0=E5=BC=8F=E9=9B=86=E7=BE=A4=E5=8F=AF=
=E8=83=BD=E6=98=AF=E6=9C=80=E5=B8=B8=E8=A7=81=E7=9A=84=E9=9B=86=E7=BE=A4=E6=
=96=B9=E5=BC=8F=E4=BA=86=E3=80=82=E5=A6=82=E6=9E=9C=E4=BD=A0=E6=8E=A5=E8=A7=
=A6=E8=BF=87JBoss=E5=BA=94=E7=94=A8=E6=9C=8D=E5=8A=A1=E5=99=A8=E7=9A=84=E9=
=9B=86=E7=BE=A4=EF=BC=8C=E4=BD=A0=E5=B0=B1=E5=AF=B9=E8=BF=99=E7=A7=8D=E6=96=
=B9=E5=BC=8F=E5=BE=88=E7=86=9F=E6=82=89=E3=80=82
+ =E5=9C=A8=E4=B8=80=E4=B8=AA=E5=AF=B9=E7=A7=B0=E9=9B=86=
=E7=BE=A4=E4=B8=AD=EF=BC=8C=E6=AF=8F=E4=B8=80=E4=B8=AA=E8=8A=82=E7=82=B9=E9=
=83=BD=E4=B8=8E=E9=9B=86=E7=BE=A4=E4=B8=AD=E5=85=B6=E5=AE=83=E4=BB=BB=E4=B8=
=80=E8=8A=82=E7=82=B9=E7=9B=B8=E8=BF=9E=E3=80=82=E6=8D=A2=E5=8F=A5=E8=AF=9D=
=E8=AF=B4=EF=BC=8C=E9=9B=86=E7=BE=A4=E4=B8=AD=E4=BB=BB=E6=84=8F=E4=B8=A4=E4=
=B8=AA=E8=8A=82=E7=82=B9=E7=9A=84=E8=BF=9E=E6=8E=A5=E9=83=BD
+ =E5=8F=AA=E6=9C=89=E4=B8=80=E8=B7=B3=EF=BC=88hop=EF=BC=89=
=E3=80=82
+ =E8=A6=81=E7=BB=84=E6=88=90=E4=B8=80=E4=B8=AA=E5=AF=B9=
=E7=A7=B0=E5=BC=8F=E7=9A=84=E9=9B=86=E7=BE=A4=EF=BC=8C=E6=AF=8F=E4=B8=AA=E8=
=8A=82=E7=82=B9=E5=9C=A8=E5=AE=9A=E4=B9=89=E9=9B=86=E7=BE=A4=E8=BF=9E=E6=8E=
=A5=E6=97=B6=E8=A6=81=E5=B0=86=E5=B1=9E=E6=80=A7max-hops
+ =E8=AE=BE=E4=B8=BA1=E3=80=82=E9=80=9A=
=E5=B8=B8=E9=9B=86=E7=BE=A4=E8=BF=9E=E6=8E=A5=E5=B0=86=E4=BD=BF=E7=94=A8=E6=
=9C=8D=E5=8A=A1=E5=99=A8=E5=8F=91=E7=8E=B0=E7=9A=84=E5=8A=9F=E8=83=BD=E6=9D=
=A5=E8=8E=B7=E5=BE=97=E9=9B=86=E7=BE=A4=E4=B8=AD=E5=85=B6=E5=AE=83=E6=9C=8D=
=E5=8A=A1=E5=99=A8=E7=9A=84=E8=BF=9E=E6=8E=A5
+ =E4=BF=A1=E6=81=AF=E3=80=82=E5=BD=93=E7=84=B6=E5=9C=A8UDP=
=E4=B8=8D=E5=8F=AF=E7=94=A8=E7=9A=84=E6=97=B6=E5=80=99=EF=BC=8C=E4=B9=9F=E5=
=8F=AF=E4=BB=A5=E9=80=9A=E8=BF=87=E6=98=BE=E5=BC=8F=E6=96=B9=E5=BC=8F=E4=B8=
=BA=E9=9B=86=E7=BE=A4=E8=BF=9E=E6=8E=A5=E6=8C=87=E5=AE=9A=E6=9C=8D=E5=8A=A1=
=E5=99=A8=E3=80=82
+ =E5=9C=A8=E5=AF=B9=E7=A7=B0=E9=9B=86=E7=BE=A4=E4=B8=AD=
=EF=BC=8C=E6=AF=8F=E4=B8=AA=E6=9C=8D=E5=8A=A1=E5=99=A8=E9=83=BD=E7=9F=A5=E9=
=81=93=E9=9B=86=E7=BE=A4=E4=B8=AD=E5=85=B6=E5=AE=83=E6=9C=8D=E5=8A=A1=E5=99=
=A8=E4=B8=AD=E7=9A=84=E6=89=80=E6=9C=89=E9=98=9F=E5=88=97=E4=BF=A1=E6=81=AF=
=EF=BC=8C=E4=BB=A5=E5=8F=8A=E5=AE=83=E4=BB=AC=E7=9A=84=E6=8E=A5=E6=94=B6=E8=
=80=85=E4=BF=A1=E6=81=AF=E3=80=82=E5=88=A9=E7=94=A8=E8=BF=99=E4=BA=9B
+ =E4=BF=A1=E6=81=AF=E5=AE=83=E5=8F=AF=E4=BB=A5=E5=86=B3=E5=
=AE=9A=E5=A6=82=E4=BD=95=E8=BF=9B=E8=A1=8C=E6=B6=88=E6=81=AF=E7=9A=84=E8=B4=
=9F=E8=BD=BD=E5=9D=87=E8=A1=A1=E5=8F=8A=E6=B6=88=E6=81=AF=E5=86=8D=E5=88=86=
=E9=85=8D=E3=80=82
- Chain cluster
- With a chain cluster, each node in the cluster is not co=
nnected to every node in
- the cluster directly, instead the nodes form a chain with =
a node on each end of the
- chain and all other nodes just connecting to the previous =
and next nodes in the
- chain.
- An example of this would be a three node chain consistin=
g of nodes A, B and C.
- Node A is hosted in one network and has many producer clie=
nts connected to it
- sending order messages. Due to corporate policy, the order=
consumer clients need to
- be hosted in a different network, and that network is only=
accessible via a third
- network. In this setup node B acts as a mediator with no p=
roducers or consumers on
- it. Any messages arriving on node A will be forwarded to n=
ode B, which will in turn
- forward them to node C where they can get consumed. Node A=
does not need to directly
- connect to C, but all the nodes can still act as a part of=
the cluster.
- To set up a cluster in this way, node A would define a c=
luster connection that
- connects to node B, and node B would define a cluster conn=
ection that connects to
- node C. In this case we only want cluster connections in o=
ne direction since we're
- only moving messages from node A->B->C and never from C->B=
->A.
- For this topology we would set max-hops to 2. With a value of 2 the kno=
wledge of what queues and
- consumers that exist on node C would be propagated from no=
de C to node B to node A.
- Node A would then know to distribute messages to node B wh=
en they arrive, even
- though node B has no consumers itself, it would know that =
a further hop away is node
- C which does have consumers.
+ =E9=93=BE=E5=BC=8F=E9=9B=86=E7=BE=A4
+ =E5=9C=A8=E9=93=BE=E5=BC=8F=E9=9B=86=E7=BE=A4=E4=B8=AD=
=EF=BC=8C=E5=B9=B6=E4=B8=8D=E6=98=AF=E6=AF=8F=E4=B8=AA=E8=8A=82=E7=82=B9=E9=
=83=BD=E4=B8=8E=E5=85=B6=E5=AE=83=E4=BB=BB=E4=BD=95=E8=8A=82=E7=82=B9=E7=9B=
=B4=E6=8E=A5=E7=9B=B8=E8=BF=9E=EF=BC=8C=E8=80=8C=E6=98=AF=E7=94=B1=E4=B8=A4=
=E4=B8=AA=E8=8A=82=E7=82=B9=E7=BB=84=E6=88=90=E5=A4=B4=E5=92=8C=E5=B0=BE=EF=
=BC=8C=E5=85=B6=E4=BD=99=E8=8A=82=E7=82=B9=E5=9C=A8=E4=B8=AD=E9=97=B4=E8=BF=
=9E=E6=8E=A5
+ =E6=88=90=E4=B8=BA=E4=B8=80=E4=B8=AA=E9=93=BE=E7=9A=84=E7=
=BB=93=E6=9E=84=E3=80=82
+ =E6=AF=94=E5=A6=82=E6=9C=89=E4=B8=89=E4=B8=AA=E8=8A=82=
=E7=82=B9A=E3=80=81B=E5=92=8CC=E3=80=82=E8=8A=82=E7=82=B9A=E5=9C=A8=E4=B8=
=80=E4=B8=AA=E7=BD=91=E7=BB=9C=E4=B8=AD=EF=BC=8C=E5=AE=83=E6=9C=89=E8=AE=B8=
=E5=A4=9A=E6=B6=88=E6=81=AF=E7=9A=84=E5=8F=91=E9=80=81=E8=80=85=E5=90=91=E5=
=AE=83=E5=8F=91=E9=80=81=E8=AE=A2=E5=8D=95=E6=B6=88=E6=81=AF=E3=80=82=E7=94=
=B1=E4=BA=8E=E5=85=AC=E5=8F=B8=E7=9A=84=E6=94=BF=E7=AD=96=EF=BC=8C=E8=AE=A2=
=E5=8D=95
+ =E7=9A=84=E6=8E=A5=E6=94=B6=E8=80=85=E9=9C=80=E8=A6=81=E5=
=9C=A8=E5=8F=A6=E4=B8=80=E4=B8=AA=E7=BD=91=E7=BB=9C=E4=B8=AD=E6=8E=A5=E6=94=
=B6=E6=B6=88=E6=81=AF=EF=BC=8C=E5=B9=B6=E4=B8=94=E8=BF=99=E4=B8=AA=E7=BD=91=
=E7=BB=9C=E9=9C=80=E8=A6=81=E7=BB=8F=E8=BF=87=E5=85=B6=E5=AE=83=E7=AC=AC=E4=
=B8=89=E4=B8=AA=E7=BD=91=E7=BB=9C=E6=89=8D=E5=8F=AF=E4=BB=A5=E8=AE=BF=E9=97=
=AE=E3=80=82=E8=BF=99=E7=A7=8D=E6=83=85=E5=86=B5=E4=B8=8B=E6=88=91=E4=BB=AC=
=E5=B0=86=E8=8A=82=E7=82=B9
+ B=E9=83=A8=E7=BD=B2=E5=88=B0=E7=AC=AC=E4=B8=89=E4=B8=AA=E7=
=BD=91=E7=BB=9C=E4=B8=AD=EF=BC=8C=E4=BD=9C=E4=B8=BA=E8=8A=82=E7=82=B9A=E4=
=B8=8E=E8=8A=82=E7=82=B9C=E7=9A=84=E4=B8=AD=E9=97=B4=E8=8A=82=E7=82=B9=E5=
=B0=86=E4=B8=A4=E4=B8=AA=E8=8A=82=E7=82=B9=E8=BF=9E=E6=8E=A5=E8=B5=B7=E6=9D=
=A5=E3=80=82=E5=BD=93=E6=B6=88=E6=81=AF=E5=88=B0=E8=BE=BE=E8=8A=82=E7=82=B9=
A=E6=97=B6=EF=BC=8C=E8=A2=AB=E8=BD=AC=E5=8F=91=E5=88=B0=E8=8A=82=E7=82=B9B=
=EF=BC=8C
+ =E7=84=B6=E5=90=8E=E5=8F=88=E8=A2=AB=E8=BD=AC=E5=8F=91=E5=
=88=B0=E8=8A=82=E7=82=B9C=E4=B8=8A=EF=BC=8C=E8=BF=99=E6=A0=B7=E6=B6=88=E6=
=81=AF=E5=B0=B1=E8=A2=ABC=E4=B8=8A=E7=9A=84=E6=8E=A5=E6=94=B6=E8=80=85=E6=
=89=80=E6=8E=A5=E6=94=B6=E3=80=82=E8=8A=82=E7=82=B9A=E4=B8=8D=E9=9C=80=E8=
=A6=81=E7=9B=B4=E6=8E=A5=E4=B8=8E=E8=8A=82=E7=82=B9C=E8=BF=9E=E6=8E=A5=EF=
=BC=8C=E4=BD=86=E6=98=AF=E6=89=80=E6=9C=89=E4=B8=89=E4=B8=AA=E8=8A=82=E7=82=
=B9=E4=BB=8D=E7=84=B6
+ =E7=BB=84=E6=88=90=E4=BA=86=E4=B8=80=E4=B8=AA=E9=9B=86=E7=
=BE=A4=E3=80=82
+ =E8=A6=81=E6=83=B3=E7=BB=84=E6=88=90=E4=B8=80=E4=B8=AA=
=E8=BF=99=E6=A0=B7=E7=9A=84=E9=9B=86=E7=BE=A4=EF=BC=8C=E8=8A=82=E7=82=B9A=
=E7=9A=84=E9=9B=86=E7=BE=A4=E8=BF=9E=E6=8E=A5=E8=A6=81=E6=8C=87=E5=90=91=E8=
=8A=82=E7=82=B9B=EF=BC=8C=E8=8A=82=E7=82=B9B=E7=9A=84=E9=9B=86=E7=BE=A4=E8=
=BF=9E=E6=8E=A5=E8=A6=81=E6=8C=87=E5=90=91C=E3=80=82=E6=9C=AC=E4=BE=8B=E6=
=88=91=E4=BB=AC=E5=8F=AA=E6=83=B3=E7=BB=84=E6=88=90=E4=B8=80=E4=B8=AA=E5=8D=
=95=E5=90=91
+ =E7=9A=84=E9=93=BE=E5=BC=8F=E9=9B=86=E7=BE=A4=EF=BC=8C=E5=
=8D=B3=E6=88=91=E4=BB=AC=E5=8F=AA=E5=B0=86=E6=B6=88=E6=81=AF=E6=8C=89=E8=8A=
=82=E7=82=B9A->B->C=E7=9A=84=E6=96=B9=E5=90=91=E6=B5=81=E5=8A=A8=EF=BC=8C=
=E8=80=8C=E4=B8=8D=E8=A6=81=E5=90=91 C->B->A=E6=96=B9=E5=90=91=E6=B5=81=E5=
=8A=A8=E3=80=82
+ =E5=AF=B9=E4=BA=8E=E8=BF=99=E7=A7=8D=E9=9B=86=E7=BE=A4=
=E6=8B=93=E6=89=91=EF=BC=8C=E6=88=91=E4=BB=AC=E9=9C=80=E8=A6=81=E5=B0=86max-hops=E8=AE=BE=E4=B8=BA2. =E8=BF=99=E4=B8=AA=E5=80=BC=E5=8F=AF=E4=BB=
=A5=E4=BD=BF=E8=8A=82=E7=82=B9C=E4=B8=8A=E9=98=9F=E5=88=97=E7=9A=84=E4=BF=
=A1=E6=81=AF=E4=BC=A0=E9=80=81=E5=88=B0=E8=8A=82=E7=82=B9B=EF=BC=8C=E5=86=
=8D=E4=BC=A0=E9=80=81=E5=88=B0=E8=8A=82=E7=82=B9A=E3=80=82=E5=9B=A0=E6=AD=
=A4=E8=8A=82=E7=82=B9A=E5=B0=B1=E7=9F=A5=E9=81=93=E6=B6=88=E6=81=AF=E5=88=
=B0=E8=BE=BE=E6=97=B6=E5=8D=B3=E5=B0=86
+ =E5=85=B6=E8=BD=AC=E5=8F=91=E7=BB=99=E8=8A=82=E7=82=B9B=E3=
=80=82=E5=B0=BD=E7=AE=A1=E8=8A=82=E7=82=B9B=E5=8F=AF=E8=83=BD=E6=B2=A1=E6=
=9C=89=E6=8E=A5=E6=94=B6=E8=80=85=EF=BC=8C=E5=8F=AF=E5=AE=83=E7=9F=A5=E9=81=
=93=E5=86=8D=E7=BB=8F=E8=BF=87=E4=B8=80=E8=B7=B3=E5=B0=B1=E5=8F=AF=E4=BB=A5=
=E5=B0=86=E6=B6=88=E6=81=AF=E8=BD=AC=E5=88=B0=E8=8A=82=E7=82=B9C=EF=BC=8C=
=E9=82=A3=E9=87=8C=E5=B0=B1=E6=9C=89=E6=8E=A5=E6=94=B6=E8=80=85=E4=BA=86=E3=
=80=82
--===============2800516874892984162==--