icegrid部署

本文转载自http://blog.chinaunix.net/uid-52437-id-2108749.html


通过IceGrid的位置服务配置可以方便系统部署,具体优点不谈了,下面介绍下配置流程。

例子是ice/demo/IceGrid/simple。ice是采用3.2.1版本,测试时候可以自己下载。测试端,对Client.cpp简单做了修改。配置文件和修改后的Client.cpp 在conf.tar.gz内。用户可以下载,然后根据配置放在不同机器上。为了简化我用了一个表来说明,具体可参照测试部署表(1)
文件: conf.tar.gz
大小: 1KB
下载: 下载

测试系统说明:
一个位置服务器192.168.10.6
两个node
    node4: 192.168.10.4
    node6: 192.168.10.6

 Client.cpp  测试机器  192.168.10.13
 config.grid  位置服务机器  192.168.10.6
 config.node4  服务节点  192.168.10.4
config.node6  服务节点 192.168.10.6
application.xml
 位置服务机器 192.168.10.6
                                  部署表((1)
                   
1、配置位置服务

(1) 配置 config.grid
/************************************************************************/
IceGrid.InstanceName=DemoIceGrid

#
# The IceGrid locator proxy.
#
Ice.Default.Locator=DemoIceGrid/Locator:default -h 192.168.10.6 -p 12000

#
# IceGrid registry configuration.
#
IceGrid.Registry.Client.Endpoints=default -p 12000
IceGrid.Registry.Server.Endpoints=default
IceGrid.Registry.Internal.Endpoints=default
IceGrid.Registry.Data=db/registry
IceGrid.Registry.PermissionsVerifier=DemoIceGrid/NullPermissionsVerifier
IceGrid.Registry.AdminPermissionsVerifier=DemoIceGrid/NullPermissionsVerifier
IceGrid.Registry.SSLPermissionsVerifier=DemoIceGrid/NullSSLPermissionsVerifier
IceGrid.Registry.AdminSSLPermissionsVerifier=DemoIceGrid/NullSSLPermissionsVerifier

#
# IceGrid node configuration.
#
IceGrid.Node.Name=localhost
IceGrid.Node.Endpoints=default
IceGrid.Node.Data=db/node
IceGrid.Node.CollocateRegistry=1
#IceGrid.Node.Output=db
#IceGrid.Node.RedirectErrToOut=1

#
# Trace properties.
#
IceGrid.Node.Trace.Activator=1
#IceGrid.Node.Trace.Adapter=2
#IceGrid.Node.Trace.Server=3

#
# Dummy username and password for icegridadmin.
#
IceGridAdmin.Username=foo
IceGridAdmin.Password=bar
/************************************************************************/

(2).配置应用

application.xml文件
/************************************************************************/
<icegrid>
  <application name="Simple">
    <node name="node4">
      <server id="SimpleServer" exe="./server" activation="on-demand">
    <adapter name="Hello" endpoints="tcp" register-process="true">
      <object identity="hello" type="::Demo::Hello" property="Identity"/>
    </adapter>
      </server>
    </node>

    <node name="node6">
      <server id="SimpleServer2" exe="./server" activation="on-demand">
    <adapter name="Hello" endpoints="tcp" register-process="true">
      <object identity="hello2" type="::Demo::Hello" property="Identity"/>
    </adapter>
      </server>
    </node>
  </application>
</icegrid>
/************************************************************************/
说明:该文件主要配置节点和具体服务.主要配置node name和server id(注意不要重复)即可。

2、配置节点信息:
node4节点
config.node4文件
/***********************************************************************/
#
# The IceGrid locator proxy.
#
Ice.Default.Locator=DemoIceGrid/Locator:default -h 192.168.10.6 -p 12000

#
# IceGrid registry configuration.
#
IceGrid.Registry.Client.Endpoints=default -p 12000
IceGrid.Registry.Server.Endpoints=default
IceGrid.Registry.Internal.Endpoints=default
IceGrid.Registry.Data=db/registry
#IceGrid.Registry.PermissionsVerifier=DemoIceGrid/NullPermissionsVerifier
#IceGrid.Registry.AdminPermissionsVerifier=DemoIceGrid/NullPermissionsVerifier
#IceGrid.Registry.SSLPermissionsVerifier=DemoIceGrid/NullSSLPermissionsVerifier
#IceGrid.Registry.AdminSSLPermissionsVerifier=DemoIceGrid/NullSSLPermissionsVerifier

#
# IceGrid node configuration.
#
IceGrid.Node.Name=node4
IceGrid.Node.Endpoints=default
IceGrid.Node.Data=db/node
IceGrid.Node.CollocateRegistry=1
#IceGrid.Node.Output=db
#IceGrid.Node.RedirectErrToOut=1

#
# Trace properties.
#
IceGrid.Node.Trace.Activator=1
#IceGrid.Node.Trace.Adapter=2
#IceGrid.Node.Trace.Server=3

#
# Dummy username and password for icegridadmin.
#
IceGridAdmin.Username=foo
IceGridAdmin.Password=bar
/***********************************************************************/
该文件和config.grid基本一致
注意,IceGrid.Registry注册信息一定要有而且和config.grid一致。注意和node6不一样,因为node6
和位置服务在一个机器上,注册信息已经在config.grid配置了。

node6
config.node6 文件
/***********************************************************************/
#
# The IceGrid locator proxy.
#
Ice.Default.Locator=DemoIceGrid/Locator:default -h 192.168.10.6 -p 12000

#
# IceGrid node configuration.
#
IceGrid.Node.Name=node6
IceGrid.Node.Endpoints=default
IceGrid.Node.Data=db/node
#IceGrid.Node.Output=db
#IceGrid.Node.RedirectErrToOut=1

#
# Trace properties.
#
IceGrid.Node.Trace.Activator=1
#IceGrid.Node.Trace.Adapter=2
#IceGrid.Node.Trace.Server=3

#
# Dummy username and password for icegridadmin.
#
IceGridAdmin.Username=foo
IceGridAdmin.Password=bar

/***********************************************************************/

3、启动运行
1)启动位置服务 
    icegridregistry --Ice.Config=config.grid
2)注册节点
    192.168.10.4机器:
         icegridnode --Ice.Config=config.node4  
    192.168.10.6机器:
     icegridnode --Ice.Config=config.node6
3)配置应用:
在 192.168.10.4机器上:
icegridadmin --Ice.Config=config.grid -e  "application add 'application.xml'"

4)测试
    ./client

    usage:
    t: send greeting
    p: send greeting2: shutdown server
    x: exit
    ?: help
选择t则调用 10.4机器;p则调用10.6机器
发布了33 篇原创文章 · 获赞 1 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/wang191X/article/details/45100991