## zero-IceStorm测试结果
延迟:1.5G/0.9S
| 速度 | MB/S |
| ------------ | ------------ |
| 发送速度 | 103.9MB/S |
| 到达速度 | 101.85MB/S |
全干掉
netstat -ano | findstr 10000
netstat -ano | findstr 10001
netstat -ano | findstr 10002
测试方法:
3p+6s
start icebox --Ice.Config=config.icebox
start subscriber.exe
start subscriber.exe
start subscriber.exe
start subscriber.exe
start subscriber.exe
start subscriber.exe
start publisher.exe
start publisher.exe
zeroice icestorm介绍
java源码:
* IceStorm APIs. IceStorm is a broker-based pub/sub service, where
* subscribers connect to publishers using topics.
延迟加载:
Ice.InitPlugins=0属性来让ICE延迟加载插件
创建实例:
Ice::ObjectAdapterPtr publishAdapter = communicator->createObjectAdapter(name + ".Publish");
获取实例
接口调用
icestorm sub端关闭连接报错:
subscriber errored out: C:\Users\vagrant\workspace\ice-dist\3.7\dist-utils\build\ice\builds\ice-v142\cpp\src\Ice\StreamSocket.cpp:302: ::Ice::ConnectionLostException:
connection lost: WSAECONNRESET retry: 0/0
如果客户端发送的消息超过了服务器的Ice.MessageSizeMax,服务器会立即关闭其连接,因此在这种情况下客户端会收到一个ConnectionLostException。此外,服务器记录
修改最大长度限制:
icestorm 服务侧配置文件*****
Ice.MessageSizeMax = 31720
订阅客户端同样需要设置*****
Ice.MessageSizeMax = 31720
发布端不需要设置该参数
这里最XX的就是要设置两处才起作用。
高可用 Replica 副本机制:
IceStorm Administration/管理员控制机制:
Qos设置
配置属性:
线程池配置
topic跨端口发布
持久化数据库配置
strom里的nodeadapter 里面的多个node类似kafka的broker集群选举机制
IceStormElection
sub端
解析配置文件
解析topic shared_ptr<IceStorm::TopicPrx> topic;
创建subadapter
subadapter 添加订阅接收回调函数
订阅激活
订阅模式根据配置文件设置
启动订阅 关联qos和topic subscribeAndGetPublisher
每接收一条数据 拿到一张发票 tick
多个插件如何顺序加载:保证了进程插件的初始化顺序,一般都是模型加载顺序
Ice.Plugin.Hello=./HelloPlugin:createHello
Ice.Plugin.Ate=./AtePlugin:createAte
Ice.PluginLoadOrder=Ate Hello
#thread pool setting
Ice.ThreadPool.Server.Size=5
Ice.ThreadPool.Server.SizeWarn=5
Ice.ThreadPool.Server.SizeMax=10
报错1:
::IceStorm::NoSuchTopic报错:
没发布过create一次即可
https://doc.zeroc.com/ice/latest/ice-services/icestorm/using-icestorm/implementing-an-icestorm-publisher
报错2:
猜测是storm内存问题导致?
icebox-IceStorm: Subscriber dec subscriber errored out:
C:\Users\vagrant\workspace\ice-dist\3.7\dist-utils\build\ice\builds\ice-v142\cpp\src\Ice\Network.cpp:2223: ::Ice::ConnectionRefusedException:
connection refused: 远程计算机拒绝网络连接。 retry: 0/0