Ice服务详解及应用_IceGrid(01)IceGrid负载均衡部署

标签: ice 服务 应用 | 发表时间:2015-04-24 10:48 | 作者:zihai367
出处:http://www.iteye.com

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
【IceGrid负载均衡部署步骤】
1、环境
主机1:IP=192.168.0.239,上面部署注册表服务器registry和节点node1,registry和node1运行在同一进程中;
主机2:IP=192.168.0.25,上面部署节点node2;
其中每个节点中包含一个服务程序,服务程序均在节点启动时启动。

2、主机1配置
(1)服务程序部署XML:app_rep.xml,内容如下
<icegrid>
  <application name="Simple"> #分布式系统名称
    
    <server-template id="SimpleServer">  #服务器模板
      <parameter name="index"/> #自定义参数index
      <server id="SimpleServer-${index}" exe="./server" activation="always"> #服务器id,程序路径,启动方式
        <adapter name="Hello" endpoints="tcp" replica-group="ReplicatedHelloAdapter"/> #对象适配器配置
        <property name="Identity" value="hello"/> #服务器中自定义属性Identity
      </server>
    </server-template>

    <replica-group id="ReplicatedHelloAdapter">  
      <load-balancing type="round-robin"/>  #负载均衡配置,使用轮询调度方式(最近最少使用算法)
      <object identity="hello" type="::Demo::Hello"/> #该replica-group中的对象,客户端根据该对象标识或类型定位请求
    </replica-group>

    <node name="node1">  #节点1,对应于服务程序实例SimpleServer-1
      <server-instance template="SimpleServer" index="1"/>
    </node>

    <node name="node2">  #节点2,对应于服务程序实例SimpleServer-2
      <server-instance template="SimpleServer" index="2"/>
    </node>

  </application>

</icegrid>

--------------------------------------------------------
(2)registry和node1的配置文件config.grid,内容如下
#
# The IceGrid instance name.
#
IceGrid.InstanceName=DemoIceGrid    

#
# The IceGrid locator proxy.
#
Ice.Default.Locator=DemoIceGrid/Locator:default -p 12345    #注册表服务器的端点信息

#
# IceGrid registry configuration.
#
IceGrid.Registry.Client.Endpoints=default -p 12345
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 SQL configuration if using SQL database.
#
#Ice.Plugin.DB=IceGridSqlDB:createSqlDB
#IceGrid.SQL.DatabaseType=QSQLITE

#
# IceGrid node configuration.
#
IceGrid.Node.Name=node1            #节点1,对应于app_rep.xml中node1
IceGrid.Node.Endpoints=default
IceGrid.Node.Data=db/node        #节点1用到的目录
IceGrid.Node.CollocateRegistry=1
#IceGrid.Node.Output=db            #将节点上的服务程序的标准输出重定向到目录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、主机2配置
主机2上只需要配置node2的配置文件config.node即可,内容如下
#
# The IceGrid locator proxy.
#
Ice.Default.Locator=DemoIceGrid/Locator:default -h 192.168.0.239 -p 12345 #注册表服务器的端点信息

#
# IceGrid node configuration.
#
IceGrid.Node.Name=node2 #节点2,对应于app_rep.xml中node2
IceGrid.Node.Endpoints=default
IceGrid.Node.Data=db/node2
IceGrid.Node.Output=db/node2    #将节点上的服务程序的标准输出重定向到db/node2目录下,会自动生成输出文件
IceGrid.Node.RedirectErrToOut=1

#
# Trace properties.
#
IceGrid.Node.Trace.Activator=1
---------------------------------------------------------------
4、客户端配置
配置文件:config.client,内容如下:
#
# The IceGrid locator proxy.
#
Ice.Default.Locator=DemoIceGrid/Locator:default -h 192.168.0.239 -p 12345    #只需有注册表服务器的端点信息即可

5、启动服务程序
(1)主机1上先启动注册表和节点1,执行:icegridnode --Ice.Config=config.grid
(2)主机1上部署服务(只需部署一次,除非修改过app_rep.xml),执行:
icegridadmin --Ice.Config=config.grid -e "application add app_rep.xml"
若要重新部署,执行:icegridadmin --Ice.Config=config.grid -e "application update app_rep.xml"
(3)主机2上启动节点2,执行:icegridnode --Ice.Config=config.node,此时因为服务配置为随节点启动,所以服务自动激活;

6、打开客户端
执行./client,客户端自动连接注册表服务器,接下来便可向服务器发起访问请求。
    
7、关于程序编码调整
IceGrid的使用会导致客户端、服务器的配置文件发生变动,而代码也只需做极少的改动。主要是客户端可能会由直接代理换成间接代理。
使用了IceGrid定位服务功能后,客户端无需知道服务器上对象适配器端点,只需要对象标识或对象适配器标识或replica-group标识
便可以访问到服务器上的对象。
服务器端可以在xml中配置对象标识,客户端可以从配置文件中读取相应对象标识,这样对象标识就不需要硬编码在程序中了。    
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [ice 服务 应用] 推荐:

