赵海宇的博客 路漫漫其修远兮,吾将上下而求索。

从kratos分析BBR限流源码实现

什么是自适应限流 自适应限流从整体维度对应用入口流量进行控制,结合应用的 Load、CPU 使用率、总体平均 RT、入口 QPS 和并发线程数等几个维度的监控指标,通过自适应的流控策略,让系统的入口流量和系统的负载达

mysql redo log和binlog

更新语句执行流程 下面是这个表的创建语句,这个表有一个主键 ID 和一个整型字段 c: create table T(ID int primary key, c int); 如果要将 ID=2 这一行的值加 1,SQL 语句就会这么写: update T set c=c+1 where ID=2; 前面我有跟你介绍过 SQL 语句基本的执行链路,这里我再

SQL查询语句执行流程

msyql执行流程 你有个最简单的表,表里只有一个 ID 字段,在执行下面这个查询语句时:: select * from T where ID=10; 我们看到的只是输入一条语句,返回一个结果,却不知道这条语句在 MySQL 内部的执行过程。 下面我给出的是 MySQL

mysql事务

事务是什么 事务就是指逻辑上的一组SQL语句操作,组成这组操作的各个SQL语句,执行时要么全成功要么全失败。 在 MySQL 中,事务支持是在引擎层实现的。MySQL 是一个支持多引擎的系统,但并不是所有的引擎都支持事

mysql锁

MySQL中的锁 数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构。 根据加锁的范围,MySQL

Kratos日志库的使用姿势

什么是日志 所谓日志(Log)是指系统所指定对象的某些操作和其操作结果按时间有序的集合。log文件就是日志文件,log文件记录了系统和系统的用户之间交互的信息,是自动捕获人与系统终端之间交互的类型、内容

RabbitMQ消息队列

消息队列 本篇文章主要介绍了 RabbitMQ 这种消息队列,从消息队列的概念、应用场景、安装方式到它的核心概念、五种工作模式。在安装的时候推荐使用 Docker 方式进行安装。重点需要理解的就是消息队列的应用场景、核心概念和 RabbitMQ 的五种

grpc超时控制

什么是超时控制? 超时控制,使我们的服务之间调用可以快速抛错。比如API接口设置1s超时API调用A服务用了500ms,服务A调用和服务B用了600ms,n那么现在已经超时,还要调用服务C等等,再返回超

grpc服务发现与负载均衡

前言 在后台服务开发中,高可用性是构建中核心且重要的一环。服务发现(Service discovery)和负载均衡(Load Balance)一直都是我关注的话题。今天来谈一下我在实际中是如何理解及落地的。

Go Gin框架介绍及使用

Gin框架介绍 基于httprouter开发的Web框架。 中文文档,齐全。 简单易用的轻量级框架。 Gin框架安装 go get -u github.com/gin-gonic/gin 实例: package main import ( "fmt" "github.com/gin-gonic/gin" ) func main() { r := gin.Default() // 创建一个默认的路由引擎 // 也可以用gin.New()

Go gc垃圾回收

垃圾回收(Garbage Collection,简称GC)是编程语言中提供的自动的内存管理机制,自动释放不需要的对象,让出存储器资源,无需程序员手动执行。 Golang中的垃圾回收主要应用三色标记法,GC

Go web源码解析

Go的web工作原理 在Go中使用及其简单的代码即可开启一个web服务。如下: //开启web服务 func test(){ http.HandleFunc("/", sayHello) err := http.ListenAndServe(":9090",nil) if err!=nil { log.Fatal("ListenAndServer:",err) } } func sayHello(w http.ResponseWriter, r *http.Request){ r.ParseForm() fmt.Println("path",r.URL.Path) fmt.Println("scheme",r.URL.Scheme) fmt.Fprintf(w, "Hello Guest!") } 在使用ListenAndServe这个方法时,系统就会给

Http Https

HTTP协议是什么? HTTP协议是超文本传输协议的缩写,英文是Hyper Text Transfer Protocol。它是从WEB服务器传输超文本标记语言(HTML)到本地浏览器的传送协议。 设计HTTP最初的目的是为了提供一

分布式ID和锁

分布式id生成器 有时我们需要能够生成类似MySQL自增ID这样不断增大,同时又不会重复的id。以支持业务中的高并发场景。比较典型的,电商促销时,短时间内会有大量的订单涌入到系统,比如每秒10w+。明星

thrift的介绍及其使用

什么是thrift Thrift是Facebook于2007年开发的跨语言的rpc服框架,提供多语言的编译功能,并提供多种服务器工作模式;用户通过Thrift的IDL(接口定义语言)来描述接口函数及数据