神策中台代码逻辑

神策中台使用Netty作为web服务器,app将神策sdk采集的数据发送到神策中台的Controller,包含data_list(数据)和crc(校验码),Controller使用算法判断数据是否合法,不合法不做处理,合法的数据发送到RabbitMQ队列。

RabbitMQ队列消费者监听消息进行处理,对data_list进行base64解码和gzip解压缩后,得到包含很多事件的数组。

对每个事件,按照事件类型和事件名称,分发器Dispatcher将不同的事件分发到不同的管道Pipeline,一个管道Pipeline可以添加多个步骤Step进行分步处理。

例如,曝光事件被分发到PcautoContentExposurePipeline管道,PcautoContentExposurePipeline管道包含PCautoContentExposureStep对事件进行处理。

Step中处理通常为,通过事件的某属性,使用WebClient响应式客户端调用后端接口,为事件补充其他属性。

由于神策中台部署在公司IDC机房,出于安全考虑未连接外网,所以WebClient通过r系统方式调用,先用DNS类通过后端域名解析得到公网IP,再通过路由表得到后端应用的私网IP。

Step中如果调用后端接口拿到的内容可以缓存,比如通过cms文章id拿cms文章内容,使用redis,将后端内容缓存一段时间。

使用Flux Spring 5 响应式编程技术,不同的事件可以异步处理,待一次请求的所有事件都处理完毕,对事件的jsonArray字符串,再进行gzip压缩和base64编码,将数据发送到神策。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值