Go 构建大型开源分布式数据库技术内幕Go 搭建大型开源分布式数据库技术内幕 shenli@PingCAP 关于我 ● 申砾 (Shen Li) ● TiDB 技术负责人 ● 网易有道 / 360搜索 / PingCAP ● Infrastructure software engineer 为什么需要一个新的数据库? 从单机数据库到 NewSQL ● 关系型数据库 ● NoSQL ● 中间件 ● NewSQL0 码力 | 44 页 | 649.68 KB | 1 年前3
 Go Web编程web工作方式 3.2 Go搭建一个简单的web服务 3.3 Go如何使得web工作 3.4 Go的http包详解 3.5 小结 4.表单 4.1 处理表单的输入 4.2 验证表单的输入 4.3 预防跨站脚本 4.4 防止多次递交表单 4.5 处理文件上传 4.6 小结 5.访问数据库 5.1 database/sql接口 5.2 使用MySQL数据库 5.3 使用SQLite数据库 5.4 使用PostgreSQL数据库 17 1.4 Go开发工具 1.4 Go开发工具 本节我将介绍几个开发工具,它们都具有自动化提示,自动化fmt功能。因为它们都是跨平台的,所以安装步骤之类 的都是通用的。 LiteIDE LiteIDE LiteIDE是一款专门为Go语言开发的跨平台轻量级集成开发环境(IDE),由visualfc编写。 18 图1.4 LiteIDE主界面 LiteIDE主要特点: x, y := <-c, <-c // receive from c fmt.Println(x, y, x + y) } 默认情况下,channel接收和发送数据都是阻塞的,除非另一端已经准备好,这样就使得Goroutines同步变的更加的 简单,而不需要显式的lock。所谓阻塞,也就是如果读取(value := <-ch)它将会被阻塞,直到有数据接收。其 次,任何发送(ch<-50 码力 | 295 页 | 5.91 MB | 1 年前3
 GoFrame框架介绍及设计设计模式:MVC、三层架构、工具集 • 应用接口:HTTP/TCP/UDP/RPC Server、终端应用、源码接口 • 数据库类型:通过标准库驱动接口支持多种数据库类型 • 跨平台性:基于Golang开发语言强大跨平台特性 框架介绍-项目初心 工程化建设 统一框架 核心组件 项目架构 设计模式 开发规范 开发文档 开发工具 …… 模块化设计 第二部分 • 复用原则 • 单仓包设计 发布文件往往很小 源代码 解释器 输出 每次执行都需要解释 打包发布 解释型语言: 发布文件往往较大 统一框架设计 第三部分 • 技术体系化 • 开发规范化 • 组件统一化 • 形成技术沉淀 • 避免资源浪费 统一框架设计 统一框架设计-技术体系化 Container Converting Errors I18N Cache Validater Configure 统一框架设计-形成技术沉淀 发现问题 分析问题 解决问题 方案沉淀 统一框架 基于统一的开发框架,更容易形成技术沉淀,企业与社区形成良性循环。 统一框架设计-避免资源浪费 当每个团队都在试图自己创造轮子时,不仅 无法形成统一的开发规范,而且会出现非常 多的资源浪费。 让项目组把精力更多的投入到业务中,相信 这是大多数技术公司的共识。使用统一的开 发架构,可以把共性的技术问题提炼出来,0 码力 | 37 页 | 8.84 MB | 1 年前3
 Golang大规模云原生应用管理实践Golang⼤规模云原⽣应⽤管理实践 刘洋(炎寻) 关于我 • 毕业于中国科学技术大学,定居杭州 • 就职于阿里云-云原生应用平台团队 • Problem Solver,聚焦中间件,容器,Kubernetes,PaaS平台… • OAM社区成员 开局一张图 规模化应用交付效率对比去年 每万笔峰值交易的IT成本对比4年前 提升1倍 下降80% 云原生 技术 稳定 成本 效率 云原生-程序员视角 基础设施 基础设施 K8s 云原生生态(CNCF) 云原生应用 云原生是以容器技术为基础围绕着Kubernetes进行的一场技术标准化演进。通过标准可扩展的调度,网络, 存储,容器运行时接口来提供基础设施;通过标准可扩展的声明式资源和控制器来提供运维能力。两层标 准化推进了细化的社会分工,各领域进一步提升规模化和专业化,全面达到成本,效率,稳定性的优化。 4 6 7 2 3 5 1 1 Kubectl RevisionEnabled: isRevisionEnabled(traitDefs), Scopes: scopes}, nil } 2.1 渲染workload及其 Traits,scopes 2.2 检查依赖 2.1.1 渲染workload 2.1.2 渲染trait 2.1.3 建立workload与trait的关系 2.1.4 建立workload与scope的关系 2.1.5 初始化依赖0 码力 | 23 页 | 7.70 MB | 1 年前3
 如何用GO支撑海外电商的快速发展-吕梦楼仅PC站,页面通过服务端渲染 新增M站,核心服务抽离到Core 架构演变 04. 为什么用GO? 架构演变 05. 混合模式 新增GO商城服务,迁移下单流程中的订单结算、收银台等功能 PC和M站相关功能,请求下发到GO商城服务,页面仍通过PHP服务端渲染 架构演变 06. 前后端分离 核心流程全部迁移到GO商城服务,包括购物车、订单、商品和地址等 页面渲染逻辑全部由前端处理,实现前后端分离 微服务网关 技术栈选型:GO + ETCD 场景落地 01. 微服务网关 场景落地 01. 微服务网关 Traefxi配置文件 场景落地 01. 微服务网关 场景落地 01. 微服务网关 场景落地 01. 微服务网关 场景落地 02. 秒杀 新品发售 爆品发售 大型促销活动 流量瞬时爆发 场景落地 02. 秒杀 技术栈选型:GO + Ker0 码力 | 33 页 | 3.80 MB | 1 年前3
 大规模高性能区块链架构设计模式与测试框架-李世敬区块链发展历程 2008 2009 • 中本聪发表了比特币的创世论文 《比特币: 一种点对点的电子现 金系统》,标志着区块链作为一 项完整的集成创新技术正式诞生 • 比特币诞生,是世界上首个区 块链应用系统。发展至今有力 地证明了区块链技术的创新性、 颠覆性和顽强的生存能力 中本聪 比特币Bitcoin 2013 • 以太坊发布以太坊白皮书, 引入智能合约,推出首个 图灵完备的区块链平台, 区块链联盟,致力于探索区块链 技术在金融行业的应用产品,自 此联盟链技术逐渐获得广泛关注 R3 CEV区块链联盟 2015 2015 2020 6 趣链科技 版权所有 ©2016-2021 6 趣链科技 版权所有 ©2016-2021 6 趣链科技 版权所有 ©2016-2021 6 区块链技术定义 区块链是由分布式数据存储、点对点传输、共识机制、加密算法等计算机技术构成的多中心 化系统 不可篡改(可信存证) 可对存储的文件、数据进行真实性校验 ü 可信追溯历史数据 去中心化共识(协作共享) ü 多方业务系统数据共享 ü 跨机构业务协作 核心特性 7 趣链科技 版权所有 ©2016-2021 7 趣链科技 版权所有 ©2016-2021 7 趣链科技 版权所有 ©2016-2021 7 区块链技术定义 Code is the rule . 8 趣链科技 版权所有 ©2016-2021 8 趣链科技 版权所有0 码力 | 39 页 | 56.58 MB | 1 年前3
 2.3 用golang写一个操作系统所有这些应⽤用,⽤用户体验基本不变的情况下 不需要中⼼心服务器存在 Leither是什么? 数 据 层 底 层 ⺴⽹网 络 层 应 ⽤用 层 数 据 库 系 统 接 ⼝口 邮 件 模 块 前 端 架 构 WEB Server RPC 邮件⼿手机接⼝口 ⽤用户信息 ⾃自 ⼰己 好 友 节 点 信⽤用结算 路由 消息通讯 ⽤用户数据 公共数据 授 权 担 保 浏 览 器 第三⽅方应⽤用 结果显⽰示 数据解析 ⽤用户操作 数据打包 应⽤用发布 应⽤用安装 应⽤用管理 数 据 库 系 统 接 ⼝口 邮 件 模 块 前 端 架 构 WEB Server RPC 邮件⼿手机接⼝口 ⽤用户信息 ⾃自 ⼰己 好 友 节 点 信⽤用结算 路由 授 权 担 保 验 证 第三⽅方应⽤用 结果显⽰示 ⽤用 层 消息通讯 索引 数据 应⽤用发布 应⽤用安装 应⽤用管理 Swarms 查 找 维 护 MVC 架构 MVC 架构 同 步 同 步 Leither的技术架构 ü 它是⼀一个⽣生态 ü 它有⾃自⼰己的⽣生态成员 应⽤用开发、内容维护、服务提供、系统⽀支撑、传递者、消费者 ü 它有⾃自⼰己的⾦金融体系0 码力 | 33 页 | 1014.12 KB | 1 年前3
 Go 入门指南(The way to Go)合我自 身在软件工程、编程语言和数据库开发的授课经验,将这些零碎的知识点组织成系统化的概念和技术分类 来进行讲解。 随着软件规模的不断扩大,诸多的学者和谷歌的开发者们在公司内部的软件开发过程中开始经历大量的挫 折,在诸多问题上都不能给出令人满意的解决方案,尤其是在使用 C++ 来开发大型的服务端软件时,情 况更是不容乐观。由于二进制文件一般都是非常巨大的,因此需要耗费大量的时间在编译这些文件上,同 goroutine 这种轻量级线程的概 念来实现这个目标,然后通过 channel 来实现各个 goroutine 之间的通信。他们实现了分段栈增长和 goroutine 在线程基础上多路复用技术的自动化。 这个特性显然是 Go 语言最强有力的部分,不仅支持了日益重要的多核与多处理器计算机,也弥补了现存 编程语言在这方面所存在的不足。 Go 语言中另一个非常重要的特性就是它的构建速度( 看起来并不相同。但是它通过接口 (interface)的概念来实现多态性。Go 语言有一个清晰易懂的轻量级类型系统,在类型之间也没有层级 之说。因此可以说这是一门混合型的语言。 在传统的面向对象语言中,使用面向对象编程技术显得非常的臃肿,它们总是通过复杂的模式来构建庞大 的类型层级,这违背了编程语言应该提升生产力的宗旨。 函数是 Go 语言中的基本构件,它们的使用方法非常灵活。在第六章,我们会看到 Go 语言在函数式编程0 码力 | 380 页 | 2.97 MB | 1 年前3
 Go 入门指南(The way to Go)结合我自身在软件工程、编程语 言和数据库开发的授课经验,将这些零碎的知识点组织成系统化的概念和技术分类来进行讲解。 随着软件规模的不断扩大,诸多的学者和谷歌的开发者们在公司内部的软件开发过程中开始经历大量的挫折,在诸多 问题上都不能给出令人满意的解决方案,尤其是在使用 C++ 来开发大型的服务端软件时,情况更是不容乐观。由于 二进制文件一般都是非常巨大的,因此需要耗费大量的时间在编译这些文件上,同时编程语言的设计思想也已经非常 goroutine 这种轻量级线程的概念来实现这个目标,然 后通过 channel 来实现各个 goroutine 之间的通信。他们实现了分段栈增长和 goroutine 在线程基础上多路 复用技术的自动化。 这个特性显然是 Go 语言最强有力的部分,不仅支持了日益重要的多核与多处理器计算机,也弥补了现存编程语言在 这方面所存在的不足。 Go 语言中另一个非常重要的特性就是它的构建速度( 看起来并不相同。但是它通过接口(interface)的 概念来实现多态性。Go 语言有一个清晰易懂的轻量级类型系统,在类型之间也没有层级之说。因此可以说这是一门混 合型的语言。 在传统的面向对象语言中,使用面向对象编程技术显得非常臃肿,它们总是通过复杂的模式来构建庞大的类型层级, 这违背了编程语言应该提升生产力的宗旨。 函数是 Go 语言中的基本构件,它们的使用方法非常灵活。在第六章,我们会看到 Go 语言在函数式编程方面的基本0 码力 | 466 页 | 4.44 MB | 1 年前3
 Golang 入门笔记注意事项的案例 预定义标识符 介绍:除了保留关键字外,Go 还提供了 36 个预定义的标识符,其中包括基础类型和系统嵌入函数 预定义标识符 Golang 的所在前面的话 应用领域 区块链 服务端/游戏开发 分布式/云计算 Docker K8s Go 语言的诞生和相关故事 Go 语言的特点 1. 函数可以返回多个值 2. 支持高并发 3. 每一行之后不需要分号 4. 切片slice $GOPATH 的 src 开始,不用带 src , 编译器会自动从 src 开始引入 5. 为了让其他包的文件,额可以访问到本包的函数, 则该函数名首字母需要大写,类似其他语言的 public , 这样才能跨包访问。比如 utils.go 6. 在访问其他包的函数时,其语法是 包名.函数名。 7.如果包名较长,Go 支持给包去别名,注意细节,取别名后,原来的包名就不能使用了。 8. 在同一个包下面,不能有相同的函数名,否则会报错 不区分大小写;例子0x21F + 1 = 0X21B0 演示案例 进制图示 进制转换 10. 位运算 二进制在运算中的说明 二进制是逢二进位的进制位,0、 1是基本符 现代的电子计算机技术全部采用的是二进制,因为它只使用0 、1 两个数字符号,非常简单方便,易于是电子方式实现。 计算机内部处理的信息,都是采用二进制来表示的。二进制(Binary)数用0 和 1两个数字及组合来表示任何数,0 码力 | 2 页 | 511.29 KB | 1 年前3
共 70 条
- 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 













