云原生go-zero微服务框架设计思考go-zero是如何设计的 客户端 API端 Service端 缓存层 iOS PC web 安卓 HTTP协议 日志记录 加解密 鉴权&防重放 异常捕获 并发控制 数据统计 监控报警 链路跟踪 自动降载 自动熔断 超时控制 gRPC协议 日志记录 缓存控制 调用鉴权 异常捕获 并发控制 数据统计 监控报警 链路跟踪 自动降载 自动熔断 超时控制 Redis集群 Redis集群 数据库 MySQL集群 orithm/ ● https://linkerd.io/2016/03/16/beyond-round- robin-load-balancing-for-latency/ ● 流控 ● 请求鉴权 ● 请求参数校验 ● 业务聚合 ● 支持自定义中间件 api gateway层 ● Google SRE算法 ● 放弃了Netflix Hystrix算法 ● 基于滑动窗口(10秒/40窗口)0 码力 | 29 页 | 5.70 MB | 9 月前3
Golang 微服务在腾讯游戏用户运营领域的探索及实践营销 • 服务编排、运营策略 策略 微服务实践 • CDB + CKV / ETCD 服务注册发现 • CL5 / LVS CAE自动伸缩容 负载均衡 • ID / Token / IP 鉴权 • Atomic + Inmem + Redis、令牌桶 流控 • 轻重分离、单元化部署、容错 降级 • 实时上报、缓存汇聚/本地文件、ELK 日志监控告警 • Bind Golang to0 码力 | 34 页 | 1.22 MB | 1 年前3
02. Service Mesh落地之后_为sidecar注入灵魂 - 周群力业务逻辑 服务路由 熔断限流 进程通信 熔断限流 负载均衡 Service Mesh 落地实践 7 基础设施 MOSN RPC MQ Actuator Cache Config 鉴权 配置 Java/NodeJS/C++/… App P a a S 降级限流 流量镜像 … 消息 缓存 8 事情没有那么 简单 新的挑战 1:应用跟基础设施强绑定 9 MOSN0 码力 | 63 页 | 880.85 KB | 1 年前3
大规模高性能区块链架构设计模式与测试框架-李世敬版权所有 ©2016-2021 10 区块链组织形态 全球范围可以访问,不依赖于单 个公司或辖区,匿名性强,任何 参与者都可在其中写入、读取、 参与交易验证。 仅在机构内使用,读写权,记账 权由组织内自由定制。中心控制 者制定可参与和进行交易验证成 员范围。 联盟链仅限于联盟成员参与,系 统内交易确认节点为事先设定, 并通过共识机制确认。 『非许可链』公有链 私有链『许可链』 节点间⽹络通信 (传递共识消息等) 系统外部 系统内部 交易拦截器限流 在系统最外层及早对交易进⾏拦截,阻⽌交易渗透 到主流程花费不必要的系统开销 消息分发器限流 P2P⽹络层通过消息分发器将消息带权分发给对应 模块处理,降低各模块由于处理能⼒差异⽽相互⼲ 扰,保证核⼼模块正常运⾏ ⽹络带宽限流 限制节点最⼤出⼝带宽流量,适⽤于对⽹络带宽 有限制需求的场景 功能简介 22 趣链科技 版权所有0 码力 | 39 页 | 56.58 MB | 1 年前3
使用Go与redis构建有趣的应用使⽤用相同的资源, 那么它们就必须等待, 直到正在使⽤用资源的进程放弃使⽤用权为⽌止。 ⼀一个锁实现通常会有获取(acquire)和释放(release)这两种操作: • 获取操作⽤用于取得资源的独占使⽤用权。 在任何时候, 最多只能有⼀一个进程取得锁, 我们把成功 取得锁的进程称之为锁的持有者。 在锁已经被持有的情况下, 所有尝试再次获取锁的操作都会 失败。 锁 锁是⼀一种同步机制, 它可以保证 ⼀一个锁实现通常会有获取(acquire)和释放(release)这两种操作: • 获取操作⽤用于取得资源的独占使⽤用权。 在任何时候, 最多只能有⼀一个进程取得锁, 我们把成功 取得锁的进程称之为锁的持有者。 在锁已经被持有的情况下, 所有尝试再次获取锁的操作都会 失败。 • 释放操作⽤用于放弃资源的独占使⽤用权, ⼀一般由锁的持有者调⽤用。 在锁被释放之后, 其他进程就 可以尝试再次获取这个锁了了。 ⽅方法⼀一0 码力 | 176 页 | 2.34 MB | 1 年前3
2.3 用golang写一个操作系统公共数据 授 权 担 保 验 证 浏 览 器 第三⽅方应⽤用 结果显⽰示 数据解析 ⽤用户操作 数据打包 应⽤用发布 应⽤用安装 应⽤用管理 数 据 库 系 统 接 ⼝口 邮 件 模 块 前 端 架 构 WEB Server RPC 邮件⼿手机接⼝口 ⽤用户信息 ⾃自 ⼰己 好 友 节 点 信⽤用结算 路由 授 权 担 保0 码力 | 33 页 | 1014.12 KB | 1 年前3
2.2.3 Go语言的抢占式调度P:processor,虚拟处理器,M 必须获得 P 才能执⾏代码,否则必须陷⼊休 眠(后台监控线程除外),你也可以将其理解为⼀种 token,有这个 token,才 有在物理 CPU 核⼼上执⾏的权⼒。 G、P、M 的全局⼤图 调度循环的实现 第三部分 调度循环 在这⾥输⼊标题 https://www.figma.com/proto/JYM6TcdzBx7WtanhcJX0rP/bootstrap-Copy0 码力 | 44 页 | 7.43 MB | 1 年前3
03. Golang 在隐私计算平台建设中的实践 - 刘敬结合机器器学习和密码学算 法,数据联邦化训练,充 分释放数据价值 02 隐私计算平台 架构 趣链科技版权所有©2016 – 2021 9 平台体系 • 区块链协同层 数据共享⽬目录,数据确权授 权、追溯审计以及联盟治理理 • 隐私计算⽹网络 多节点通过p2p组⽹网,并基于安 全多⽅方计算、联邦学习、可信执 ⾏行行环境按照数据隐私密级进⾏行行价 值共享 • 业务应⽤用层 基于SDK接⼊入上层业务系统0 码力 | 37 页 | 6.20 MB | 1 年前3
Go 入门指南(The way to Go)@leisore @dake @glight2000 @songleo 除特别声明外,本书中的内容使用 CC BY-SA 3.0 License(创作共用 署名-相同方式共享3.0 许可协议)授 权,代码遵循 BSD 3-Clause License(3 项条款的 BSD 许可协议)。 授权许可 阅前必读 - 9 - 本文档使用 书栈(BookStack.CN) 构建 内容介绍 在接触 occurred:" + err.Error()) 3. } Go panicking: 在多层嵌套的函数调用中调用 panic,可以马上中止当前函数的执行,所有的 defer 语句都会保证执行并把控制权 交还给接收到 panic 的函数调用者。这样向上冒泡直到最顶层,并执行(每层的) defer,在栈顶处程序崩溃,并 在命令行中用传给 panic 的值报告错误情况:这个终止过程就是 panicking。 构建 13.3 从 panic 中恢复(Recover) 正如名字一样,这个(recover)内建函数被用于从 panic 或 错误场景中恢复:让程序可以从 panicking 重新 获得控制权,停止终止过程进而恢复正常执行。 recover 只能在 defer 修饰的函数(参见 6.4 节)中使用:用于取得 panic 调用中传递过来的错误值,如果 是正常执行,调用 recover0 码力 | 466 页 | 4.44 MB | 1 年前3
Go 入门指南(The way to Go)occurred:” + err.Error()) } Go panicking: 在多层嵌套的函数调用中调用 panic,可以马上中止当前函数的执行,所有的 defer 语句都会保证执行并 把控制权交还给接收到 panic 的函数调用者。这样向上冒泡直到最顶层,并执行(每层的) defer,在栈 顶处程序崩溃,并在命令行中用传给 panic 的值报告错误情况:这个终止过程就是 panicking。 中恢复(Recover) Go入门指南 - 290 - 本文档使用 看云 构建 正如名字一样,这个(recover)内建函数被用于从 panic 或 错误场景中恢复:让程序可以从 panicking 重新获得控制权,停止终止过程进而恢复正常执行。 recover 只能在 defer 修饰的函数(参见 6.4 节)中使用:用于取得 panic 调用中传递过来的错误值, 如果是正常执行,调用 recover0 码力 | 380 页 | 2.97 MB | 1 年前3
共 15 条
- 1
- 2













