基于gRPC go实现消息发布订阅使用gRPC go实现 基于Topic的高效消息订阅发布模型 姓名 张凯 中国电子云 目 录 gRPC go 介绍 01 gRPC四种通信模式及落地场景 02 根据proto生成go桩代码 03 订阅者动态注册 04 发布者消息推送 05 现场案例演示 06 gRPC go介绍 gRPC是什么? 01. 副标题 开篇思考几个问题 01. 副标题 gRPC介绍 Web开发 基于通信模式如何落地? 01. 副标题 流式传输 基于通信模式如何落地? 01. 副标题 以及,本次分享的 “ ” 基于Topic消息发布订阅 基于Topic的消息发布模型简介 01. 副标题 基于Topic的消息发布模型简介 01. 副标题 BRIAN KERNGHAN service PubSubService { rpc Publish(PublishRequest) 服务器和客户端的接口代码。 --go_out=.: 类似地,这个选项指定了非 gRPC 相关的 Protocol Buffers 消息结构体等 Go 语言代码的输出目录, 同样为当前目录。protoc-gen-go 插件会处理 .proto 文 件中的消息定义并生成对应的 Go 结构体。 订阅者动态注册 01. 副标题 type subscriber chan interface{}0 码力 | 31 页 | 2.42 MB | 1 年前3
电商消息系统架构演进&mdash0 码力 | 22 页 | 12.22 MB | 1 年前3
基于amqp实现的golang消息队列MaxQ7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 1/22 基于amqp实现的golang消息队列 MaxQ 2017-07-01 张培培 饿了么-基础框架组 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 2. IPC消息队列 3. AMQP协议 4. MaxQ架构模型 5. MaxQ相关特性 6. 使用场景和案例 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 3/22 1. 队列 跟消息队列相比,有哪些共性? 7/1/2017 基于amqp实现的golang消息队列MaxQ 生产者消费者 通信方式 存储方式 堆积能力 消息可靠性 生产消费关系 Pull/Push 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.168.10.11:3999/maxq.slide#1 5/22 2. IPC消息队列 跟消息队列相比,有哪些共性? 7/1/2017 基于amqp实现的golang消息队列MaxQ http://192.1680 码力 | 22 页 | 1.45 MB | 1 年前3
4 seata-golang 分布式事务框架微信号: scottlewis 分布式事务框架 Seata-Golang 刘晓敏 H3C ⽬ 录 Demo 演示 01 Seata 原理 02 Mysql driver 原理 03 Mysql driver 接⼊ 04 TODO & QA 05 分布式事务就是指事务的参与者、⽀持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系 统的不同节点之上。简单的说,就是 统的不同节点之上。简单的说,就是⼀次⼤的操作由不同的⼩操作组成,这些⼩的操作分布在不同的服务器 上,且属于不同的应⽤,分布式事务需要保证这些⼩操作要么全部成功,要么全部失败。本质上来说,分布 式事务就是为了保证不同数据库的数据⼀致性。 什么是分布式事务问题? Demo 演示 整体机制: • ⼀阶段:业务数据和回滚⽇志记录在同⼀个本地事务中提交,释放本地锁和连接资源。 • ⼆阶段: • 提交异步化,⾮常快速地完成。 • tc 交互,报 告分⽀事务的执⾏状态。如果执⾏ Commit,connCtx 有值则把 sqlUndoItemsBuffer 中的 undoLog 和业务 数据⼀起提交到数据库,然后报告 tc 事务分⽀提交的状态(成功还是失败),否则执⾏正常的提交。如果 执⾏ Rollback,connCtx 有值则回滚然后向 tc 报告分⽀执⾏失败,tc 会根据这个状态回滚整个全局事务, connCtx 没有值则只需正常回滚。0 码力 | 14 页 | 3.23 MB | 1 年前3
华为云分布式事务DTM最佳实践servicecomb.apache.org github.com/apache?q=servicecomb 华为云分布式事务DTM最佳实践. 王启军 2 github.com/apache?q=servicecomb servicecomb.apache.org 王启军,华为云PaaS团队架构师,负责微服 务框架的开发。曾任当当网架构师,主导电商平台 架构设计;曾就职于搜狐负责手机微博的研发。 Strong 业界常用的一致性分类 5 github.com/apache?q=servicecomb servicecomb.apache.org 方案\指标 2PC 传统事务 可靠事件 TCC 柔性事务 SAGA 补偿事务 数据一致性 强一致 最终一致 最终一致 最终一致 总体性能 低 高 取决于实现 取决于实现 业务侵入性 较低侵入 高侵入 高侵入 高侵入 适用广泛性 一般 一般 高 高 低 产品成熟度 高 高 一般 低 方案对比 6 github.com/apache?q=servicecomb servicecomb.apache.org 分布式事务管理中间件 (Distributed Transaction Management,DTM) 7 github.com/apache?q=servicecomb servicecomb.apache.org DTM总体架构(TCC)0 码力 | 15 页 | 3.10 MB | 1 年前3
《Saga分布式事务解决⽅案与实践》演讲者/姜宁《Saga分布式事务解决⽅方案与实践》 演讲者/姜宁 关于我 • 华为开源能⼒力力中⼼心 • ServiceComb项⽬目负责⼈人 • Apache Member , IPMC, 多个Apache项⽬目 • RedHat, IONA, Travelsky 议题 • 微服务事务⼀一致性问题? • 业界Saga的解决⽅方案 • ServiceComb Saga的演进 • BASE • 基本可⽤用(Basically Available) • 柔性状态 (Soft state) • 最终⼀一致性 (Eventually Consistent) (刚性事务) (柔性事务) https://queue.acm.org/detail.cfm?id=1394128 TCC • Try: 尝试执⾏行行业务 • 完成所有业务检查,预留留必须的业务资源 • • 微服务内:聚合通过数据库事务保证强⼀一致 • 内刚 • 微服务间:最终⼀一致 • 外柔 微服务事务⼀一致性建议 • 1987年年Hector & Kenneth 发表论⽂文 Sagas • Saga = Long Live Transaction (LLT) • LLT = T1 + T2 + T3 + ... + Tn • 每个本地事务Tx 有对应的补偿 Cx T10 码力 | 39 页 | 2.78 MB | 1 年前3
《Saga分布式事务解决⽅案与实践》演讲者/姜宁《Saga分布式事务解决⽅方案与实践》 演讲者/姜宁 关于我 • 华为开源能⼒力力中⼼心 • ServiceComb项⽬目负责⼈人 • Apache Member , IPMC, 多个Apache项⽬目 • RedHat, IONA, Travelsky 议题 • 微服务事务⼀一致性问题? • 业界Saga的解决⽅方案 • ServiceComb Saga的演进 • BASE • 基本可⽤用(Basically Available) • 柔性状态 (Soft state) • 最终⼀一致性 (Eventually Consistent) (刚性事务) (柔性事务) https://queue.acm.org/detail.cfm?id=1394128 TCC • Try: 尝试执⾏行行业务 • 完成所有业务检查,预留留必须的业务资源 • • 微服务内:聚合通过数据库事务保证强⼀一致 • 内刚 • 微服务间:最终⼀一致 • 外柔 微服务事务⼀一致性建议 • 1987年年Hector & Kenneth 发表论⽂文 Sagas • Saga = Long Live Transaction (LLT) • LLT = T1 + T2 + T3 + ... + Tn • 每个本地事务Tx 有对应的补偿 Cx T10 码力 | 33 页 | 2.38 MB | 1 年前3
2022年美团技术年货 合辑的这些坑,你不得不防 713 基于 AI 算法的数据库异常监测系统的设计与实现 775 目录 < v Replication(上):常见复制模型 & 分布式系统挑战 792 Replication(下):事务,一致性与共识 818 TensorFlow 在美团外卖推荐场景的 GPU 训练优化实践 855 CompletableFuture 原理与实践 - 外卖商家端 API 的异步化 879 1) 完善 YOLOv6 全系列模型,持续提升检测性能。 2) 在多种硬件平台上,设计硬 件友好的模型。 3) 支持 ARM 平台部署以及量化蒸馏等全链条适配。 4) 横向拓展和 引入关联技术,如半监督、自监督学习等等。 5) 探索 YOLOv6 在更多的未知业务场 景上的泛化性能。 12 > 2022年美团技术年货 同时也欢迎社区同学加入我们,共同建设一个适合工业应用的更快更准的目标检测 [5][6]。我们团队之前也对位次偏差进行了相 关研究 [7]。而本次竞赛为了更好地衡量推荐系统对历史低热度商品的推荐效果,选手 的成绩主要采用 NDCG@50_half 指标进行排名。该指标是从整个评测数据集中取 出一半历史曝光少的点击商品,由于是低热度且有被点击的商品,可以跟更好的评估 偏差问题。本次比赛包含了以下挑战: 42 > 2022年美团技术年货 ● 赛题只提供点击数据,构造候选集时需要考虑选择性偏差问题。0 码力 | 1356 页 | 45.90 MB | 1 年前3
美团点评2018技术年货2016 年初至今,CAT 接入的应用增加了400%,机器数增加了 900%,每天处理的消息总量高达 3200 亿,存储消息量近 400TB,高峰期集群 QPS 达 650万/秒。 面对流量的成倍增长,CAT 在通信、计算、存储方面都遇到了前所未有的挑战。整个系统架构也经历了 一系列的升级和改造,包括消息采样聚合、消息存储、业务多维度指标监控、统一告警等等,项目最终稳 定落地。为公司未来几年内业务流量的稳定增长,打下了坚定的基石。 0 开源发布,支持多语言客户端及多项性能提升 - 美团技术团队 性能提升 性能提升 消息采样聚合 消息采样聚合在客户端应对大流量时起到了至关重要的作用,当采样命中或者内存队列已满时都会经 过采样聚合上报。采样聚合是对消息树拆分归类,利用本地内存做分类统计,将聚合之后的数据进行 上报,减少客户端的消息量以及降低网络开销。 通信协议优化 CAT 客户端与服务端通信协议由自定义文本协议升级 议,向下兼容旧版客户端。 测试环境:CentOS 6.5,4C8G 虚拟机 测试结果:新版相比旧版,序列化耗时降低约 3 倍 消息文件存储 新版消息文件存储进行了重新设计,解决旧版本的文件存储索引、数据文件节点过多以及随机 IO 恶化的 问题。 新版消息文件存储为了同时兼顾读写性能,引入了二级索引存储方案,对同一个应用的 IP 节点进行合 并,并且保证一定的顺序存储。下图是索引结构的0 码力 | 229 页 | 61.61 MB | 1 年前3
ThinkJS 3.0 中文文档错误事件,并进行处 理。可以在配置 src/config.js 自定义这二个错误的处理函数。 等待 think.beforeStartServer 注册的启动前处理函数执行,这里可以注册一些服务启动 前的事务处理。 如果自定义了创建服务配置 createServer ,那么执行这个函数 createServer(port, host, callback) 来创建服务。 如果没有自定义,则通过 think } this.validate(); // todo } } fullWidth 需要包含宽字节字符, fullWidth: true 。 halfWidth 需要包含半字节字符, halfWidth: true 。 hexColor 需要为个十六进制颜色值, hexColor: true 。 hex 需要为十六进制, hex: true 。 ip 需要为 true 。 md5 需要为 md5, md5: true 。 macAddress 需要为 mac 地址, macAddress: true 。 variableWidth 需要同时包含半字节和全字节字符, variableWidth: true 。 in 在某些值中, in: [...] 。 module.exports = class extends think.Logic {0 码力 | 129 页 | 2.12 MB | 1 年前3
共 416 条
- 1
- 2
- 3
- 4
- 5
- 6
- 42













