想了解各位设计埋点上报的时候,我们现在有两种方案。
你们会用哪种方案呢?
1
tensorzhang 2023-05-19 23:58:09 +08:00
2, 多一层保障。
|
2
levelworm 2023-05-20 00:11:57 +08:00 via Android
kafka 之后不进个 datalake 之类的吗?好奇。我没玩过大数据开发,在邻近领域。
|
3
haimianbihdata 2023-05-20 01:29:52 +08:00 via Android
要求实时?
|
4
ETiV 2023-05-20 01:38:12 +08:00
2
因为代码直传 kafka 会走网络,而当时如果网络不通、闪断之类的,代码上就要处理缓存、重试等逻辑 —— 不是不行,而是投入精力去写这个没必要… 而且我们也会在实际场景中碰到「过了 1 、2 天才发现数仓里的数据比之前少了很多」的情况,这时候可以用 2 里面的文件去找补回来。 |
5
Senorsen 2023-05-20 01:42:34 +08:00
2 多一层比较可靠的 buffer ,不过数据盘要设计好,log 的和应用数据 /系统盘要分开。
|
6
johnzhangbkb OP @ETiV 这个场景同时写一份到 file 也能满足吧。主要我们对 Logstash 压测,对系统资源占用还挺大的。
|
7
johnzhangbkb OP @Senorsen @tensorzhang 这个场景同时写一份到 file 也能满足吧。主要我们对 Logstash 压测,对系统资源占用还挺大的。
|
8
coolcoffee 2023-05-20 15:53:26 +08:00
不应该是先进 kafka ,再转到 logstash 吗?有多少消息都先让 Kafka 承接下来,logstash 按照固定的速率慢慢消化就行。
|
9
proxychains 2023-05-20 15:54:49 +08:00
扔到 kafka 吧. 慢慢消费
|
10
vincent7245 2023-05-20 21:05:04 +08:00
第二种,数据分析和业务系统一定要解耦,数据分析时业务的辅助,绝对不能影响业务系统的正常运行。第一种方案的弊端就是,如果 kafka 出问题了,业务系统也会遭殃
|
11
tensorzhang 2023-05-21 00:47:05 +08:00
@johnzhangbkb #7 申请加机器
|
12
tinyproxy 2023-05-21 00:48:55 +08:00
1. 时间急,或者没有额外的人力,走 2 ;
2. 时间不急,做一套 SDK ,把上报过程中可能会出现的各种问题(比如 kafka 出问题,网络出问题等等),都给处理了,然后所有人用这套 SDK 上报数据到 kafka ; |