12 2022 档案
摘要:1、引言 在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC)。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被
阅读全文
摘要:1. 概述 服务熔断也称服务隔离或过载保护。在微服务应用中,服务存在一定的依赖关系,形成一定的依赖链,如果某个目标服务调用慢或者有大量超时,造成服务不可用,间接导致其他的依赖服务不可用,最严重的可能会阻塞整条依赖链,最终导致业务系统崩溃(又称雪崩效应)。此时,对该服务的调用执行熔断,对于后续请求,不
阅读全文
摘要:概述 ab命令全称为 Apache bench 是Apache自带的压力测试工具。ab命令非常实用,它不仅可以对Apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试,ab命令会创建多个并发线程,模拟多个访问者同时对某一个url地址进行访问,实现压力测试 ab命令对发出负载的
阅读全文
摘要:引用自: https://www.jb51.net/article/153990.htm 这篇文章主要给大家介绍了关于nginx利用ctx实现数据共享、修改上下文功能的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 环境
阅读全文
摘要:简介: mpstat是Multiprocessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。mpstat最大的特点是:可以查看多核心
阅读全文
摘要:前言 分布式环境下应对高并发保证服务稳定,优先级从高到低分别为缓存、限流、降级、熔断,本文重点就讲讲限流这部分。 其实服务降级、熔断本身也是限流的一种,因为它们本质上也是阻断了流量进来,但是本文希望大家可以把限流当做一个单纯的名词来理解,看一下对请求做流控的几种算法及具体实现方式。 为什么要限流 其
阅读全文
摘要:环形熔断器 本文主要是阅读微软在早些年前发表的环形熔断器的设计的文章,Circuit Breaker Pattern。该文比较详细的介绍了环形熔断器设计的背景,及解决的问题。 环形熔断器设计背景 在诸如云之类的分布式环境中,应用程序执行访问远程资源和服务的操作,这些操作可能由于诸如网络连接缓慢,超时
阅读全文
摘要:写了一个批次执行函数的功能,采用范型,直接上代码 batch实现代码: package utils import ( "time" ) type batch[T any] struct { Array []T Func func(array []T) Count int Interval float
阅读全文
摘要:pidstat主要用于监控全部或指定进程占用系统资源的情况,如CPU,内存、设备IO、任务切换、线程等。pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。 命令格式: pidst
阅读全文
摘要:1. 问题之前写了一套统一mysql返回数据的解析库: rows, err := ms.dbInst.Query(s, args...) //执行SQL语句,比如select * from users if err != nil { panic(err) } columns, err := rows
阅读全文
摘要:数组: var arr = [10]{1,2,3,4,5,6}slice: var arr = []{1,2,3,4,5,6} array 类型 array是固定长度的数组,使用前必须确定数组长度 golang array 特点: golang中的数组是值类型,也就是说,如果你将一个数组赋值给另外一
阅读全文
摘要:直接上代码: package main import ( "fmt" "reflect" ) func main() { var n = 33 var pn = &n var ppn = &pn // new可以定义不同类型的地址,可以是int/int*/int**,都是可以的,对应的值也是需要正确
阅读全文
摘要:先看代码: package mainimport ( "fmt" "reflect")func main() { var n = 33 var pn = &n var ppn = &pn var pn2 *int = nil // 指针是不能set的,指针指向的元素可以set fmt.Println
阅读全文
摘要:要获取指针的指针进行设置值 var n int var pnTarget *int // 这里传递的是指针的指针 **int ppnv := reflect.ValueOf(&pnTarget) pnV := ppnv.Elem() // 创建原始的类型, *int pc := reflect.Ne
阅读全文