Ice服务详解及应用_IceGrid(01)IceGrid负载均衡部署

- - 企业架构 - ITeye博客
【IceGrid负载均衡部署步骤】. 主机1:IP=192.168.0.239,上面部署注册表服务器registry和节点node1,registry和node1运行在同一进程中;. 主机2:IP=192.168.0.25,上面部署节点node2;. 其中每个节点中包含一个服务程序,服务程序均在节点启动时启动.

ICE应用实例(01):

- - 企业架构 - ITeye博客
本文接上篇博文《ICE通信框架》如果你还没有接触过ice请先阅读我的上篇博文 http://blog.csdn.net/liuzhoulong/archive/2011/03/04/6223450.aspx. 本文将结合实际项目,做一个基于 ice的实际项目实例应用,该实例完成客户端调用服务端接口完成消息发送,计算的功能.

Ice Cream Sandwich Google+ 2.0 和 Google Music 4.0 应用泄露 [下载]

- 可可 - 谷安——谷奥Android专题站
近几天可能大家都见到了一系列下一代 Nexus 手机以及 Android 的下一个版本 Ice Cream Sandwich(ICS)方面的消息. 目前一些新版本的 Android 应用也随之流出. 现在已经可以下载到新的 Google+ 2.0 应用以及新的 Google Music 4.0 应用.

北极熊冰格:Polar Ice

- Zhen - 爱…稀奇~{新鲜:科技:创意:有趣}
爱稀奇引进过泰国Qualy的北极熊冰桶(Polar Ice Bucket),现在,我们来看看日本设计师Atsuhiro Hayashi的类似创意,北极熊冰格(Polar Ice):. 简单地说,这冰格像个圆筒,能制作出一只孤独的北极熊站在一大块浮冰上这种造型的冰块,将之加到饮料中,熊熊在浮力的作用下会高出水面,但是终究会因为冰块的融化而沉没…….

视频:Nexus Prime + Ice Cream Sandwich

- 骏骏 - 36氪
今天韩国网站Gadget.io拿到了一份泄露版的运行最新版的Ice Cream Sandwich系统的三星Nexus Prime手机视频. Nexus Prime是三星在10月11号即将发布的新手机,Ice Cream Sandwich是Google的下一代Android操作系统代号,这二个产品有望在11号那天一起发布.

ZEROC Ice 初步认识

- - 企业架构 - ITeye博客
ICE是ZEROC的开源通信协议产品,它的全称是:The Internet Communications Engine,翻译为中文是互联网通信引擎,是一个面向对象的中间件,使我们能够以最小的代价构建分布式应用程序. ICE使我们专注于应用逻辑的开发,它来处理所有底层的网络接口编程,这样我们就不用去考虑这样的细节:打开网络连接、网络数据传输的序列化与反序列化、连接失败的尝试次数等.

Android 4.0 Ice Cream Sandwich 截图曝出

- Vendetta - 爱范儿 · Beats of Bits
Ice Cream Sandwich 将是 Android 系统的一次重大升级,对此我们也非常期待,但是对于 ICS 的情况,Google 很少透露. RootzWiki 网站宣布从一个可靠的信息源得到 Android 4.0 的图片和信息. 根据该网站的说法,Ice Cream Sandwich 的开发仍处于“非常早期的阶段,功能并非 100% 可用.

Android Ice Cream Sandwich 截图首次泄露

- 请叫我火矞弟 - Engadget 中国版
继续阅读全文 Android Ice Cream Sandwich 截图首次泄露. 引用来源 | 引用来源 | 引用来源 | 此文章网址 | 转寄此文章 | 回应.

Android Ice Cream Sandwich 首张截图泄露

- Raining - cnBeta.COM
Android Ice Cream Sandwich 首张截图已经华丽地泄露出来,内部版本号是IRK36B,该版本运行在一台Nexus S上,用户界面出现了非常大的变化,图表配色转向蓝色,全新的launcher和应用程序抽屉,带来了新的GMail程序和相机的全景模式.

谷歌Android Ice Cream Sandwich发布在即

- Adam - cnBeta.COM
据国外媒体报道,谷歌目前正积极协助开发者为即将发布的Android 冰淇淋三明治(ICS)做准备,该款系统可谓一款标准手机操作系统,可用于智能手机和平板电脑. 公司已经明确表示,将发布一款能方便开发者将现有蜂窝(Honeycomb)系统下的应用程序用于智能手机的SDK,并不会做太多改动. 同时开发者还可以在使用蜂窝系统的平板电脑的动作条上构建该款SDK.