赞
踩
1.1 什么是状态
1.1.1 无状态的例子:消费延迟计算
消息队列:
一个生产者持续写入,多个消费组分别读取,如何实时统计每个消费者落后多少条数据?
- //输入
- {
- "timestamp": 1555516800,
- "offset":
- {
- "producer": 16,
- "consumer0": 10,
- "consumer1": 7,
- "consumer2": 12
- }
- }
- //输出
- {
- "timestamp": 1555516800,
- "lag":
- {
- "consumer0": 5,
- "consumer1": 8,
- "consumer2": 3
- }
- }
1.1.2 有状态计算的例子:访问量统计
Nginx访问日志,每个请求访问一个URL地址,如何实时统计每个地址总共被访问了多少次?
输入输出:
- {
- "@timestamp": "18/Apr/2019:00:00:00",
- "remote_addr": "127.0.0.1",
- "request": "GET",
- "url": "/api/a"
- }
- {
- "url": "/api/a",
- "count": 1
- }
-
- {
- "@timestamp": "18/Apr/2019:00:00:00",
- "remote_addr": "127.0.0.1",
- "request": "POST",
- "url": "/api/b"
- }
- {
- "url": "/api/b",
- "count": 1
- }
-
- {
- "@timestamp": "18/Apr/2019:00:00:00",
- "remote_addr": "127.0.0.1",
- "request": "GET",
- "url": "/api/a"
- }
- {
- "url": "/api/a",
- "count": 2
- }
1.1.3 需要使用状态的场景
1.2 状态管理
最直接的方式:内存
对流式作业的要求
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。