05 2022 档案

摘要:10分钟搭建MySQL主从同步(基于docker) 一 主从配置原理 mysql主从配置的流程大体如图: 1)master会将变动记录到二进制日志里面; 2)master有一个I/O线程将二进制日志发送到slave; slave有一个I/O线程把master发送的二进制写入到relay日志里面; 4 阅读全文
posted @ 2022-05-31 00:07 刘清政 阅读(515) 评论(0) 推荐(0) 编辑
摘要:一 什么是链路追踪? 分布式链路追踪就是将一次分布式请求还原成调用链路,将一次分布式请求的调用情况集中展示,比如各个服务节点上的耗时、请求具体到达哪台机器上、每个服务节点的请求状态等等。 链路跟踪主要功能: 故障快速定位:可以通过调用链结合业务日志快速定位错误信息。 链路性能可视化:各个阶段链路耗时 阅读全文
posted @ 2022-05-29 01:25 刘清政 阅读(657) 评论(0) 推荐(0) 编辑
摘要:一 分布式配置中心介绍 1.1 分布式配置中心作用 我们现在有一个项目, 使用Gin进行开发的, 配置文件是一个config.yaml的文件, 这个配置文件在项目启动时会被加载到内存中使用 考虑三种情况: a . 添加配置项 1 . 你现在的用户服务有10个部署实例, 那么添加配置项需要去十个地方修 阅读全文
posted @ 2022-05-28 23:14 刘清政 阅读(520) 评论(0) 推荐(0) 编辑
摘要:一 什么是负载均衡 负载均衡(Load Balance)意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。 单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。 阅读全文
posted @ 2022-05-28 23:13 刘清政 阅读(364) 评论(0) 推荐(0) 编辑
摘要:1 Docker简介 1.1 什么是虚拟化 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部 阅读全文
posted @ 2022-05-26 21:13 刘清政 阅读(1464) 评论(0) 推荐(3) 编辑
摘要:一 注册中心 1.1 服务注册与发现 在使用微服务后,调用都变成了服务间的调用。 服务间调用需要知道IP、端口等信息。 在没有微服务之前,我们的调用信息一般都是写死在调用方的配置文件里(有的公司把这些信息写到数据库等公共的地方,以方便维护)。 由于业务的复杂,每个服务可能依赖N个其他服务,如果某个服 阅读全文
posted @ 2022-05-22 01:25 刘清政 阅读(887) 评论(0) 推荐(0) 编辑
摘要:一 grpc metadata机制 gRPC让我们可以像本地调用一样实现远程调用,对于每一次的RPC调用中,都可能会有一些有用的数据,而这些数据就可以通过metadata来传递。metadata是以key-value的形式存储数据的,其中key是string类型,而value是[]string,即一 阅读全文
posted @ 2022-05-22 01:24 刘清政 阅读(407) 评论(0) 推荐(0) 编辑
摘要:一 ORM框架介绍和选择 1.1 ORM介绍和选择 ORM是“对象-关系-映射”的简称,Go语言中常用的ORM框架如下 gorm 老牌国产Golang orm框架。支持主流关系型数据库。中文文档适合新人入手,国内使用较多。最新版本2.x,比1.x有较大改动 注意:Gorm最新地址为https://g 阅读全文
posted @ 2022-05-15 00:58 刘清政 阅读(2343) 评论(0) 推荐(0) 编辑
摘要:官方地址: https://developers.google.com/protocol-buffers/docs/proto3 一 protobuf 基本类型和默认值 1.1 protobuf类型和语言对应关系 该表格展示了定义于.proto文件中的类型,与go和python对应的类型: .pro 阅读全文
posted @ 2022-05-14 23:22 刘清政 阅读(518) 评论(0) 推荐(0) 编辑
摘要:一 定义一个消息类型 先来看一个非常简单的例子。假设你想定义一个“搜索请求”的消息格式,每一个请求含有一个查询字符串、你感兴趣的查询结果所在的页数,以及每一页多少条查询结果。可以采用如下的方式来定义消息类型的.proto文件了: syntax = "proto3"; message SearchRe 阅读全文
posted @ 2022-05-14 23:22 刘清政 阅读(137) 评论(0) 推荐(0) 编辑
摘要:一 grpc介绍 grpc 是 google 给出的 rpc 调用方式,它基于 google 的 protobuf 定义方式,提供了一整套数据定义和 rpc 传输的方式 它是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:g 阅读全文
posted @ 2022-05-14 23:21 刘清政 阅读(785) 评论(0) 推荐(0) 编辑
摘要:gRPC有四种通信⽅式,分别是:简单 RPC(Unary RPC)、服务端流式 RPC (Server streaming RPC)、客户端流式 RPC (Clientstreaming RPC)、双向流式 RPC(Bi-directional streaming RPC)。它们主要有以下特点: 服 阅读全文
posted @ 2022-05-14 23:21 刘清政 阅读(803) 评论(0) 推荐(0) 编辑
摘要:golang 常见微服务框架有 按starts数排列 1 go-kit go-kit是一个分布式的开发工具集,在大型的组织(业务)中可以用来构建微服务,其解决了分布式系统中大多数常见问题,因此,使用者可以将精力集中在业务逻辑上 go-kit不是一个框架,他只是一个工具集,他里面有用来帮助我们实现微服 阅读全文
posted @ 2022-05-14 23:20 刘清政 阅读(2041) 评论(0) 推荐(0) 编辑
摘要:一 什么是 RPC? RPC 是指远程过程调用,也就是说两台服务器 A,B 一个应用部署在 A 服务器上,想要调用 B 服务器上应用提供的函数或方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。 二 RPC 是如何通讯的? 要解决通讯的问题,主要是通过在客户端和 阅读全文
posted @ 2022-05-14 23:19 刘清政 阅读(265) 评论(0) 推荐(1) 编辑
摘要:一 CAP 定理 2000 年 7 月,加州大学伯克利分校的 Eric Brewer 教授在 ACM PODC 会议上提出 CAP 猜想。2年后,麻省理工学院的 Seth Gilbert 和 Nancy Lynch 从理论上证明了 CAP。之后,CAP 理论正式成为分布式计算领域的公认定理。 CAP 阅读全文
posted @ 2022-05-14 23:19 刘清政 阅读(144) 评论(0) 推荐(0) 编辑
摘要:一 概述 要实际的应用微服务,需要解决以下问题: 客户端如何访问这些服务 每个服务之间如何通信 如此多的服务,如何实现? 服务挂了,如何解决?(备份方案,应急处理机制) 二 主流分布式服务架构的组成 服务注册与发现(consule,ZooKeeper,etcd) 服务分布式配置(nacos,Eure 阅读全文
posted @ 2022-05-14 23:18 刘清政 阅读(369) 评论(1) 推荐(0) 编辑
摘要:一 互联网软件架构演变 一 单体架构 一个归档包,包含所有功能的应用程序,我们通常称为单体应用。而架构单体应用的方法论,就是单体应用架构。 单体应用架构图如下 优点 便于共享:包含所有功能,便于在团队之间共享。 易于测试:一旦部署,所有服务都可以使用了,简化测试过程,没有额外依赖。 易于部署:只需将 阅读全文
posted @ 2022-05-14 23:08 刘清政 阅读(1388) 评论(0) 推荐(0) 编辑
摘要:一 IaaS基础设施服务 IaaS: Infrastructure-as-a-Service(基础设施即服务) 第一层叫做IaaS,有时候也叫做Hardware-as-a-Service,几年前如果你想在办公室或者公司的网站上运行一些企业应用,你需要去买服务器,或者别的高昂的硬件来控制本地应用,让你 阅读全文
posted @ 2022-05-14 23:07 刘清政 阅读(279) 评论(0) 推荐(1) 编辑
摘要:一 Belongs To(一对一) 1.1 Belongs To belongs to 会与另一个模型建立了一对一的连接。 这种模型的每一个实例都“属于”另一个模型的一个实例。 例如,您的应用包含 user 和 company,并且每个 user 能且只能被分配给一个 company。下面的类型就表 阅读全文
posted @ 2022-05-07 23:39 刘清政 阅读(908) 评论(0) 推荐(0) 编辑
摘要:一 Gorm概述 1.1 Gorm介绍 Gorm 是 Golang 的一个 orm 框架。ORM 是通过实例对象的语法,完成关系型 数据库的操作,是"对象-关系映射"(Object/Relational Mapping) 的缩写。使用 ORM 框架可以让我们更方便的操作数据库。 Gorm官方支持的数 阅读全文
posted @ 2022-05-07 23:38 刘清政 阅读(791) 评论(0) 推荐(0) 编辑
摘要:一 创建 package main import ( "database/sql" "gorm.io/driver/mysql" "gorm.io/gorm" "time" ) type User struct { gorm.Model Name string Age uint8 Birthday 阅读全文
posted @ 2022-05-07 23:38 刘清政 阅读(1328) 评论(0) 推荐(0) 编辑
摘要:一 Viper介绍 Viper 是一个完整的 Go 应用程序配置解决方案,它旨在在应用程序中工作,并且可以处理所有类型的配置需求和格式。它支持: 设置默认值 从 JSON、TOML、YAML、HCL、envfile 和 Java 属性配置文件读取 实时监控和重新读取配置文件(可选) 从环境变量中读取 阅读全文
posted @ 2022-05-07 23:37 刘清政 阅读(298) 评论(0) 推荐(0) 编辑
摘要:一 前言 我们编写的Web项目部署之后,经常会因为需要进行配置变更或功能迭代而重启服务,单纯的kill -9 pid的方式会强制关闭进程,这样就会导致服务端当前正在处理的请求失败,那有没有更优雅的方式来实现关机或重启呢? 阅读本文需要了解一些UNIX系统中信号的概念,请提前查阅资料预习。 二 优雅地 阅读全文
posted @ 2022-05-07 23:37 刘清政 阅读(149) 评论(0) 推荐(0) 编辑
摘要:一 Zap介绍 Zap 是Uber推出,非常快的、结构化的,分日志级别的 Go 日志库 无反射,零分配的JSON编码器,基本记录器尽可能避免序列化开销和分配 项目地址:https://github.com/uber-go/zap 官方文档:https://pkg.go.dev/go.uber.org 阅读全文
posted @ 2022-05-07 23:36 刘清政 阅读(754) 评论(0) 推荐(0) 编辑
摘要:一 Gin将日志写入控制台和文件中 方式一:直接配置方式 package main import ( "github.com/gin-gonic/gin" "io" "os" ) func main() { //1 禁用控制台颜色 gin.DisableConsoleColor() //2 创建记录 阅读全文
posted @ 2022-05-07 23:35 刘清政 阅读(262) 评论(0) 推荐(0) 编辑
摘要:一 logrus介绍 1.1 log标准库优缺点 优点 Go标准库的log日志库非常简单 可以便设置任何io.Writer作为日志输出位置 缺点 1 仅仅提供了print,panic和fatal三个函数,不支持info/debug等多个级别 2 记录错误有Fatal和Panic;Fatal通过调用o 阅读全文
posted @ 2022-05-07 23:35 刘清政 阅读(573) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示