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=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</titl= e> + <para>=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 + <literal>hornetq-jms.xml</literal>=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</para> <programlisting><connection-factory name=3D"ConnectionF= actory"> <discovery-group-ref discovery-group-name=3D"my-discovery-group"/> <entries> <entry name=3D"ConnectionFactory"/> </entries> </connection-factory></programlisting> - <para>The element <literal>discovery-group-ref</literal> s= pecifies the name of a - discovery group defined in <literal>hornetq-configurat= ion.xml</literal>.</para> - <para>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.</para> - <para>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:<programlisting>final String groupAddress =3D = "231.7.7.7"; + <para>=E5=85=B6=E4=B8=AD<literal>discovery-group-ref</lite= ral>=E7=9A=84=E5=80=BC=E6=98=AF=E5=AE=9A=E4=B9=89=E5=9C=A8 + <literal>hornetq-configuration.xml</literal>=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</para> + <para>=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</para> + <para>=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=9A<programlisting>final 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();</pr= ogramlisting></para> - <para>The <literal>refresh-timeout</literal> can be set di= rectly on the connection - factory by using the setter method <literal>setDiscove= ryRefreshTimeout() if you - want to change the default value.</literal></para> - <para>There is also a further parameter settable on the co= nnection factory using the - setter method <literal>setInitialWaitTimeout()</litera= l>. 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 <literal - >2000</literal> milliseconds.</para> + <para><literal>refresh-timeout</literal>=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 + <literal>setDiscoveryRefreshTimeout()</literal>=E6=96= =B9=E6=B3=95=E8=AE=BE=E7=BD=AE=E3=80=82</literal></para> + <para>=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=95<literal>setInitialWaitTimeout()</li= teral>=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=AF<literal>2000</literal>=E6=AF=AB=E7=A7=92= =E3=80=82</para> </section> <section> - <title>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. - 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> + <para>=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 + <literal>hornetq-configuration.xml</literal>=E6=96=87=E4= =BB=B6=E4=B8=AD=E7=9A=84 + <literal>cluster-connection</literal>=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</para> <programlisting> <cluster-connections> <cluster-connection name=3D"my-cluster"> @@ -333,140 +249,96 @@ </cluster-connection> </cluster-connections> = </programlisting> - <para>In the above cluster connection all parameters have been= explicitly specified. In - practice you might use the defaults for some.</para> + <para>=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</para> <itemizedlist> <listitem> - <para><literal>address</literal>. Each cluster connect= ion only applies to - messages sent to an address that starts with this = value.</para> - <para>In this case, this cluster connection will load = balance messages sent to - address that start with <literal>jms</literal>. 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".</para> - <para>The address can be any value and you can have ma= ny cluster connections - with different values of <literal>address</literal= >, 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.</para> - <para>By careful not to have multiple cluster connecti= ons with overlapping - values of <literal>address</literal>, 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. </para> - <para>This parameter is mandatory.</para> + <para><literal>address</literal>=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</para> + <para>=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=A5<liter= al>jms</literal>=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</para> + <para>=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</para> + <para>=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</para> + <para>=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</para> </listitem> <listitem> - <para><literal>retry-interval</literal>. 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.</para> - <para>This parameter determines the interval in millis= econds between retry - attempts. It has the same meaning as the <literal>= retry-interval</literal> - on a bridge (as described in <xref linkend=3D"core= -bridges" />).</para> - <para>This parameter is optional and its default value= is <literal>500</literal> - milliseconds.</para> + <para><literal>retry-interval</literal>=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</para> + <para>=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=B0<literal>retry-interval</literal> + =E7=9A=84=E5=90=AB=E4=B9=89=E7=9B=B8=E5=90=8C=EF= =BC=88=E5=8F=82=E8=A7=81<xref linkend=3D"core-bridges" />=EF=BC=89=E3=80=82= </para> + <para>=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=AF<liter= al>500</literal>=E6=AF=AB=E7=A7=92=E3=80=82</para> </listitem> <listitem> - <para><literal>use-duplicate-detection</literal>. 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.</para> - <para>This parameter has the same meaning as <literal - >use-duplicate-detection</literal> on a bridge= . For more information on - duplicate detection, please see <xref linkend=3D"d= uplicate-detection" - />.</para> - <para>This parameter is optional and has a default val= ue of <literal - >true</literal>.</para> + <para><literal>use-duplicate-detection</literal>=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</para> + <para>=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=B0<literal + >use-duplicate-detection</literal>=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 + <xref linkend=3D"duplicate-detection"/>=E3=80=82</= para> + <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=AF<literal>true</= literal>=E3=80=82</para> </listitem> <listitem> - <para><literal>forward-when-no-consumers</literal>. Th= is parameter determines - whether messages will be distributed round robin b= etween other nodes of the - cluster <emphasis>irrespective</emphasis> of wheth= er there are matching or - indeed any consumers on other nodes. </para> - <para>If this is set to <literal>true</literal> 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 - <emphasis>not</emphasis> forward messages to o= ther nodes if there are no - <emphasis>queues</emphasis> of the same name o= n the other nodes, even if - this parameter is set to <literal>true</literal>.<= /para> - <para>If this is set to <literal>false</literal> 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.</para> - <para>This parameter is optional, the default value is= <literal - >false</literal>.</para> + <para><literal>forward-when-no-consumers</literal>=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</para> + <para>=E5=A6=82=E6=9E=9C=E8=BF=99=E4=B8=AA=E5=8F=82=E6= =95=B0=E8=AE=BE=E4=B8=BA<literal>true</literal>=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</para> + <para>=E5=A6=82=E6=9E=9C=E5=8F=82=E6=95=B0=E8=AE=BE=E4= =B8=BA<literal>false</literal>=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</para> + <para>=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=AF<literal>false<= /literal>=E3=80=82</para> </listitem> <listitem> - <para><literal>max-hops</literal>. 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.</para> - <para>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.</para> - <para>The default value for this parameter is <literal= >1</literal>, which means - messages are only load balanced to other HornetQ s= erves which are - directly connected to this server. This parameter = is optional.</para> + <para><literal>max-hops</literal>=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</para> + <para>=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</para> + <para>=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 <literal>1</literal>=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</p= ara> </listitem> <listitem> - <para><literal>discovery-group-ref</literal>. 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.</para> + <para><literal>discovery-group-ref</literal>=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</para> </listitem> </itemizedlist> </section> <section id=3D"clusters.clusteruser"> - <title>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</titl= e> - <para>If you're using the core API you can also specify th= e list of servers directly - when creating the <literal>ClientSessionFactory</liter= al> instance. Here's an - example:</para> + <title>=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</tit= le> + <para>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</para> <section id=3D"symmetric-cluster"> - <title>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==--