高可用与一致性:构建强一致性分布式数据库 TiDB-沈泰宁构建强⼀一致性分布式数据库 TiDB 沈泰宁 R & D Engineer @ PingCAP ⾃自我介绍 ⾃自我介绍 • 沈泰宁 • R&D Engineer @ PingCAP • Maintainer • rust-prometheus • grpc-rs • … ⽬目录 • What is TiDB? • How to test? What is TiDB? Single0 码力 | 45 页 | 4.63 MB | 1 年前3
苏宁易购小程序架构实践 苏宁 禹立彬围绕着小程序,各厂家也推出了一系列针对小程序的生态标准,联合 登录,授权获取用户信息,支付,通知消息,客服等等 • 对于这些生态功能来说,也需要一系列基础服务去支持 小程序的不足 • 组件化能力不足,代码复用能力弱 • API不统一,代码无法兼容 • 这些呼唤着快速解决方案 苏宁的小程序群 • 苏宁易购小程序,苏宁拼购,苏宁特卖,苏宁母婴。。。 • 苏宁优惠等 图片合成———素材+二维码朋友圈分享 小程序服务-服务通知 • 微信——收集formid • 业务系统消耗formid发送模板消息 小程序服务-数据推荐 • 百度推荐———用户冷启动服务 • 基于商品库推荐 2 小程序前端框架 CONTENTS 小程序的前端构成 小程序的业务主要分为,核心购物流 程,活动玩法,辅助页面三类 复用购物流程———同步器 • 主购物流程由于登录,支付,TAB原因,无法插件化 将同等逻辑的微信小程序页面转换为百度 • 无法精确匹配每一个组件 • 少量修改,减少工作量 易购系APP转换器 • 将小程序代码转换为基于ReactNative框架的易购版小程序 • 降低易购APP大小 • 减少开发成本 • 使用ReactNative同步实现微信小程 序组件 • 100+ API • 30+ Components 同步组件 • data转换为state •0 码力 | 36 页 | 833.39 KB | 1 年前3
领域驱动设计&中台/可视化的遗留系统微服务改造可视化的划分遗留留系统 04 可视化的拆解遗留留系统 引⾔言 遗留留系统、微服务架构 任何⼈人类的设计都会腐化 软件当然也不不例例外 拆成微服务 微服务架构的九⼤大特征 •通过服务进⾏行行组件化 •围绕业务能⼒力力组织 •做产品⽽而不不是做项⽬目 •智能端点与傻⽠瓜管道 •去中⼼心化地治理理技术 •去中⼼心化地管理理数据 •基础设施⾃自动化 •容错设计 •演进式设计 可视化能帮我们什什么 ⼩小步改造系统 可视化的认识遗留留系统 C4模型、⽤用户画像、⽤用户旅程 C4模型系统架构可视化 国家级 省级 道路路级 市级 C4模型系统架构可视化 系统上 下⽂文图 容器器图 代码图 组件图 已可视化 ⽤用户画像和旅程系统功能⽤用户可视化 ⽤用户画像 ⽤用户旅程 已可视化 突出⽤用户信息,诉求和价值体现 还原业务场景 可视化的划分遗留留系统 领域驱动设计、事件⻛风暴暴⼯工作坊、服务画布 回调 商城库存 已编辑 编辑库 存 商城库存 已扣减 扣减库 存 商城库 存 增加库存 订单 已发货 发货 订单 已签收 订单已 确认收货 收货 物流系 统 仓库库存 已占⽤用 仓库库存 已扣减 占⽤用库存 扣减库 存 创建 投诉单 订单已 退货 退货 处理理投 诉单 仓库库 存 增加库 存 退货单 已 退货单 已0 码力 | 54 页 | 3.85 MB | 1 年前3
刘道平-从0到1,移动政务应用小程序系统架构演化下载成本低、通过微信裂变传播 下载成本高、推广难、占流量、占内存 开发成本 只需开发一套,组件丰富 每个端都得开发,标准化组件少 版本更新 无感知,轻量级更新 更新麻烦,审核周期长 服务触达 利用微信载体,消息通知更简单 APP消息,打扰多,用户遗漏概率大 拓展性 程序包小,可以关联调转 无大小限制,调转较难 智能化服务能力 微信自带组件,对接更容易 需根据场景单独对接,如人脸识别、支付等 产品自主性 需依托微信平台 依托微信的账号体系,便捷登录,以授权登录、 人脸识别登录为主 • 依托公安部门互联网可信身份认证体系 • 用户登录后,业务系统不再要求用户登录 9、前端开发 -- 封装公共组件 ,磨刀不误砍柴工 1、封装DGD-SDK公共组件 2、合包工具 3、Taro框架预研 10、API网关 – 限流保护已有系统、提升访问安全性 • 1.业务应用A 向网关申请接入,网关分配paasid、token给业务应用; 1、政务云电子政务外网 :数据库、应用服务 2、政务云互联网区:静态资源、网关 3、互联网区:小程序、云服务 二、安全防护 1、仅开放指定端口 80 443 2、域名须有HTTPS证书 3、白名单 13、安全渗透测试、运维监控 -- 确保系统稳定 一、业务应用上线前必须经过安全渗透测试。 1、在测试环境中扫描出:越权查询、SQL注入、明文传输等,要求整改 2、正式环境检查: 操作系统、数据库、中间件漏洞,建议打补丁0 码力 | 35 页 | 15.60 MB | 1 年前3
《58到家技术架构快速规划与落地》 - 沈剑(1)端 (2)反向代理 (3)应用 (4)数据 58集团技术专场 1. 服务化-问题:代码拷贝 58集团技术专场 1. 服务化-问题:复杂性扩散 58集团技术专场 1. 服务化-问题:库耦合 58集团技术专场 1. 服务化-问题:DB耦合 58集团技术专场 1. 服务化-问题:SQL质量无保障 58集团技术专场 1. 服务化-解决方案:服务化 58集团技术专场 1. 服务化-58到家最佳实践 改造点 (1)Web-Framework (2)RPC-Framework (3)cache-client (4)db-client � 改造内容:加两行日志 58集团技术专场 启示:统一组件多么重要 58集团技术专场 3. 调用链跟踪-快速落地实践 � 请求链跨进程标识 � 时序标识 � 深度标识 � 数据收集 � 可视化 58集团技术专场 3. 调用链跟踪-效果 � 58集团技术专场 3. 调用链跟踪-效果 58集团技术专场 3. 调用链跟踪-效果 58集团技术专场 4. 守望者平台 � 服务信息量化管理 (1)上游 (2)下游 (3)缓存 (4)数据库 (5)操作系统 (6)… 58集团技术专场 4. 守望者平台-上游 58集团技术专场 4. 守望者平台-下游 58集团技术专场 4. 守望者平台-DB/Cache 58集团技术专场0 码力 | 42 页 | 1.52 MB | 1 年前3
QCon北京2018-业务高速发展下的互联网金融系统架构演变-张现双+资金存管 账户中心 Pc Web 支付/钱包 外 部 系 统 流控 熔断 限流 版本 更多... 标签 用户 管理平台 产品 理财单 渠道 版本 5G 措施:剥组件,拆单体,合冗余 移动后台打散 轻业务上浮 重业务下沉 API接入 指标监控 配置管理 业务前置配置 日志 配置系统 安全控制 拦截、校验 接口签名 加解密 防刷 攻击类 LUA 流量调度 降级 限流 灰度 接口分发 ??� FNS Fund 宜睿 P2P BASE Other … … 剥离到网关 部分功能前置 统一接口标准 措施:剥组件[深度定制网关] API接入 指标监控 配置管理 业务前置配置 日志 配置系统 安全控制 拦截、校验 接口签名 加解密 防刷 攻击类 接口缓存 接口重写 热点活动支持 热点功能前置 non-blocking sync、lock,cas 额度、库存、积分、优惠券… CAP 数据竞争� [sql方案示例] 乐观锁,带来重试代价 悲观锁,开销大,吞吐量差 数据库锁(全局标识拦截): update product set stock=stock-X where stock-X>=00 码力 | 42 页 | 19.96 MB | 1 年前3
领域驱动设计&中台/演进式架构的平台化落地Correlation IDs Chaos Monkey incremental change “架构量量⼦子(architectural quantum)”是⼀一个可独 ⽴立变化并部署的单元组件,其具有⾼高功能内聚性, 包含⼀一个系统正常⼯工作所需的所有结构要素。 Checkout component component component database component module database API layer client requests client requests client requests 向以“领域”为中⼼心的架构迁移 演进数据库 (like code) — Tested — Versioned — Incremental scripting all db changes incrementally db refactoring 微服务架构设计 服务地图 设计 API设计 部署架构设计 微服务⼯工程创建 开发 框架 架构 ⻛风格 资源 配置 … 架构演进 服务 关系 分析 代码 质量量 分析 数据 库分 析 领域 模型 分析 运⾏行行资 源管理理 PaaS、 容器云资 源管理理 公共 部分 产品、⼈人 员维护 定义通⽤用 约束条件 定义服务 约束条件 可视化设计 服务地图 关联变更更到需求0 码力 | 42 页 | 2.95 MB | 1 年前3
数字货币交易系统架构 Python实现 黄毅设计简单,运维方便 交易系统架构设计-关键点 • 内存撮合服务的状态持久化和高可用 • 消息处理顺序的保证 • 异步服务之间消息传送的可靠性 • K线:实时的分组聚合操作 • 高效利用关系数据库 交易系统架构设计-架构图 撮合 资金清算 行情推送 K线计算 历史成交 订单状态 PG Redis 下单 交易系统架构设计-撮合服务 • C++实现的Redis Module > ob.limit b{btc_usdt} * 10000 buy 1 10000 88181047656742912 交易系统架构设计-计算K线 • 实现为Redis Module的流式聚合组件(https://github.com/cryptorelay/redis-aggregation) $ redis-cli > agg.new agg{btc_usdt} time price amount results) pg.execute(‘update task_offset set offset=%s’, [offset]) 交易系统架构设计-关系数据库批量操作 insert into trades values (1, …) (2, …) … psycopg2.extras.execute_values( cur, ‘insert0 码力 | 24 页 | 799.65 KB | 1 年前3
联想-贺钢架构工作在国际化项目中的应用实例项目实例 -- 项目开发团队 项目 备注 项目名称 XA 支持国家 160 多语言支持 27种语言 架构师 5-8人 开发人员 中国,美国,日本,印度 三方合作伙伴 6-7家 系统组件设计 图示 系统整体架构I 系统整体架构II 对架构设计的影响I -- 数据中心的设计 数据中心早期架构 数据中心碰到的问题 • 跨国网络引起的技术问题 • 来自法务的问题 • 来自安全部门的问题 redis内存 cache,数据库(Mysql)多台(数据在一个数据中心) 千万到亿 增加Web服务器内存缓存,集群,IP负载均衡,基于内 容请求分发,Mysql优化(如减少写,2/8原则),数据在 一个数据中心 亿以上 增加异地部署(建议核心点集中,其它节点分散开),较 难分割或核心数据在同一数据中心,其它分散到不 同的节点 对架构设计的影响II -- 数据库表设计 数据库表早期设计 ID ..0 码力 | 53 页 | 2.36 MB | 1 年前3
领域驱动设计&中台/化繁为简--DDD驱动复杂业务软件架构的演进构建领域模型 架构分层 持久化层 领域层 CAD图纸管理 建模UI 通用UI组件 几何算法 通用框架机制 通用算法 CAD/BIM UI 图元绘制 显示层 应用层 CAD识别 BIM模型转换 模型编辑 批量操作 CAD模型 BIM模型 模型数据库 gcad文件 gfc文件 数据库 算量模型持久化 CAD模型持久化 BIM模型持久化 …... 构件模型0 码力 | 33 页 | 1.25 MB | 1 年前3
共 27 条
- 1
- 2
- 3













