当前位置:网站首页>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
边栏推荐
- 【论文阅读】I-BERT: Integer-only BERT Quantization
- Which hero is the most difficult for lol in terms of code?
- Sublime Text3 set different indents for different files
- [AAAI] attention based spatiotemporal graph convolution network for traffic flow prediction
- PDF处理还收费?不可能
- 基于SSM实现高校后勤报修系统
- A little knowledge ~ miscellaneous notes on topics ~ a polymorphic problem
- Dimensionality reduction and mathematical modeling after reading blog!
- Shell notes (super complete)
- MySQL logging system: binlog, redo log and undo log
猜你喜欢

MySQL优化理论学习指南

Hanyuan high tech Gigabit 2-optical 6-conductor rail managed Industrial Ethernet switch supports X-ring redundant ring network one key ring network switch

Some suggestions for programmers to leave single

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

【AAAI】用于交通流预测的基于注意力的时空图卷积网络

消费电子,冻死在夏天

Unity3d empty package APK error summary

How to customize the opportunity closing form in dynamics 365online

这是一份不完整的数据竞赛年鉴!

Youboxun, the gold donor of the open atom open source foundation, joined hands with partners to help openharmony break the circle!
随机推荐
我的问题解决记录1:类上使用了@Component注解,想要使用这个类中的方法,便不能直接new,而应该使用# @Autowired进行注入,否则会报错(如空指针异常等)
电竞入亚后,腾讯要做下一个“NBA赛事捕手”?
程序员脱离单身的一些建议
SiC Power Semiconductor Industry Summit Forum successfully held
那句话的作用
转转push的演化之路
[jetson][reprint]pycharm installed on Jetson
Follow teacher Li to learn online generation - matrix (continuously updated)
Notes for Resume Writing
[log frame]
智慧解决问题
Summary of window system operation skills
关系型数据库之MySQL8——由内而外的深化全面学习
This is an incomplete data competition Yearbook!
Functions and arrays
Several common design methods of test cases [easy to understand]
Sublime Text3 set different indents for different files
Docker安装Redis、配置及远程连接
云服务大厂高管大变阵:技术派让位销售派
paho交叉编译
