ice调通过iceReplica用所有server instance的方法---客户端控制服务端的负载均衡

ICE集群环境搭建 本文将介绍ice搭建高可用集群环境的详细操作步骤,实现 register 的主从备份、双服务器节点负载均衡等功能 1、下载:     到官网 http://www.zeroc.com/ 下载最新的Ice-x.x.x.msi (windows)版本 2、安装:     双击下载下来的安装文件,安装到自己喜欢的目录下(例:D:\Program Files\ZeroC) 3、环境配置:      设置I... 阅读详情

I

  • 使用此方法,可以增量的通知Ice服务配置的改变,刷新每个服务进程的数据
  • 可以手动控制客户端调用的负载均衡,客户端程序决定将请求发往那个进程

上代码:

import logging
import Ice,IceGrid
import time
from company.service import Handler, HandlerPrx


REC_LOCATOR = "****************************"
ICE_LOCATOR_CACH_TIMEOUT = "300"


def init_ice():
    global __rec, ice, base, communicator, rec_replicas
    p = Ice.createProperties()
    p.setProperty("Ice.Default.Locator", REC_LOCATOR)
    p.setProperty("Ice.Default.LocatorCacheTimeout", ICE_LOCATOR_CACH_TIMEOUT)
    p.setProperty("Ice.BackgroundLocatorCacheUpdates", "1")
    id = Ice.InitializationData()
    id.properties = p 

    ic = Ice.initialize(id)
    base = ic.stringToProxy("*********/Query")
    q = IceGrid.QueryPrx.checkedCast(base)

    # ICE initialize
    while(1):
        communicator = Ice.initialize(id)
        #logging.warn("-------------initing ICE------------------")
        try:
            base = communicator.stringToProxy("recommend")
            __rec = HandlerPrx.uncheckedCast(base)
            print "replicated proxy: ", __rec
            rec_replicas = q.findAllReplicas(__rec)
            print rec_replicas
            if not __rec:
                raise RuntimeError("Invalid Ice proxy")
            logging.warn("-------init completed, proxy is %s--------"%__rec)
            break
        except Exception, e:
            logging.error("CAN'T CONNECT TO ice proxy, retrying...%s", str(e))
            try:
                communicator.destroy()
            except:
                pass
            base = None
            __rec = None
            time.sleep(1)
            continue

if __name__ == "__main__":
    init_ice()
    print "normal call", __rec.getResponse("adsfadsf")
    for rr in rec_replicas:
        adapter_id = rr.ice_getAdapterId()
        print "==================", adapter_id
        rrt = HandlerPrx.checkedCast(rr)
        print "each call", rrt, rrt.getResponse("xxx")
  • 执行之后,服务端接受到的log如下,可以看出每个进程分别执行了一次(开启了4个进程)
[INFO  2012-12-19 16:27:50,327 @ 435028] - Request: xxx
[WARN  2012-12-19 16:27:50,327 @ 435028] - parse input json error!
[INFO  2012-12-19 16:27:50,328  @ 435035] - Request: xxx
[WARN  2012-12-19 16:27:50,328 @ 435035] - parse input json error!
[INFO  2012-12-19 16:27:50,330  @ 435045] - Request: xxx
[WARN  2012-12-19 16:27:50,330  @ 435045] - parse input json error!
[INFO  2012-12-19 16:27:50,331  @ 435050] - Request: xxx
[WARN  2012-12-19 16:27:50,331  @ 435050] - parse input json error!

强化学习_06_pytorch-TD3实践(BipedalWalkerHardcore-v3) DDPG的critic会高估, 从而导致actor策略失败。TD3是增加了三个关键技巧优化DDPG。经过优化后的TD3(Twin Dalayed DDPG 双延迟深度确定性策略梯度算法)适合于具有高维连续动作空间的任务。 阅读详情

相关推荐

瑞芯微Android固件修改实战:从解包到root提权完整流程(附工具包)

本文详细解析了瑞芯微Android固件深度定制全流程,涵盖从固件包解包、系统镜像修改到植入root提权与分区调整的实战步骤。通过工具链操作与原理剖析,指导开发者安全实现系统精简、权限获取及存储扩容,最终完成固件重新打包与刷机验证,适用于追求设备完全控制权的技术爱好者。

ujm56789012的博客 697

【架构升级】【03】ice负载均衡

1.设置ice_connectionCached为false client.ice_connectionCached(false); 和每一个服务端的endpoint建立tcp连接,客户端自己做负载均衡 通过netstat -nalp |grep port 检查 2.配置文件后台定时更新endpoints列表 Ice.BackgroundLocatorCacheUpdates=1 Ice.Default.LocatorCacheTimeout=5 BackgroundLocatorCacheUpdate

huiyanshizhen21的博客 473

