您的位置:首页 > 运维架构 > Docker

Zeroc Ice 学习笔记--Docker 部署服务

2016-09-19 00:00 691 查看
Zeroc Ice 学习笔记--Docker 部署服务
1、Docker Ice images安装

docker pull zeroc/icegridregistry

docker pull mycat/leader-icenode(包含JDK)

2、Ice Registry

registry.conf 文件:

IceGrid.InstanceName=IceGrid
IceGrid.Registry.Client.Endpoints=tcp -p 4061
IceGrid.Registry.Server.Endpoints=tcp
IceGrid.Registry.Internal.Endpoints=tcp
IceGrid.Registry.AdminPermissionsVerifier=IceGrid/NullPermissionsVerifier

#持久化目录
IceGrid.Registry.Data=.
#是否允许动态注册
IceGrid.Registry.DynamicRegistration=1

执行命令:

docker run -d --name demo_registry  -v /data/apps/light/registry/icegridreg.conf:/etc/icegridregistry.conf:ro
-v /data/apps/light/registry:/var/lib/ice/icegrid  -p 4601:4601 zeroc/icegridregistry

部分说明:--name:registry名称

/data/apps/light/registry/icegridreg.conf:指定conf文件目录,替代/etc/icegridregistry.conf

/data/apps/light/registry:指定持久化目录,替代/var/lib/ice/icegrid目录

3、IceGrid Node

#主节点位置
Ice.Default.Locator=IceGrid/Locator:tcp -h 192.168.9.111 -p 4061
#节点1数据存储目录
IceGrid.Node.Data=/var/lib/ice/icegrid/nodedata
#节点1监听端口号
IceGrid.Node.Endpoints=tcp -h 0.0.0.0
#节点1名称
IceGrid.Node.Name=node1
#IceGrid.Node.Output=/var/lib/ice/icegrid/out.log
Ice.StdErr=/var/lib/ice/icegrid/stderr.log
Ice.StdOut=/var/lib/ice/icegrid/stderr.log
IceGrid.Node.RedirectErrToOut=1
IceGrid.Node.Trace.Replica=2

执行命令:

docker run --name light-temple-node1 --net=host
-v /data/apps/light/temple-service/dist/node1.conf:/etc/icegridnode.conf:ro
-v /data/apps/light/temple-service:/var/lib/ice/icegrid -d mycat/leader-icenode

4、IceGrid

<icegrid>
<application name="light-temple">
<properties id="props">
<property name="Ice.ThreadPool.Server.Size" value="50"/>
</properties>
<server-template id="TempleServerTemplate">

<parameter name="id"/>
<icebox id="TempleServices${id}" exe="java" user="ice">
<properties>
<properties refid="props"/>
</properties>
<option>IceBox.Server</option>
<env>CLASSPATH=/var/lib/ice/icegrid/dist/jars/*</env>
<service name="TempleServices" entry="com.gwsoft.light.services.temple.TempleService">
<adapter name="TempleServices" id="TempleServices${id}" endpoints="tcp -h localhost -t 10000" replica-group="TempleServiceRep"/>
</service>

</icebox>
</server-template>
<replica-group id="TempleServiceRep">
<load-balancing type="adaptive" n-replicas="0"/>
<object identity="TempleServices" type="::temple::TempleServices"/>
</replica-group>
<node name="temple_node1">
<server-instance template="TempleServerTemplate" id="1"/>
<server-instance template="TempleServerTemplate" id="2"/>
</node>
</application>
</icegrid>

说明:

<env>CLASSPATH=/var/lib/ice/icegrid/dist/jars/*</env>

在执行命令中等同于/data/apps/light/temple-service/dist/jars/*

endpoints="tcp -h localhost -t 10000"

设置当前服务endpoints属性,显著提升client调用响应时间

执行命令:









5、Client调用服务

--Ice.Default.Locator=IceGrid/Locator:tcp -h 192.168.9.111 -p 4061

自己相对于更改-h 、-p并可以调用服务
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Zeroc ICE Docker Java