ZeroC Ice权威指南-学习笔记3——IceRegistry

IceBox解决ice的启动“自动化”,让我们只专注于业务逻辑开发。
ice作为一个致力于做出“全家桶”式的RPC框架,野心可不仅限如此,它要参与部署生产的各个环节,包括分布式环境下的统一服务治理。 IceGrid应运而生
在分布式环境下,IceGrid由一个一个 IceGrid Node组成,每个IceGrid Node可以管理多一个IceBox。

  1. 在此之前我们再丰富一下程序,增加一个接口
    【img-3-1】

  2. 写具体服务实现逻辑代码:
    这个实现逻辑中又调用了OnlineBook的服务,这样就把两个服务穿在一起
    【img-3-2】

  3. 修改一下IceBox的配置文件 config…properties,把第二个服务也加进去。
    为了保留原来的配置文件,这里我选择另外写一个配置文件
    【img-3-3】

  4. 启动IceBox服务(把参数中的配置文件改为我们新写的配置文件)
    【img-3-4】

注意控制台中的[MyAppIceBox 1 ready]指的是IceBox服务的名字(在配置文件里可以看到),这个IceBox里起了两个服务接口。

  1. 写客户端代码,访问SMSService服务
    【img-3-5】

  2. 启动访问
    看服务端的日志,可以看到MyClient——>SMSService——>OnlineBook已经走通
    【img-3-6】

  3. 至此:我们已经有了一个相对复杂的IceBox业务调用过程,下面要引入一个Grid的重要角色:Ice Registry,这是IceGrid对服务进行管理的重要服务。
    引入这个服务,实现类及配置文件都会做响应的调整。为了保留代码,我对OnlineBook和SMSService的实现代码 在一个新目录(node)下重新复制一遍,同时也重新命名一下,改为OnlineBookI2和SMSServiceI2(这样就和书本上的名字对上了)
    【img-3-7】

为了确保挪完代码后的正确性,我们需要以这个新的配置文件再次启动验证一下(之前的tel目录下的MyClient还是可以用,我们只是改了实现类的位置和名字,接口服务的名字和端口并没有变)
【img-3-8】

验证完毕,代码挪成功。

8.1. Ice Registry——增加Registry配置文件
【img-3-9】

注意:

  1. 配置里我也标注了,书上的其中一个配置已经过时,有新的替代(IceGrid.Registry.LMDB.Path)。
  2. 这里新增的配置就是Ice Registry用来存数据的目录(和zookeeper类似),要手动提前创建好。
  3. 不像引入IceBox时需要引入新的jar包,使用Ice Registry时不需要引入jar包的。这是一个独立的服务,可以认为这只是一个部署工具。

8.2. Ice Registry——启动Registry服务
上面也说了,这是一个独立的服务,所以需要单独的启动运行。前面我写的Registry配置文件的用法和config.properties一样,都是在启动服务的时候,加在后面作为启动参数。
9.1 先找到Ice Registry服务。 icegridregistry.exe
【img-3-10】

8.3 启动
启动命令:icegridregistry.exe --Ice.Config=D:\ws-ecp\TestIce\src\com\node\registry.cfg
【img-3-11】

在CMD控制台中,只要不报错,就是启动正常,没有任何日志。

8.4 查看数据
前面在配置文件里我们不是配置了一个IceGrid.Registry.LMDB.Path=D:\tmp\testIce\registry\lmdbpath,看一下这里面是否有数据生成
【img-3-12】
可以确实有数据生成。

9.1. 改造项目:改config.properties
【img-3-13】
9.2. 改造项目:改造实现类
【img-3-14】

9.3. 改造客户端访问代码
因为改代码,所以我们也把MyClient也复制过来一份
【img-3-15】

  1. 验证改造完的效果
    【img-3-16】

加上Ice Registry后,调用过程正常执行。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值