无人驾驶-2024-09-智能驾驶与机器视觉09:视觉与多传感器融合

从本章开始,我们将详细介绍视觉与多传感器融合技术。自动驾驶中常用的传感器都有其优势和局限性,单一传感器无法应对复杂的驾驶场景。多传感器融合技术旨在综合利用不同的传感器优势,提升感知的精度和鲁棒性。本章首先介绍多传感器融合的相关概念,之后详细介绍典型的融合方法。

u013250861的博客 593

ICE的负载均衡以及如何容错

在同一个主机主机上,ICE服务支持多端口的监听。 服务端注册: tcp -h host -p port1:tcp -h host -p port2形式, 例如: IP:172.17.12.101,需要在10001和10000同时监听。 就可以写成: tcp -h 172.17.12.101 -p 10000:tcp -h 172.17.12.101 -p 10001 是不是很简单,运行...

coolsooner 237

【backtrader保姆级教学】投资组合回测

method1:探索投资组合的最有方案,使用蒙特卡洛模拟Markowitz模型。# 提取最小波动组合对应的权重, 并转换成Numpy数组。# 绘制收益-标准差的散点图,并用颜色描绘夏普比率。# 在收益-风险散点图中突出风险最小的点。:param any_day: 任意日期。# 将该点坐标显示在图中并保留四位小数。password = “替换密码”# 找到标准差最小数据的索引值。user = “替换账号”# 计算GMV投资组合收益。# 计算每项资产的夏普比率。# 设置无风险回报率为0。

weixin_38132951的博客 2314

Win10家庭版如何添加本地用户和组

在众多Windows版本中,Windows 10以其丰富的功能和卓越的性能吸引了大量用户。然而,对于使用Win10家庭版的用户来说,他们可能会遇到一些功能上的限制,特别是在用户和组管理方面。虽然家庭版在某些高级功能上有所缩减,但我们仍然可以通过一些技巧来实现对本地用户和组的管理。本文将详细介绍如何在Win10家庭版中添加本地用户和组,以便用户能够更好地管理计算机资源。

nntxthml的博客 4555

【详解】IceGrid负载均衡部署

IceGrid是ZeroC Ice框架的一部分,主要用于简化大型Ice应用的部署和管理。它提供了一个集中式的管理界面,用于服务的注册、配置管理和监控。通过IceGrid,管理员可以方便地对服务进行版本控制、动态更新配置以及监控服务状态。首先,定义一个简单的 Ice 接口 ​​Hello​​,这个接口有一个方法 ​​sayHello​​。Registry:注册表,用于存储对象适配器、服务器和客户端的信息。Locator:定位器,帮助客户端找到正确的服务器实例。Database。

牛肉胡辣汤 1156

从原理图到代码:深入解析SX1278 LoRa模块与STM32的SPI通信驱动(附完整工程)

本文深入解析了SX1278 LoRa模块与STM32的SPI通信驱动实现,从硬件原理图到完整工程代码,详细介绍了LoRa技术的通信原理、寄存器配置、SPI接口设计及低功耗优化策略。适合物联网开发者和嵌入式工程师提升远距离无线通信能力,附完整工程代码助力快速开发。

weixin_42715608的博客 423

IceGrid负载均衡部署(转)

1【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,内容如下<icegr...

weixin_30681121的博客 250

OdomLaserCalibraTool标定工具的使用及踩坑记录

首先欢迎扫码关注我的微信公众号【SLAM及ROS学习笔记】 GitHub地址 GitHub - tzhangZJU/OdomLaserCalibraTool: Extrinsic Calibration of a Odom and 2d Laser 作者博客 2d Laser 和 Odomter 内外参数标定工具原理及使用方法_知行合一-优快云博客 其实只是记录了一下我自己的标定过程,和错误解决方法。其实博客和GitHub中也有提及 Error1 这个是由于.

Studying…… 1757

嵌入式代码审计中常见的漏洞(四)

经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来。强化知识技能的同时也为读者带来更好的阅读体验。 本篇介绍了以下代码安全问题: 编号 漏洞 1 敏感信息硬编码 2 未初始化安全 3 越界访问 4 迭代器失效 5 迭代器尾部解引用

武天旭的博客 3315

ICE之——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,内容如下 #分布式系统名称 #服

冰河的专栏 7038

快速入门必看!RT-DETR手把手训练自己的数据集去跑实验,基于 ultralytics 仓库源码改进,配置虚拟环境,准备数据集、训练、验证、推理测试 ,实现0到1的完整教学过程。

本文介绍了使用Ultralytics框架训练RT-DETR模型的全流程。首先需要创建Python 3.10虚拟环境,安装指定版本的PyTorch和相关依赖包。然后准备数据集,修改配置文件,并详细介绍训练、验证和推理三个核心步骤的代码实现。训练阶段使用RTDETR类加载模型配置,设置训练参数;验证阶段评估模型性能;推理阶段可对图片、视频等进行预测。文中还提供了清华大学镜像源加速下载,以及详细的参数配置说明,帮助用户快速搭建RT-DETR目标检测模型。

