-
# 基于amqp实现的golang消息队列 MaxQ 2017-07-01
张培培
饿了么-基础框架组
## 内容
1. 队列
2. IPC消息队列
3. AMQP协议
4. MaxQ架构模型
5. MaxQ相关特性
6. 使用场景和案例
### 1. 队列

跟消息队列相比,有哪些共性?
• 生产者消费者
• 通信方式
• 存储方式
• 堆积能力
消息可靠性
• 生产消费关系
• Pull/Push
### 2. IPC消息队列

跟消息队列相比,有哪些共性?
###
0 码力 |
22 页 |
1.45 MB
| 2 年前 3
-
表示英文字元非常高效,因為它僅需 1 位元組;使用 UTF-16 編碼某些非英文字元(例如中文)會更加高效,因為它僅需 2 位元組,而 UTF-8 可能需要 3 位元組。
从相容性的角度看,UTF-8 的通用性最佳,许多工具和库优先支持 UTF-8。
#### 3.4.5 程式語言的字元編碼
對於以往的大多數程式語言,程式執行中的字串都採用 UTF-16 或 UTF-32 這類等長編碼。在等長編碼下,我們可以將字串看作陣列來處理,這種做法具有以下優點。 algorithm)是一種透過窮舉來解決問題的方法,它的核心思想是從一個初始狀態出發,暴力搜尋所有可能的解決方案,當遇到正確的解則將其記錄,直到找到解或者嘗試了所有可能的選擇都無法找到解為止。
回溯演算法通常采用“深度优先搜寻”来走訪解空間。在“二元樹”章節中,我們提到前序、中序和後序走訪都屬於深度優先搜尋。接下來,我們利用前序走訪構造一個回溯問題,逐步瞭解回溯演算法的工作原理。
例题一
給定一棵二元樹,搜尋並記錄所有值為7的節點,請返回節點串列。 rate|缓存命中率|快取命中率|
|stack|栈|堆疊|
|top of the stack|栈顶|堆疊頂|
|bottom of the stack|栈底|堆疊底|
|queue|队列|佇列|
|double-ended queue|双向队列|雙向佇列|
|front of the queue|队首|佇列首|
|rear of the queue|队尾|佇列尾|
|hash table|哈希表|雜湊表|
|hash
0 码力 |
382 页 |
18.79 MB
| 1 年前 3
-
## 现代编程思想
队列:可变数据结构实现
Hongbo Zhang
## 队列
- 我们曾经介绍过队列这个数据结构
- 先进先出
☐ 利用两个堆栈进行实现
- 我们利用可变数据结构进行实现
- 基于数组的循环队列
☐ 单向链表
## 队列
• 我们实现以下函数(以整数队列为例)
1. struct Queue { ... }
2.
3. fn make() -> self,为了方便起见,我们将本身作为返回值传回
1. make().push(1).push(2).push(3).pop().pop().length() // 1
## 循环队列
- 我们可以利用一个数组来代表队列
- 数组是一个连续的存储空间,每一个字段均可被修改
☐ 数组被分配后长度不变
1. let a: Array[Int] = Array::make(5, 0)
2. a[1] = 2
4. println(a) // [1, 2, 0, 0, 0]
- 我们记录当前的开始和结束,每当添加新的元素的时候,结束向后移一位。如果超出数组长度,则绕回开头
## 循环队列
make()
End

Start
0 码力 |
19 页 |
314.79 KB
| 2 年前 3
-
Runtime with Mobile
## 移动端诉求:优先级
• 任务区分优先级:UI 显示 vs 后台下载
• 大小核调度
Tokio 采用了如右图这种 GMP 模式:
- 一核可以绑定多线程,每个线程拥有一个Worker,每个Worker拥有一个任务队列
• 但线程拥有相同优先级
• Worker 只持有一个本地 FIFO 队列
![Image](/uploads/documen 异步并发框架,近期计划在
OpenHarmony 上开源。与 Tokio 类似,同样为事件驱动型调度框架,提供异步 IO、定时器、同步原语等功能。但额外提供:
任务优先级调度
异步并行迭代器
■ 结构化并发
## 任务优先级调度 Task priority and quality of service
use ylong_runtime::task::Builder;
let handle UserInteractive,
UserInitiated,
Default,
Utility,
Background,
}
Linux CFS 调度:线程优先级
- 设置线程的 Nice 值给予线程不同的权重
![Image](/uploads/documents/3/7/6/8/3768f12918957029015f98546f882955/p15_1
0 码力 |
25 页 |
1.64 MB
| 2 年前 3
-
消息服务集群
统一接入网关
内部
RPC
应用
服务器
## 表3 OCI与QoS参数对应关系表
| 序号 | 资源类型 | 优先级 | 时延预算 | 分组丢失率 | 业务举例 |
| 1 | GBR(Guaranteed Bit
基础服务
支撑系统
消息PaaS平台
## 存储和中间件
账号/认证
接入管理
基础API
事件输出
逻辑回调
UI
DB
淘友关系
打点输出
消息形态
消息队列
消息业务逻辑层
群/群成员
基础监控
单聊
群聊
消息号
分布式缓存
数据模型层
定义模型
关注关系
全链路
消息
收件箱
会话
Redis
会话视图
消息模型
客户端
## 电商消息核心技术和挑战
## 电商消息多端同步设计
同步技术核心要求:
1. 客户端和服务端消息最终一致
2,不一致后增量补偿机制
3. 端侧维护syncId
消息IM
消息队列
sync可靠同步
补偿机制
在线推送
在线通道
同步/补偿机制
通道不持久化消息
消息SDK
补偿:客户端冷启动、后台切换到前台以及syncId不连续请求服务器
网络SDK
分页拉取 0 码力 |
22 页 |
12.22 MB
| 2 年前 3 -
0 码力 |
58 页 |
427.01 KB
| 2 年前 3 -
0 码力 |
1209 页 |
1.44 MB
| 2 年前 3 -
0 码力 |
1174 页 |
1.41 MB
| 2 年前 3 -
0 码力 |
285 页 |
1.19 MB
| 2 年前 3 -
0 码力 |
1215 页 |
1.44 MB
| 2 年前 3
|