Building API server-side architecture for Beginners
© ����-���� BASE, Inc. � Building API server-side architecture for Beginners GopherCon ���� ����.��.�� - @hgsgtk © ����-���� BASE, Inc. � Talk abstract • A practical approach to build server-side not be ignored © ����-���� BASE, Inc. �� Go beginners have a lot of questions� How to implement API server by net/http package How to write an unit test How to use interface type - Go basic questions implement API server by net/http package How to write an unit test - Go basic questions - ex. “Adopt clean architecture!” How to use interface type © ����-���� BASE, Inc. How to implement API server0 码力 | 38 页 | 690.29 KB | 1 年前36.从 0 到 1 搭建十亿级包裹 API Versioning
从 0 到 1 搭建十亿级包 裹 API Versioning 杨利航 AfterShip 高级研发工程师 这是 API Versioning 吗? 目 录 Why 01 What 02 How 03 Takeaway 04 Why Part 1/4 1. SaaS 产品的特点 2. API 的重要性 3. 我们 API 面临的挑战 1.1 SaaS 产品的特点 SaaS 1.2 API 的重要性 API 也是产品的一部分,而不仅仅是技术。对于 SaaS 产品,提供 API 服务几乎是与企业级用户合作的必须项,特别是在海外。 - 自动化 - 通过 API,企业可以利用 SaaS 产品的功能来构建自动 化流程和工作流程。 - 定制化 - 通过 API,企业可以开发自己的应用程序、插件或集成 其他工具,以满足特定的业务需求。 - 数据集成 - 通过 API,企业可以灵活地与 - OAuth2.0 - … 1.2.2 AfterShip API 的演进路线 业务量从十万级到十亿级,从没有 API 到高标准的 API。不是因为 API 做好了所以业务增长了,而是良 好的 API 设计才能支撑业务增长。 1.3 我们 API 面临的挑战 挑战一、变更不规律,打乱客户更新计划 向后兼容 - API 的稳定性要求避免破坏性的更改。在进行更新或修改时,应 保持对现有0 码力 | 28 页 | 2.26 MB | 1 年前3Go在数据库中间件的应用
Go在数据库中间件的应用 基础架构组/刘延允 liuyun827@foxmail.com 2017年9月 1 关于我 • 刘延允——酷狗音乐,基础架构组 • 数据库变更通知服务 • 酷狗消息队列 • 酷狗数据库中间件 • 主要工作:分布式存储、高可用、数据库 • 两年通信设备开发经验,四年互联网 • 五年C/C++使用经验,一年Golang 2 CONTENTS • 程序开发的需求 平滑上下线Mysql。 • 主备自动切换(主-主模式)。 • 分表设计——按照Hash分表 • 分表设计——按照范围分表(年、月、日、整形) • 数据库表在多个mysql实例间平滑扩容 • 大表拆分为多个子表情况下的平滑扩容 7 系统整体方案 • 现存问题 • 数据库访问基本采用直连方式 • 无法满足数据访问平台化要求 • 配置管理方式落后,运维压力大 • 为什么采用Go来实现 • go诸多优点,可用性高0 码力 | 17 页 | 4.02 MB | 1 年前34.GPT 与数据库的生态整合
GPT 与数据库的生态整合 王琦智 PingCAP TiDB 开发者生态高级工程师 目 录 自然语言到 SQL 01 自然语言到图表 02 GPTs 调用数据库 API 03 总结 04 自然语言到SQL OSS Insight 自然语言到图表 Thoughts to insights made easy(with AI) GPTs 调用数据库 API Thank You0 码力 | 21 页 | 3.33 MB | 1 年前3Go 构建大型开源分布式数据库技术内幕
Go 搭建大型开源分布式数据库技术内幕 shenli@PingCAP 关于我 ● 申砾 (Shen Li) ● TiDB 技术负责人 ● 网易有道 / 360搜索 / PingCAP ● Infrastructure software engineer 为什么需要一个新的数据库? 从单机数据库到 NewSQL ● 关系型数据库 ● NoSQL ● 中间件 ● NewSQL Processing) ● 24/7 availability, even in case of datacenter outages ● Open source, of course 如何构建分布式数据库? 原则 ● 分层 ● Make it right and make it fast. ● 测试很重要 ● 简单易用 ● 和社区结合 架构 TiKV TiKV TiKV TiKV Raft Written in Rust! TiKV API (gRPC) Transaction MVCC Raft (gRPC) RocksDB Raw KV API (https://github.com/pingc ap/tidb/blob/master/cmd /benchraw/main.go) Transactional KV API (https://github.com/pingcap0 码力 | 44 页 | 649.68 KB | 1 年前3Go Web编程
4.3 预防跨站脚本 4.4 防止多次递交表单 4.5 处理文件上传 4.6 小结 5.访问数据库 5.1 database/sql接口 5.2 使用MySQL数据库 5.3 使用SQLite数据库 5.4 使用PostgreSQL数据库 5.5 使用beedb库进行ORM开发 5.6 NOSQL数据库操作 5.7 小结 6.session和数据存储 6.1 session和cookie 管理和切换多个Go编译环境 支持Go语言交叉编译 与Go标准一致的项目管理方式 基于GOPATH的包浏览器 基于GOPATH的编译系统 基于GOPATH的Api文档检索 Go语言的编辑支持 类浏览器和大纲显示 Gocode(代码自动完成工具)的完美支持 Go语言文档查看和Api快速检索 代码表达式信息显示F1 源代码定义跳转支持F2 Gdb断点和调试支持 gofmt自动格式化支持 其他特征 支持多国语言界面显示 请求的独立性。 ServeMux的自定义 ServeMux的自定义 我们前面小节讲述conn.server的时候,其实内部是调用了http包默认的路由器,通过路由器把本次请求的信息传递 到了后端的处理函数。那么这个路由器是怎么实现的呢? 它的结构如下: type ServeMux struct { mu sync.RWMutex //锁,由于请求涉及到并发处理,因此这里需要一个锁机制0 码力 | 295 页 | 5.91 MB | 1 年前3Go可观测性实践
可观测性开源产品 每种方案都有特定的、自定义的 步骤来生产和转移符合后端存储 的遥测(Telemetry)数据,这就带 来了工具或者厂商的绑定性。 为了解决“厂商锁定问题”,监控和可观测性社区过去创建了很多开源项 目,比如OpenTracing和OpenCensus,这些标准允许用户实时收集遥测 数据并传输到所选择的后端,最终在2019年,两个组织共同组建OTel项目, 并由CNCF负责。 并由CNCF负责。 OTel目前已经成为可观测性方案开源标准,标准的好处就是有了很多选择。 OpenTelemetry OTel 组件 • API • SDK • Exporter • Collector OTel Collector • Receiver • Processor • Exporter 微服务业务架构图 项目工程layout 遥测数据处理架构 链路追踪 第二部分 就是存储在Context中,一般约定每个方法第一个参数为Context(上下文)。 覆盖组件不限于:数据库、缓存、消息队列、RPC、HTTP等。 插桩(拦截器) 创建并命名上下文(HTTP请 求或gRPC)中已存在的任意 Span的子Span,开始计时 器计时,计算Span的时长, 在函数调用结束(defer)中完 成用于传输给后端的Span。 插桩(Hook) Span的开始和结束 对于Go来说,在0 码力 | 35 页 | 2.88 MB | 1 年前3Go 入门指南(The way to Go)
编程语言的爱好者来说,这本书无疑是最适合你的一本书籍,这里包含了当前最全面的学习 资源。本书通过对官方的在线文档、名人博客、书籍、相关文章以及演讲的资料收集和整理,并结合我自 身在软件工程、编程语言和数据库开发的授课经验,将这些零碎的知识点组织成系统化的概念和技术分类 来进行讲解。 随着软件规模的不断扩大,诸多的学者和谷歌的开发者们在公司内部的软件开发过程中开始经历大量的挫 折,在诸多问题上都不能给出令人满意的解决方案,尤其是在使用 本书将会从最基础的概念讲起,同时也会讨论一些类似在应用 goroutine 和 channel 时有多少种不同的模 Go入门指南 - 1 - 本文档使用 看云 构建 式,如何在 Go 语言中使用谷歌 API,如何操作内存,如何在 Go 语言中进行程序测试和如何使用模板来 开发 Web 应用这些高级概念和技巧。 在本书的第一部分,我们将会讨论 Go 语言的起源(第 1 章),以及如何安装 Go 语言(第 2010 年 5 月:谷歌投入使用 2011 年 5 月 5 日:Google App Engine 支持 Go 语言 从 2010 年 5 月起,谷歌开始将 Go 语言投入到后端基础设施的实际开发中,例如开发用于管理后端复杂 环境的项目。有句话叫 “吃你自己的狗食”,这也体现了谷歌确实想要投资这门语言,并认为它是有生产 价值的。 Go 语言的官方网站是 golang.org,这个站点采用 Python0 码力 | 380 页 | 2.97 MB | 1 年前3Go 入门指南(The way to Go)
编程语言的爱好者来说,这本书无疑是最适合你的一本书籍,这里包含了当前最全面的学习资源。本书 通过对官方的在线文档、名人博客、书籍、相关文章以及演讲的资料收集和整理,并结合我自身在软件工程、编程语 言和数据库开发的授课经验,将这些零碎的知识点组织成系统化的概念和技术分类来进行讲解。 随着软件规模的不断扩大,诸多的学者和谷歌的开发者们在公司内部的软件开发过程中开始经历大量的挫折,在诸多 问题上都不能给出令人满意的解决方案,尤其是在使用 (书中会使用大家所熟知的缩写 “OO” 来表示面向对象)。 本书将会从最基础的概念讲起,同时也会讨论一些类似在应用 goroutine 和 channel 时有多少种不同的模式, 如何在 Go 语言中使用谷歌 API,如何操作内存,如何在 Go 语言中进行程序测试和如何使用模板来开发 Web 应 用这些高级概念和技巧。 在本书的第一部分,我们将会讨论 Go 语言的起源(第 1 章),以及如何安装 Go 语言(第 2010 年 5 月:谷歌投入使用 2011 年 5 月 5 日:Google App Engine 支持 Go 语言 从 2010 年 5 月起,谷歌开始将 Go 语言投入到后端基础设施的实际开发中,例如开发用于管理后端复杂环境的项 目。有句话叫 “吃你自己的狗食”,这也体现了谷歌确实想要投资这门语言,并认为它是有生产价值的。 Go 语言的官方网站是 golang.org,这个站点采用 Python0 码力 | 466 页 | 4.44 MB | 1 年前3go web 框架 严清
Github 满满绿格⼦子⻅见证我开发⽣生涯的⼀一⾯面 • 16 年年底组建 Go 团队,重构后端服务体 系,为此造了了⼀一些轮⼦子,如 Gear 框架 基于 kubernetes 和 SOA,部分已上线,如 TCM 消息推送服 务直接提供 HTTP/2 和 gRPC 接⼝口 • 前端架构师 ➞ 后端架构师 ⇢ 技术负责⼈人 技术学习⽆无⽌止境,逼迫个⼈人成⻓长,推进团队成⻓长 Why return gear.ErrBadRequest.WithMsg("invalid name or pass") } return nil } // 在 API 中间件中使⽤用它: func (api *User) Login(ctx *gear.Context) error { body := loginTemplate{} if err := ctx.ParseBody(&body)0 码力 | 23 页 | 333.12 KB | 1 年前3
共 78 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8