09 2021 档案

摘要:链路追踪的前世今生 分布式跟踪(也称为分布式请求跟踪)是一种用于分析和监控应用程序的方法,尤其是使用微服务架构构建的应用程序。分布式跟踪有助于精确定位故障发生的位置以及导致性能差的原因。 起源 链路追踪(Distributed Tracing) 一词最早出现于谷歌发布的论文 《Dapper, a L 阅读全文
posted @ 2021-09-21 19:40 daemon365 阅读(1465) 评论(0) 推荐(0) 编辑
摘要:我们在微服务框架kratos v2的默认项目模板中kratos-layout使用了google/wire进行依赖注入,也建议开发者在维护项目时使用该工具。 wire 乍看起来比较违反直觉,导致很多同学不理解为什么要用或不清楚如何用(也包括曾经的我),本文来帮助大家理解 wire 的使用。 What 阅读全文
posted @ 2021-09-06 20:36 daemon365 阅读(204) 评论(0) 推荐(1) 编辑
摘要:为什么要用熔断 前面我们讲过限流保证服务的可用性,不被突如其来的流量打爆。但是两种情况是限流解决不了的。 如果我们服务只能处理1000QPS,但是有10wQPS打过来,服务还是会炸。因为拒绝请求也需要成本。 服务但是io型的,会把mysql,redis,mq等中间件打挂。 所以,我们遵循一个思路,可 阅读全文
posted @ 2021-09-05 22:32 daemon365 阅读(363) 评论(0) 推荐(0) 编辑
摘要:什么是自适应限流 自适应限流从整体维度对应用入口流量进行控制,结合应用的 Load、CPU 使用率、总体平均 RT、入口 QPS 和并发线程数等几个维度的监控指标,通过自适应的流控策略,让系统的入口流量和系统的负载达到一个平衡,让系统尽可能跑在最大吞吐量的同时保证系统整体的稳定性。 核心目标: 自动 阅读全文
posted @ 2021-09-04 21:15 daemon365 阅读(1192) 评论(0) 推荐(0) 编辑
摘要:创建项目 首先需要安装好对应的依赖环境,以及工具: go 下载 protoc go install google.golang.org/protobuf/cmd/protoc-gen-go@latest protoc-gen-go go install google.golang.org/grpc/ 阅读全文
posted @ 2021-09-02 22:53 daemon365 阅读(328) 评论(0) 推荐(0) 编辑
摘要:什么是索引 一般的应用系统,都是读多写少。而且插入操作和一般的更新操作很少出现性能问题(因为有redo log锁cache缓存)。在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。说起加速查询,就不得不提到索引了。索引的核心思想就是加速查询 阅读全文
posted @ 2021-09-02 16:26 daemon365 阅读(61) 评论(0) 推荐(0) 编辑
摘要:更新语句执行流程 下面是这个表的创建语句,这个表有一个主键 ID 和一个整型字段 c: create table T(ID int primary key, c int); 如果要将 ID=2 这一行的值加 1,SQL 语句就会这么写: update T set c=c+1 where ID=2; 阅读全文
posted @ 2021-09-02 15:29 daemon365 阅读(46) 评论(0) 推荐(0) 编辑
摘要:msyql执行流程 你有个最简单的表,表里只有一个 ID 字段,在执行下面这个查询语句时:: select * from T where ID=10; 我们看到的只是输入一条语句,返回一个结果,却不知道这条语句在 MySQL 内部的执行过程。 下面我给出的是 MySQL 的基本架构示意图,从中你可以 阅读全文
posted @ 2021-09-02 11:42 daemon365 阅读(366) 评论(0) 推荐(0) 编辑
摘要:网络层次划分 为了使不同计算机厂家生产的计算机能够相互通信,以便在更大的范围内建立计算机网络,国际标准化组织(ISO)在1978年提出了"开放系统互联参考模型",即著名的OSI/RM模型(Open System Interconnection/Reference Model)。它将计算机网络体系结构 阅读全文
posted @ 2021-09-01 21:02 daemon365 阅读(98) 评论(0) 推荐(0) 编辑