Iphone 如何最好地存储SNMP消息并将其发送到ios?

Iphone 如何最好地存储SNMP消息并将其发送到ios?,iphone,linux,architecture,activemq,snmp,Iphone,Linux,Architecture,Activemq,Snmp,我的目标是从客户端(可能是防火墙)的后端服务器传输SNMP消息,将它们存储在某个快速数据库服务器中,并将它们推送到iOS设备(http://bit.ly/vwBf5) 我的选择是什么 封装snmp消息并通过http将其传输到db服务器,然后推送到iOS并存储在某个db中。SNMP代理->处理服务器(一些处理传入消息的引擎)->推送到iOS 然后使用一些snmp代理捕获。使用自己的ActiveMQ服务器推送到IOS,并使用一些快速持久性数据库。代理->ActiveMQ服务器(用于持久性的Hadoo

我的目标是从客户端(可能是防火墙)的后端服务器传输SNMP消息,将它们存储在某个快速数据库服务器中,并将它们推送到iOS设备(http://bit.ly/vwBf5)

我的选择是什么

  • 封装snmp消息并通过http将其传输到db服务器,然后推送到iOS并存储在某个db中。SNMP代理->处理服务器(一些处理传入消息的引擎)->推送到iOS

  • 然后使用一些snmp代理捕获。使用自己的ActiveMQ服务器推送到IOS,并使用一些快速持久性数据库。代理->ActiveMQ服务器(用于持久性的Hadoop)->iOS

  • 在db中,我将存储登录名、时间、消息、来源、发送到苹果的信息、服务器id和用户名。大多数情况下,数据库只会写入,但有时会读取(来自web请求)


    我的选择是什么:Hadoop、Cassandra、Mongo?

    好的,有点模糊。但是,既然你已经考虑了ActuMeq,请看Apache CAMEL,它也有你想要的(可能是因为它有点难以遵循):

    读取SNMP陷阱(或轮询SNMP消息),以及支持向APN和多个数据库(包括MongoDB、Hadoop以及兼容JDBC的SQL服务器)发送消息

    这只是一个在Camel代码中的示例(请注意,您需要对消息进行一些自定义格式设置以及配置,以使其正常工作,因此请不要尝试按原样运行此代码):

    或者,如果由于陷阱的高峰负载,您觉得必须进行一些分段,您也可以这样做:

    from("snmp:127.0.0.1:162?protocol=udp&type=TRAP")  // from SNMP trap
       .convertBodyTo(String.class)
       .to("seda:stagedProcess");  // 
    
    from("sead:stagedProcess")
       .setHeader(ApnsConstants.HEADER_TOKENS, constant(IOS_DEVICE_TOKEN))
       .to("apns:notify") // TO iOS
       .to("mongodb:myDb?database=mySnmp&collection=traps&operation=insert"); // To DB
    

    我们在客户端部署了snmp陷阱服务器。但认证、授权和传输需要中间件服务。以下是我们的架构的外观。
    from("snmp:127.0.0.1:162?protocol=udp&type=TRAP")  // from SNMP trap
       .convertBodyTo(String.class)
       .to("seda:stagedProcess");  // 
    
    from("sead:stagedProcess")
       .setHeader(ApnsConstants.HEADER_TOKENS, constant(IOS_DEVICE_TOKEN))
       .to("apns:notify") // TO iOS
       .to("mongodb:myDb?database=mySnmp&collection=traps&operation=insert"); // To DB