当前位置:网站首页>Turn the evolutionary path of push
Turn the evolutionary path of push
2022-07-29 10:14:00 【InfoQ】
One 、 brief introduction
1.1 A term is used to explain
1.2 Existing architecture

- The existing architecture supports background push 、 Business push and personalized recommendation push .
Two 、 The process of project iteration
2.1 origin :PM Want to push operation activities
- step :
- 1)PM Export a part of the user set from the big data platform
- 2)RD Write program call push Interface
- problem :
- 1)N individual PM There is demand. ,RD..........
- 2)8 There is a sudden situation ,9 Click for a wave
- 3) Every weekend we have activities , push
- Solution :
- 1) Build a backstage , Support according to users ID Upload , Liberate and develop resources
- 2) Support push by time , Support copywriting
- 3) Support for Android 、IOS Split push
- Remaining problems :
- Problem description :
- PM Upload a data set of users who have browsed the mobile phone category , Too much data , Upload timeout
- Solution ?
- PS: The number of users is about 1000w about +, about 300M Documents on the left and right ?
- Tips :
- 1) The upload time is about 1 About minutes , You need to contact the operation and maintenance department to set the longest link time , otherwise nginx Will actively disconnect
- 2) Upload by synchronization , Change to the way of progress bar , Let the uploader see the progress
- 3) Uploading and data processing are separated ( We were uploading , Side parsing files is slow )
2.2 Major festivals , Hope to be able to notify the recent active users
2.2.1 Push in real time
- Problem description :
- Major festivals , Push all users 、 Monthly living 、 Weekly live data , Every time it's just a different copy ,PM All need to run big data systems , Efficiency is too low , Data of the day are not available , Average push needs 1 More than a hour .
- requirement :
- 1)1 Billion data can be pushed in an hour
- 2) To cover users in a certain period ( Like a month )
- 3) Support preview , Support pause
- analysis - Data volume ( With 2000w Take monthly living as an example ):
- 1) The total number of users is recognized as nearly 3 Months (90 God ) Users who have visited the Internet
- 2) It is estimated that the number of all equipment is 5000w about
- 3) The estimated space occupied is 5G
- analysis - performance ( With 2000w Take monthly living as an example ):
- 1) Old system push The average of QPS yes 2000
- 2) 2000W/2000/60/2=83~=1 Hours 20 minute , I hope it can be in 12 Push finished in minutes ( One hour push 1 Billion target )
- Difficulty analysis :
- 1) Data should be quasi real-time , How to calculate quasi real time
- 2)2000 Millions of data 12 Push finished in minutes ,QPS~=2.7w, How to improve performance 13.5 times (2k Upgrade to 2.7w Concurrent )
- Solution :
- 1) Quasi real time data
- Real time reception kafka Log message , Merge the cleaned data every minute
- 2) Data elements that need to be stored
- a) User token Information ( Notice that it's not devicetoken)
- b) this token Active time ( Time stamp )
- 3) User data storage selection
- The final effect :
- push Push the QPS achieve 3w+, While the push ability is improved , It also caused the following problems .
2.2.2 The business server cannot bear the instantaneous traffic

2.3 AB laboratory
- Problem description :
- One night 9 Click to push an operation class push, I found that the click through rate is super high , Excellent copywriting ? Or peak traffic ?
- requirement :
- 1) There are multiple push files , The system can select the best click through rate to push ?
- Solution :
- 1) Join in AB Measured ability , First push a few users , according to AB The effect of , Preferential push
2.4 Multi channel approach
- The new problem :
- Before Android channel, we only had Xiaomi channel + A push ( The reach rate of a push is average , Make a base ), If we push messages to China for mobile phones , It is also difficult to reach through the Xiaomi channel .
- requirement :
- 1) I hope we can connect all the channels of major manufacturers
- 2) The pushed message can be optimized according to the channel in which the user logs in last
- 3) Don't slow down
- Solution :
- 1) build tokens service , canBatchdetermine devicetoken The last manufacturer to use ( You need to rely on the forwarding client to report )
- 2) Store by database and table
- 3) Data hot standby to cache
- effect :
- 1) The statistics of that year can be improved 10% The achievement rate of
2.5 Real-time monitoring
- General monitoring dimensions include :
- product line : around 、 Find a beautiful machine and so on
- client : Android 、IOS
- indicators : send out 、 arrive 、 Number and proportion of clicks
- Data comparison : Templates 、 cycle
- passageway : millet 、 Huawei 、vivo、apns
3、 ... and 、 summary
边栏推荐
- [C language] minesweeping (recursive expansion + marking function)
- Read Plato farm's eplato and the reason for its high premium
- 函数和数组
- Modulenotfounderror: no module named 'pywt' solution
- ECCV 2022 | CMU提出在视觉Transformer上进行递归,不增参数,计算量还少
- leetcode刷题——排序
- [fortran]vscode配置fortran跑hello world
- Shell笔记(超级完整)
- Are you familiar with the redis cluster principle of high paid programmers & interview questions series 122? How to ensure the high availability of redis (Part 2): cluster mechanism and principle, clu
- 机器学习入门的百科全书-2018年“机器学习初学者”公众号文章汇总
猜你喜欢

This developer, who has been on the list for four consecutive weeks, has lived like a contemporary college student

ECCV 2022 | CMU提出在视觉Transformer上进行递归,不增参数,计算量还少

Only simple function test? One article takes you to advanced interface automatic testing technology in 6 steps

This is an incomplete data competition Yearbook!

【黑马早报】每日优鲜回应解散,多地已无法下单;李斌称蔚来将每年出一部手机;李嘉诚欲抄底恒大香港总部大楼;今年国庆休7天上7天...
![[ts]Typescript学习记录坑点合集](/img/4c/14991ea612de8d5c94b758174a1c26.png)
[ts]Typescript学习记录坑点合集

Follow teacher Tian to learn practical English Grammar (continuous update)

Encyclopedia of introduction to machine learning - 2018 "machine learning beginners" official account article summary

Talk about multithreaded concurrent programming from a different perspective without heap concept

不堆概念、换个角度聊多线程并发编程
随机推荐
英特尔联合Datawhale,发布学习项目!
MySQL infrastructure: SQL query statement execution process
shell编程之sed,正则表达式
Shell笔记(超级完整)
汉源高科千兆2光6电导轨式网管型工业级以太网交换机支持X-Ring冗余环网一键环网交换机
This developer, who has been on the list for four consecutive weeks, has lived like a contemporary college student
Yin Yi: my learning and growth path
English语法_不定代词 - 常用短语
[jetson][转载]jetson上安装pycharm
熊市下PLATO如何通过Elephant Swap,获得溢价收益?
二次握手??三次挥手??
Sed, regular expression of shell programming
SAP Fiori @OData. Analysis of the working principle of publish annotation
Vector implementation
TCP failure model
[configuration related]
TMS320C6000_ Tms320f28035 Chinese data manual
全面、详细的SQL学习指南(MySQL方向)
CS research assurance experience in 2021 (VI): system filling + some thoughts
Implementation and verification logic of complex expression input component
