 动手学深度学习 v2.0随机变量X的标准差 • Cov(X, Y ): 随机变量X和Y 的协方差 • ρ(X, Y ): 随机变量X和Y 的相关性 • H(X): 随机变量X的熵 • DKL(P∥Q): P和Q的KL‐散度 复杂度 • O:大O标记 Discussions11 11 https://discuss.d2l.ai/t/2089 目录 15 16 目录 1 引言 时至今日,人们常用的计算机程序几乎 当处理图像数据时,每一张单独的照片即为一个样本,它的特征由每个像素数值的有序列表表示。比如, 200 × 200彩色照片由200 × 200 × 3 = 120000个数值组成,其中的“3”对应于每个空间位置的红、绿、蓝通 道的强度。再比如,对于一组医疗数据,给定一组标准的特征(如年龄、生命体征和诊断),此数据可以用来 尝试预测患者是否会存活。 当每个样本的特征类别数量都是相同的时候,其特征向 线 性相关属性?比如,一个球的运动轨迹可以用球的速度、直径和质量来描述。再比如,裁缝们已经开发 出了一小部分参数,这些参数相当准确地描述了人体的形状,以适应衣服的需要。另一个例子:在欧几 里得空间中是否存在一种(任意结构的)对象的表示,使其符号属性能够很好地匹配?这可以用来描述 实体及其关系,例如“罗马”− “意大利”+ “法国”= “巴黎”。 • 因果关系(causality)和概率图模型(probabilistic0 码力 | 797 页 | 29.45 MB | 1 年前3 动手学深度学习 v2.0随机变量X的标准差 • Cov(X, Y ): 随机变量X和Y 的协方差 • ρ(X, Y ): 随机变量X和Y 的相关性 • H(X): 随机变量X的熵 • DKL(P∥Q): P和Q的KL‐散度 复杂度 • O:大O标记 Discussions11 11 https://discuss.d2l.ai/t/2089 目录 15 16 目录 1 引言 时至今日,人们常用的计算机程序几乎 当处理图像数据时,每一张单独的照片即为一个样本,它的特征由每个像素数值的有序列表表示。比如, 200 × 200彩色照片由200 × 200 × 3 = 120000个数值组成,其中的“3”对应于每个空间位置的红、绿、蓝通 道的强度。再比如,对于一组医疗数据,给定一组标准的特征(如年龄、生命体征和诊断),此数据可以用来 尝试预测患者是否会存活。 当每个样本的特征类别数量都是相同的时候,其特征向 线 性相关属性?比如,一个球的运动轨迹可以用球的速度、直径和质量来描述。再比如,裁缝们已经开发 出了一小部分参数,这些参数相当准确地描述了人体的形状,以适应衣服的需要。另一个例子:在欧几 里得空间中是否存在一种(任意结构的)对象的表示,使其符号属性能够很好地匹配?这可以用来描述 实体及其关系,例如“罗马”− “意大利”+ “法国”= “巴黎”。 • 因果关系(causality)和概率图模型(probabilistic0 码力 | 797 页 | 29.45 MB | 1 年前3
 机器学习课程-温州大学-01机器学习-引言17 ✓ 聚类(Clustering) ✓ 如何将教室里的学生按爱好、身高划分为5类? ✓ 降维( Dimensionality Reduction ) ✓ 如何将将原高维空间中的数据点映射到低维度的 空间中? 2. 机器学习的类型-无监督学习 18 ✓ 强化学习(Reinforcement Learning) ✓ 用于描述和解决智能体(agent)在与环境的交 互过程中通过学习策略以达成回报最大化或实现 “过拟合”的问题。 为此,我们再原有基础上加上用于控制模型复杂度的正则项(Regularizer),得到结构最小化准 则。具体定义是: 其中,?(?)代表对模型复杂度的惩罚。模型越复杂,?(?)越大,模型越简单,?(?)就越小。?是 一个正的常数,也叫正则化系数,用于平衡经验风险和模型复杂度。 一般来说,结构风险小的模型需要经验风险和模型复杂度同时小,因此对训练数据和测试数据 都能有较好的拟合。 ndimage N维图像 scipy.odr 正交距离回归 scipy.optimize 优化算法 scipy.signal 信号处理 scipy.sparse 稀疏矩阵 scipy.spatial 空间数据结构和算法 scipy.special 特殊数学函数 scipy.stats 统计函数 69 Python模块-Matplotlib ⚫Matplotlib Matplotlib 是一个0 码力 | 78 页 | 3.69 MB | 1 年前3 机器学习课程-温州大学-01机器学习-引言17 ✓ 聚类(Clustering) ✓ 如何将教室里的学生按爱好、身高划分为5类? ✓ 降维( Dimensionality Reduction ) ✓ 如何将将原高维空间中的数据点映射到低维度的 空间中? 2. 机器学习的类型-无监督学习 18 ✓ 强化学习(Reinforcement Learning) ✓ 用于描述和解决智能体(agent)在与环境的交 互过程中通过学习策略以达成回报最大化或实现 “过拟合”的问题。 为此,我们再原有基础上加上用于控制模型复杂度的正则项(Regularizer),得到结构最小化准 则。具体定义是: 其中,?(?)代表对模型复杂度的惩罚。模型越复杂,?(?)越大,模型越简单,?(?)就越小。?是 一个正的常数,也叫正则化系数,用于平衡经验风险和模型复杂度。 一般来说,结构风险小的模型需要经验风险和模型复杂度同时小,因此对训练数据和测试数据 都能有较好的拟合。 ndimage N维图像 scipy.odr 正交距离回归 scipy.optimize 优化算法 scipy.signal 信号处理 scipy.sparse 稀疏矩阵 scipy.spatial 空间数据结构和算法 scipy.special 特殊数学函数 scipy.stats 统计函数 69 Python模块-Matplotlib ⚫Matplotlib Matplotlib 是一个0 码力 | 78 页 | 3.69 MB | 1 年前3
 搜狗深度学习技术在广告推荐领域的应用特征组合 MxNet TensorFlow Wide&Deep 去噪 特征自动组合 (FM) 特征设计 离散特征 离散特征 容易设计;刻画细致;特 征稀疏; 特征量巨大;模型复杂度 受限 连续特征 连续特征 需要仔细设计;定长;特 征稠密 特征量相对较小,可以 使用多种模型训练 模型类别 模型类别 线性  简单、处理特征 量大、稳定性好  需借助交叉特征 • 可调参数有限,改进空间相对较小 CTR bagging • 任一模型的输出作为另一模型的特征输入 • 实现方法复杂,模型之间有依赖关系 • 实验方案较多,改进空间较大 模型融合 模型融合的工程实现 • 可支持多个不同模型的加载和计算 • 可支持模型之间的交叉和CTR的bagging • 可通过配置项随时调整模型融合方案 • 避免不必要的重复操作,减少时间复杂度 目标 • 模型本身也看做一个抽象特征 使用成本低  构 建 多 机 多 卡 GPU集群,优化 训练效率,提高 加速比 现状和计划 现状  已经实现LR+DNN融合模型的上线,收益较好  受限于线上计算资源,模型复杂度有限  线下训练流程有依赖,繁琐易出错 计划  线上服务拆分,独立出深度学习计算模块,采用低功耗GPU加速  支撑更宽、更深、更复杂的网络结构  采用Wide & Deep,线下训练流程解耦0 码力 | 22 页 | 1.60 MB | 1 年前3 搜狗深度学习技术在广告推荐领域的应用特征组合 MxNet TensorFlow Wide&Deep 去噪 特征自动组合 (FM) 特征设计 离散特征 离散特征 容易设计;刻画细致;特 征稀疏; 特征量巨大;模型复杂度 受限 连续特征 连续特征 需要仔细设计;定长;特 征稠密 特征量相对较小,可以 使用多种模型训练 模型类别 模型类别 线性  简单、处理特征 量大、稳定性好  需借助交叉特征 • 可调参数有限,改进空间相对较小 CTR bagging • 任一模型的输出作为另一模型的特征输入 • 实现方法复杂,模型之间有依赖关系 • 实验方案较多,改进空间较大 模型融合 模型融合的工程实现 • 可支持多个不同模型的加载和计算 • 可支持模型之间的交叉和CTR的bagging • 可通过配置项随时调整模型融合方案 • 避免不必要的重复操作,减少时间复杂度 目标 • 模型本身也看做一个抽象特征 使用成本低  构 建 多 机 多 卡 GPU集群,优化 训练效率,提高 加速比 现状和计划 现状  已经实现LR+DNN融合模型的上线,收益较好  受限于线上计算资源,模型复杂度有限  线下训练流程有依赖,繁琐易出错 计划  线上服务拆分,独立出深度学习计算模块,采用低功耗GPU加速  支撑更宽、更深、更复杂的网络结构  采用Wide & Deep,线下训练流程解耦0 码力 | 22 页 | 1.60 MB | 1 年前3
 云原生安全威胁分析与能力建设白皮书(来源:中国联通研究院)年,云原生产业联盟发布《云原生发展白皮书》[1],指出云原生是面 向云应用设计的一种思想理念,充分发挥云效能的最佳实践路径,帮助企业构建 弹性可靠、松耦合、易管理可观测的应用系统,提升交付效率,降低运维复杂度, 代表技术包括不可变基础设施、服务网格、声明式 API 及 Serverless 等。云 原生技术架构的典型特征包括:极致的弹性能力,不同于虚拟机分钟级的弹性响 应,以容器技术为基础的云原生 在的漏洞都可能导致容器逃逸的风险,例如 CVE-2019-5736 漏洞。 2.3.3 拒绝服务攻击 由于容器与宿主机共享 CPU、内存、磁盘空间等硬件资源,且 Docker 本 身对容器使用的资源并没有默认限制,如果单个容器耗尽宿主机的计算资源或存 储资源(例如进程数量、存储空间等),就可能导致宿主机或其他容器的拒绝服 务。 计算型 DoS 攻击:Fork Bomb 是一类典型的针对计算资源的拒绝服务攻击 攻击:针对存储资源,虽然 Docker 通过 Mount 命名空间实现 了文件系统的隔离,但 CGroups 并没有针对 AUFS 文件系统进行单个容器的存 储资源限制,因此采用 AUFS 作为存储驱动具有一定的安全风险。如果宿主机 上的某个容器向 AUFS 文件系统中不断地进行写文件操作,则可能会导致宿主 云原生安全威胁分析与能力建设白皮书 26 机存储设备空间不足,无法再满足其自身及其他容器的数据存储需求。0 码力 | 72 页 | 2.44 MB | 1 年前3 云原生安全威胁分析与能力建设白皮书(来源:中国联通研究院)年,云原生产业联盟发布《云原生发展白皮书》[1],指出云原生是面 向云应用设计的一种思想理念,充分发挥云效能的最佳实践路径,帮助企业构建 弹性可靠、松耦合、易管理可观测的应用系统,提升交付效率,降低运维复杂度, 代表技术包括不可变基础设施、服务网格、声明式 API 及 Serverless 等。云 原生技术架构的典型特征包括:极致的弹性能力,不同于虚拟机分钟级的弹性响 应,以容器技术为基础的云原生 在的漏洞都可能导致容器逃逸的风险,例如 CVE-2019-5736 漏洞。 2.3.3 拒绝服务攻击 由于容器与宿主机共享 CPU、内存、磁盘空间等硬件资源,且 Docker 本 身对容器使用的资源并没有默认限制,如果单个容器耗尽宿主机的计算资源或存 储资源(例如进程数量、存储空间等),就可能导致宿主机或其他容器的拒绝服 务。 计算型 DoS 攻击:Fork Bomb 是一类典型的针对计算资源的拒绝服务攻击 攻击:针对存储资源,虽然 Docker 通过 Mount 命名空间实现 了文件系统的隔离,但 CGroups 并没有针对 AUFS 文件系统进行单个容器的存 储资源限制,因此采用 AUFS 作为存储驱动具有一定的安全风险。如果宿主机 上的某个容器向 AUFS 文件系统中不断地进行写文件操作,则可能会导致宿主 云原生安全威胁分析与能力建设白皮书 26 机存储设备空间不足,无法再满足其自身及其他容器的数据存储需求。0 码力 | 72 页 | 2.44 MB | 1 年前3
 机器学习课程-温州大学-特征工程Analysis,主成分分析) PCA 是降维最经典的方法,它旨在是找到数据中的主成分,并利 用这些主成分来表征原始数据,从而达到降维的目的。 PCA 的思想是通过坐标轴转换,寻找数据分布的最优子空间。 对 样本 数据进 行中心化处理 求样本协方差 矩阵 对协方差矩阵进 行特征值分解, 将特征值从大到 小排列 取特征值前 ? 个 最大的对应的, 这样将原来? 维 的样本降低到? 维 步骤 低计算复杂度 目的:确保不丢失重要的特征 4. 特征选择 26 许永洪,吴林颖.中国各地区人口特征和房价波动的动态关系[J].统计研究,2019,36(01) 模型性能 • 保留尽可能多的特征,模型 的性能会提升 • 但同时模型就变复杂,计算 复杂度也同样提升 计算复杂度 • 剔除尽可能多的特征,模型的 性能会有所下降 • 但模型就变简单,也就降低计 算复杂度 VS0 码力 | 38 页 | 1.28 MB | 1 年前3 机器学习课程-温州大学-特征工程Analysis,主成分分析) PCA 是降维最经典的方法,它旨在是找到数据中的主成分,并利 用这些主成分来表征原始数据,从而达到降维的目的。 PCA 的思想是通过坐标轴转换,寻找数据分布的最优子空间。 对 样本 数据进 行中心化处理 求样本协方差 矩阵 对协方差矩阵进 行特征值分解, 将特征值从大到 小排列 取特征值前 ? 个 最大的对应的, 这样将原来? 维 的样本降低到? 维 步骤 低计算复杂度 目的:确保不丢失重要的特征 4. 特征选择 26 许永洪,吴林颖.中国各地区人口特征和房价波动的动态关系[J].统计研究,2019,36(01) 模型性能 • 保留尽可能多的特征,模型 的性能会提升 • 但同时模型就变复杂,计算 复杂度也同样提升 计算复杂度 • 剔除尽可能多的特征,模型的 性能会有所下降 • 但模型就变简单,也就降低计 算复杂度 VS0 码力 | 38 页 | 1.28 MB | 1 年前3
 机器学习课程-温州大学-11机器学习-降维Reduction)是将训练数据中的样本(实例)从高 维空间转换到低维空间,该过程与信息论中有损压缩概念密切相 关。同时要明白的,不存在完全无损的降维。 有很多种算法可以完成对原始数据的降维,在这些方法中,降维 是通过对原始数据的线性变换实现的。 7 1.降维概述 • 高维数据增加了运算的难度 • 高维使得学习算法的泛化能力变弱(例如,在最近邻分类器中, 样本复杂度随着维度成指数增长),维度越高,算法的搜索难度 数据可视化 t-distributed Stochastic Neighbor Embedding(t-SNE) t-SNE(TSNE)将数据点之间的相似度转换为概率。原始空间中的相似度由 高斯联合概率表示,嵌入空间的相似度由“学生t分布”表示。 虽然Isomap,LLE和variants等数据降维和可视化方法,更适合展开单个连 续的低维的manifold。但如果要准确的可视化样本间的相似度关系,如对于 下图所示的S曲线(不同颜色的图像表示不同类别的数据),t-SNE表现更好 。因为t-SNE主要是关注数据的局部结构。 11 1.降维概述 降维的优缺点 降维的优点: • 通过减少特征的维数,数据集存储所需的空间也相应减少,减少了特征维数所需的计算 训练时间; • 数据集特征的降维有助于快速可视化数据; • 通过处理多重共线性消除冗余特征。 降维的缺点: • 由于降维可能会丢失一些数据; • 在0 码力 | 51 页 | 3.14 MB | 1 年前3 机器学习课程-温州大学-11机器学习-降维Reduction)是将训练数据中的样本(实例)从高 维空间转换到低维空间,该过程与信息论中有损压缩概念密切相 关。同时要明白的,不存在完全无损的降维。 有很多种算法可以完成对原始数据的降维,在这些方法中,降维 是通过对原始数据的线性变换实现的。 7 1.降维概述 • 高维数据增加了运算的难度 • 高维使得学习算法的泛化能力变弱(例如,在最近邻分类器中, 样本复杂度随着维度成指数增长),维度越高,算法的搜索难度 数据可视化 t-distributed Stochastic Neighbor Embedding(t-SNE) t-SNE(TSNE)将数据点之间的相似度转换为概率。原始空间中的相似度由 高斯联合概率表示,嵌入空间的相似度由“学生t分布”表示。 虽然Isomap,LLE和variants等数据降维和可视化方法,更适合展开单个连 续的低维的manifold。但如果要准确的可视化样本间的相似度关系,如对于 下图所示的S曲线(不同颜色的图像表示不同类别的数据),t-SNE表现更好 。因为t-SNE主要是关注数据的局部结构。 11 1.降维概述 降维的优缺点 降维的优点: • 通过减少特征的维数,数据集存储所需的空间也相应减少,减少了特征维数所需的计算 训练时间; • 数据集特征的降维有助于快速可视化数据; • 通过处理多重共线性消除冗余特征。 降维的缺点: • 由于降维可能会丢失一些数据; • 在0 码力 | 51 页 | 3.14 MB | 1 年前3
 16-Nocalhost重新定义云原生开发环境-王炜法满⾜开发的配置需求。 云原⽣解放了部署和运维,开发呢? Nocalhost - 重新定义云原⽣开发环境.md 2021/1/20 2 / 7 云原⽣和 Kubernetes 的普及,进⼀步屏蔽了“微服务”应⽤的复杂度,这主要体现在部署和运维阶段。 为了解决微服务应⽤在开发、测试和⽣产阶段环境⼀致性的问题,现代的微服务应⽤开发,都会将每⼀个组 件打包成 Docker 镜像,并以⼯作负载的形式对其进⾏部署。利⽤ DevOps ⼜简单。 Nocalhost 重新梳理了开发过程所涉及到的⻆⾊和资源: 团队管理⼈员 Nocalhost - 重新定义云原⽣开发环境.md 2021/1/20 3 / 7 开发者 应⽤ 集群 开发空间 通过对这些⻆⾊和资源的重新整合,Nocalhost 重新定义了云原⽣开发环境,并带来了全新的云原⽣开发体 验。 为了快速理解 Nocalhost 重新定义的云原⽣开发环境,让我们⾸先站在不同的⻆⾊来看 控制台,控制台能够 管理⽤户、集群和应⽤。init 阶段⾃动使⽤部署 Nocalhost 的集群作为开发集群,同时创建了 Bookinfo 应⽤和开发者,并为开发者分配了 Bookinfo 应⽤的开发空间。 现在打开 VS Code ,进⼊ Nocalhost 插件,点击上⽅的“地球”按钮,同样输⼊ Web 控制台的地址,回⻋确 定。 点击 “Sign In” 按钮,输⼊开发者的登陆账号:foo@nocalhost0 码力 | 7 页 | 7.20 MB | 6 月前3 16-Nocalhost重新定义云原生开发环境-王炜法满⾜开发的配置需求。 云原⽣解放了部署和运维,开发呢? Nocalhost - 重新定义云原⽣开发环境.md 2021/1/20 2 / 7 云原⽣和 Kubernetes 的普及,进⼀步屏蔽了“微服务”应⽤的复杂度,这主要体现在部署和运维阶段。 为了解决微服务应⽤在开发、测试和⽣产阶段环境⼀致性的问题,现代的微服务应⽤开发,都会将每⼀个组 件打包成 Docker 镜像,并以⼯作负载的形式对其进⾏部署。利⽤ DevOps ⼜简单。 Nocalhost 重新梳理了开发过程所涉及到的⻆⾊和资源: 团队管理⼈员 Nocalhost - 重新定义云原⽣开发环境.md 2021/1/20 3 / 7 开发者 应⽤ 集群 开发空间 通过对这些⻆⾊和资源的重新整合,Nocalhost 重新定义了云原⽣开发环境,并带来了全新的云原⽣开发体 验。 为了快速理解 Nocalhost 重新定义的云原⽣开发环境,让我们⾸先站在不同的⻆⾊来看 控制台,控制台能够 管理⽤户、集群和应⽤。init 阶段⾃动使⽤部署 Nocalhost 的集群作为开发集群,同时创建了 Bookinfo 应⽤和开发者,并为开发者分配了 Bookinfo 应⽤的开发空间。 现在打开 VS Code ,进⼊ Nocalhost 插件,点击上⽅的“地球”按钮,同样输⼊ Web 控制台的地址,回⻋确 定。 点击 “Sign In” 按钮,输⼊开发者的登陆账号:foo@nocalhost0 码力 | 7 页 | 7.20 MB | 6 月前3
 《TensorFlow 快速入门与实战》5-实战TensorFlow手写体数字识别法真正流行起来,并带来了神经网络在80年代的辉煌。 计算梯度 MNIST Softmax 网络 将表示手写体数字的形如 [784] 的一维向量作为输入;中间定义2层 512 个神经元的隐藏层,具 备一定模型复杂度,足以识别手写体数字;最后定义1层10个神经元的全联接层,用于输出10 个不同类别的“概率”。 实战 MNIST Softmax 网络 MNIST Softmax 网络层 “Hello TensorFlow” conv) 卷积层是使用一系列卷积核与多通道输入数据做卷积的线性计算层。卷积层的提出是为了利用 输入数据(如图像)中特征的局域性和位置无关性来降低整个模型的参数量。卷积运算过程与 图像处理算法中常用的空间滤波是类似的。因此,卷积常常被通俗地理解为一种“滤波”过程, 卷积核与输入数据作用之后得到了“滤波”后的图像,从而提取出了图像的特征。 池化层(Pooling) 池化层是用于缩小数据规模的一种0 码力 | 38 页 | 1.82 MB | 1 年前3 《TensorFlow 快速入门与实战》5-实战TensorFlow手写体数字识别法真正流行起来,并带来了神经网络在80年代的辉煌。 计算梯度 MNIST Softmax 网络 将表示手写体数字的形如 [784] 的一维向量作为输入;中间定义2层 512 个神经元的隐藏层,具 备一定模型复杂度,足以识别手写体数字;最后定义1层10个神经元的全联接层,用于输出10 个不同类别的“概率”。 实战 MNIST Softmax 网络 MNIST Softmax 网络层 “Hello TensorFlow” conv) 卷积层是使用一系列卷积核与多通道输入数据做卷积的线性计算层。卷积层的提出是为了利用 输入数据(如图像)中特征的局域性和位置无关性来降低整个模型的参数量。卷积运算过程与 图像处理算法中常用的空间滤波是类似的。因此,卷积常常被通俗地理解为一种“滤波”过程, 卷积核与输入数据作用之后得到了“滤波”后的图像,从而提取出了图像的特征。 池化层(Pooling) 池化层是用于缩小数据规模的一种0 码力 | 38 页 | 1.82 MB | 1 年前3
 超大规模深度学习在美团的应用-余建平 计算耗时短:线性模型LR、树模型  模型表达能力不足,效果一般 • 复杂模型  DNN模型解决耗时是关键,利用预计算解决耗时问题  效果保障:保证用户的个性化信息,降低候选集计算复杂度 粗排模型 • 精排阶段的特点  候选集较少,通常在百级别  线上耗时相对宽松,几十毫秒(视效果而定) • 精排模型的特点  结构复杂,怎么有效果怎么来  特征多样:历史行为、统计值、id类特征、高维交叉 小规模DNN:MLP、小规模的Wide & Deep  大规模离散DNN:大规模的Wide & Deep、DeepFM、DCN 精排模型 1. Random Forest 2. XGBoost 1. MLP 2. 少量特征空间 的Wide & Deep 1. 大规模离散特征 的Wide & Deep 2. DeepFM 3. Deep Cross 树模型 小规模DNN 大规模离散DNN • 超大规模深度学习0 码力 | 41 页 | 5.96 MB | 1 年前3 超大规模深度学习在美团的应用-余建平 计算耗时短:线性模型LR、树模型  模型表达能力不足,效果一般 • 复杂模型  DNN模型解决耗时是关键,利用预计算解决耗时问题  效果保障:保证用户的个性化信息,降低候选集计算复杂度 粗排模型 • 精排阶段的特点  候选集较少,通常在百级别  线上耗时相对宽松,几十毫秒(视效果而定) • 精排模型的特点  结构复杂,怎么有效果怎么来  特征多样:历史行为、统计值、id类特征、高维交叉 小规模DNN:MLP、小规模的Wide & Deep  大规模离散DNN:大规模的Wide & Deep、DeepFM、DCN 精排模型 1. Random Forest 2. XGBoost 1. MLP 2. 少量特征空间 的Wide & Deep 1. 大规模离散特征 的Wide & Deep 2. DeepFM 3. Deep Cross 树模型 小规模DNN 大规模离散DNN • 超大规模深度学习0 码力 | 41 页 | 5.96 MB | 1 年前3
 RocketMQ v3.2.4 开发指南(2). 读一条消息,会兇读 Consume Queue,再读 Commit Log,增加了开销。 (3). 要保证 Commit Log 不 Consume Queue 完全的一致,增加了编程的复杂度。 以上缺点如何克服: (1). 随机读,尽可能让读命中 PAGECACHE,减少 IO 读操作,所以内存越大越好。如果系统中堆积的消息过多, 读数据要访问磁盘会丌会由亍随机读导致系统性能急剧下降,答案是否定的。 值相等但 key 丌等, 出亍性能的考虑冲突的检测放到客户端处理(key 的原始值是存储在消息文件中的,避免对数据文件的解析), 客户端比较一次消息体的 key 是否相同。 5. 存储;为了节省空间索引项中存储的时间是时间差值(存储时间-开始时间,开始时间存储在索引文件头中), 整个索引文件是定长的,结构也是固定的。索引文件存储结构参见图 7.4.3-3 。 7.4 服务器消息过滤 RocketMQ Tag 字 符串,而丌是 Hashcode。 为什举过滤要返样做? (1). Message Tag 存储 Hashcode,是为了在 Consume Queue 定长方式存储,节约空间。 项目开源主页:https://github.com/alibaba/RocketMQ 22 (2). 过滤过程中丌会访问 Commit Log 数据,可以保证堆积情冴下也能高效过滤。0 码力 | 52 页 | 1.61 MB | 1 年前3 RocketMQ v3.2.4 开发指南(2). 读一条消息,会兇读 Consume Queue,再读 Commit Log,增加了开销。 (3). 要保证 Commit Log 不 Consume Queue 完全的一致,增加了编程的复杂度。 以上缺点如何克服: (1). 随机读,尽可能让读命中 PAGECACHE,减少 IO 读操作,所以内存越大越好。如果系统中堆积的消息过多, 读数据要访问磁盘会丌会由亍随机读导致系统性能急剧下降,答案是否定的。 值相等但 key 丌等, 出亍性能的考虑冲突的检测放到客户端处理(key 的原始值是存储在消息文件中的,避免对数据文件的解析), 客户端比较一次消息体的 key 是否相同。 5. 存储;为了节省空间索引项中存储的时间是时间差值(存储时间-开始时间,开始时间存储在索引文件头中), 整个索引文件是定长的,结构也是固定的。索引文件存储结构参见图 7.4.3-3 。 7.4 服务器消息过滤 RocketMQ Tag 字 符串,而丌是 Hashcode。 为什举过滤要返样做? (1). Message Tag 存储 Hashcode,是为了在 Consume Queue 定长方式存储,节约空间。 项目开源主页:https://github.com/alibaba/RocketMQ 22 (2). 过滤过程中丌会访问 Commit Log 数据,可以保证堆积情冴下也能高效过滤。0 码力 | 52 页 | 1.61 MB | 1 年前3
共 174 条
- 1
- 2
- 3
- 4
- 5
- 6
- 18