Ai缝合怪、助力小伙伴高效发论文 5542

ice grid 第一篇

关键点: (1)如果想提高并发的话,还是在一个node上对于同一个application开多个server instance. 1.名词解释 。Replica groups A replica group is the term for a collection of replicated object adapters. An application can c...

weixin_30535167的博客 359

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ZeroC Ice Ice Registry实现负载均衡

另外对于多个IceBox集群该怎么负载均衡?以服务注册表Registry为依托的Service Locator组件,以及依赖其而诞生的强大的分分布式框架-IceGrid。     IceBox没有地方存储的Endpoint信息。为了解决这个问题,诞生了服务注册表Registry组件,它是一个以二进制文件形式储存运行期Ice服务注册信息的独立进程,支持主从同步,从节点可以分担查询请求,类似My

jerome 4006

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

ZeroC ICE之旅------负载均衡及容错

Zero ICE我们已经掌握其基本运行原理。下面我们主要介绍一下ICe的多端口邦定的问题。 ICE使用TCP/IP 和UDP协议,以及基于TCP/IP之上的SSL协议。SSL协议可以充分保障Server/Client数据传输的加密安全性问题。 在这里,Server如何在同一台主机监听多个端口。 关于TCP/IP还是UDP还是SSL协议的选择,还是要看具有应用的要求,通常情况下TCP/...

webwindy的专栏 924

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ice register配置从服务

参考http://blog.youkuaiyun.com/qq_31678877/article/details/53009321

夜飛雪的博客 924

基于Zero-Ice搭建的物联网监控平台

基于Zero-Ice搭建的物联网监控平台,支持本地部署、云端部署。

技术需要分享 2987

ICE简介

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

深之JohnChen的专栏 8802

IceGrid负载均衡部署

<br />++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<br /> 【IceGrid负载均衡部署步骤】<br /> 1、环境<br /> 主机1:IP=192.168.0.239,上面部署注册表服务器registry和节点node1,registry和node1运行在同一进程中;<br /> 主机2:IP=192.168.0.25,上面部署节点node2;<b

pj81102的专栏 3361

Ice 配置部署

ICE提供了灵活的配置部署方案,但为了减轻运维人员的工作量,开发的时候统一约定了一种规则,以便能够简易安装部署,所以总结了一套配置的规则。 1.1      目录结构 1.2      Icegridregistry配置与运行 根据高可用的方案,启动两个registry,一个作为master,另一个作为replica。 1)       config.master的配置如下

伯诚的Blog 8088

ICE通信之IceGrid服务(一)

一、 IceGrid功能 1. 定位服务 作为一个ICE定位服务,IceGrid的实施使客户能够间接地绑定到他们的服务器,提高应用程序的灵活性和适应不断变化的需求。 2. 按需激活 分布式部署的节点服务器,不需要立即启动,在客户端向服务器发送一个服务请求时,icegrid检查到该服务所在的服务器存在但是没有激活,则icegrid会激活这个服务器,这一过程对于客户端来说是透明的。

lihuayong的专栏 8594

ICE新手入门版

1、ICE是什么? 网络通信引擎ICE(Internet Communications Engine)是Zero C公司的分布式系统开发专家实现的一种新的高性能的面向对象中间件平台。从根本上说, ICE 为构建面向对象的客户-服务器应用提供了工具、 API( Application Program Interface)和库支持。基于ICE可以实现电信级的解决方案。 2、为什么会有ICE?...

weixin_30516243的博客 322

ICE入门

现的函数。java端调用的过程是这样的: 1。定义好接口,文件类型全部是*.ice文件。(在这个项目中这部分是C++同志完成的) 2。执行slice2java -I. XXX.ice。ICE将自动将其编译成.java文件。(参见注释1) 3。取所有生成的java文件到本地,放...

chengqinjian6893的博客 348

ICE应用实例

本文接上篇博文《ICE通信框架》如果你还没有接触过ice请先阅读我的上篇博文http://blog.youkuaiyun.com/liuzhoulong/archive/2011/03/04/6223450.aspx本文将结合实际项目,做一个基于ice的实际项目实例应用,该实例完成客户端调用服务端接口完成消息发送,计算的功能。1,创建java项目ICEServer,导入ice.jar.2,在项目下创建slice文件夹,编写model.ice,service.ice,service2.ice文件,其内容如下model.i

数据人生 8113
上一篇: LD_LIBRARY_PATH vs LIBRARY_PATH
下一篇: git config配置文件
crazyhacking
博客等级 码龄15年 299粉丝 148原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值