云原生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 趣链科技 版权所有 经济金融 民生服务 智慧政务 社会治理 智慧城市 ··· 能源电力 飞洛 BaaS 密钥管理 业务数据可视化 智能合约研发 联盟组织管理 节点管理 合约安全审计 日志分析与告警 统一身份认证 专有联盟链 监控运维 应用研发 司法存证链 通用链 数字身份链 ··· 公共联盟链 溯源链 跨链服务 联盟链 Hyperchain 隐私保护 联盟治理 高效执行引擎 自适应共识 混合型存储0 码力 | 39 页 | 56.58 MB | 1 年前3
Go Web编程controller设计 13.4 日志和配置设计 13.5 实现博客的增删改 13.6 小结 14.扩展Web框架 14.1 静态文件支持 14.2 Session支持 14.3 表单支持 14.4 用户认证 14.5 多语言支持 14.6 pprof支持 14.7 小结 附录A 参考资料 5 1 GO环境配置 1 GO环境配置 欢迎来到Go的世界,让我们开始探索吧! Go是一种新的语言 135 6.1 session和cookie 6.1 session和cookie session和cookie是网站浏览中较为常见的两个概念,也是比较难以辨析的两个概念,但它们在浏览需要认证的服务 页面以及页面统计中却相当关键。我们先来了解一下session和cookie怎么来的?考虑这样一个问题: 如何抓取一个访问受限的网页?如新浪微博好友的主页,个人微博页面等。 显然,通过 显然,通过浏览器,我们可以手动输入用户名和密码来访问页面,而所谓的“抓取”,其实就是使用程序来模拟完成 同样的工作,因此我们需要了解“登陆”过程中到底发生了什么。 当用户来到微博登陆页面,输入用户名和密码之后点击“登录”后浏览器将认证信息POST给远端的服务器,服务器执 行验证逻辑,如果验证通过,则浏览器会跳转到登录用户的微博首页,在登录成功后,服务器如何验证我们对其他受 限制页面的访问呢?因为HTTP协议是无状态的,所以很显然0 码力 | 295 页 | 5.91 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
Golang在接入层长连接服务中的实践-黄欣statusLoop() 心得—profiling • Timer优化 • Channel使用优化 心得—timer优化 • 为什么需要优化? – 万级别的连接 – 每个连接上大量的定时任务(心跳检测,注册检测,认证检测) 实际情况:当10w左右连接,什么数据不收发,只有定时器检测心跳超时,cpu 能耗掉一个core • 怎么优化? – 特点: • 秒级别定时任务 • 范围最多60s – 方案: •0 码力 | 31 页 | 1.67 MB | 1 年前3
1.5 Go 语言构建高并发分布式系统实践Android IOS Linux Web Windows Flash Iframe for ever 写 ������/ � �� �������� ������� 长连接客户端 认证或注册的io调 用 加载离线消息 ����� 客户端关注的 阻塞io逻辑,放 心阻塞执行不 用担心阻塞线 程,调度器会 帮忙调度其他 可执行协程 ������� ��� 读 ���� ��0 码力 | 39 页 | 5.23 MB | 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
共 18 条
- 1
- 2













