公司要求绘画用户肖像,运营分析用户喜欢哪个话题,喜欢进入哪些页面..我想到了做请求上报处理.
目前有一台A服务器做API应用,计划增加一台B服务器,记录用户请求.
我目前想到了两个方案来记录用户请求
location / {
# 主要请求被发往服务器A
proxy_pass http://serverA;
# 请求副本被发送到服务器B
mirror /mirror;
}
location /mirror {
internal;
proxy_pass http://serverB$request_uri;
}
upstream serverA {
server A_IP_ADDRESS:PORT;
}
upstream serverB {
server B_IP_ADDRESS:PORT;
}
目前不知道这两种方案,哪一种比较好.或者还有其他什么方案吗?
我希望增加了消息上报请求尽量不要加重nginx或者A服务器wenman的负担.
A服务器目前配置,8G16核,最高QPS 500左右.
求大佬解惑
方案2,8C16G对500QPS绰绰有余,如果纯分析访问的uri,队列都不用,nginx开access log,分析log就行
nginx log不好用,因为要计划在B服务器上用php对请求做定时统计,计算.用户行为等.
谢谢大佬的回答
如果方案2,A服务器除了要接收来自nginx的500qps,还要转发500请求出去,会不会对项目造成大的性能影响呢
直接 https://clarity.microsoft.com/
牛逼啊,大佬,什么货都有
直接nginx使用lua脚本链接redis 把用户行为扔redis list 然后开个进程去拉list的数据直接写入数据库就行了
这个看上去,就跟方案2差不多了,在队列里跑
用户画像这种需求建议使用一些比较成熟的bi产品去做;
因为除了用户画像,未来可能还需要对产品的其他数据进行统计分析;
你的这个需求除了全域采集,还涉及到增长分析等。
这种业务的难点不在接收事件上报的服务器,主要在采集的端侧和分析侧;
采集端侧需要约定采集规范、协议,需要适配各种端;
分析测主要选用一款查询性能较好的数据库或者数仓服务,比如pgsql或者clickhouse等(不建议MySQL,百万的数据量的复杂查询就很慢了),一般是一些支持列式储存的数据库,后期数据量较大了需要考虑数据压缩等服务。
整体规划需要根据自身业务的量级和人员配置来规划,在没有相关经验的情况下,建议了解并购买成熟云产品。
整个技术周期是需要考虑以下几个技术点: