美文网首页
双层nginx+lua(OpenResty) + kafka +

双层nginx+lua(OpenResty) + kafka +

作者: wuyuan0127 | 来源:发表于2017-08-17 14:35 被阅读0次

    在 分发层 用 lua 的 kafka 工具包 , 把商品数据传输到 kafka 中, 

    然后 storm 的 kafkaSpout 对 kafka 数据进行消费 并发射到 HotProductBolt中

    HotProductBolt 对 kafka message进行 解析 ,发射 productId 到  ProductCountBolt 中

    ProductCountBolt 利用 LRUMap 对 productId 出现的次数进行统计,选出 95% productId次数的 平均值,然后  同一时刻,productId的次数,超过

    95% productId的平均值的 10倍,可认为 是突发热点商品, 将这些商品 根据  调用 nginx+lua 提供的接口 

      在ProductCountBolt 调用 分发层OpenResty 接口写 productId 到 其中的 share内存中,如果发现有 这些商品 就进行 随机负载,而不是 hash负载均衡 

    在ProductCountBolt 调用 业务层OpenResty 接口写 productId 对应的完整商品数据到 share 内存,这样就能在 业务层的 nginx 内存中获取到商品数据

    同时还需要把 上一次的热点数据记录下来,下一次统计出来热点数据的时候,进行 diff操作  把,热点数据从 分发层OpenResty 业务层OpenResty 移除

    相关文章

      网友评论

          本文标题:双层nginx+lua(OpenResty) + kafka +

          本文链接:https://www.haomeiwen.com/subject/grmurxtx.html