获得徽章 0
#青训营笔记创作活动#
2月15日 打卡day9
限流对比:
计数器:优点是固定时间段计数,实现简单,适用不太精准的场景;缺点是对边界没有很好处理,导致限流不能精确控制。
滑动窗口:优点是将固定的时间段分块,时间比计数器复杂,适用于稍微精准的场景;缺点是实现稍微复杂,还是不能彻底解决“计数器”存在的边界问题。
漏桶:优点是可以很好的控制消费频率;缺点是实现稍微复杂,单位时间内,不能多消费,感觉不太灵活。
令牌桶:优点是可以解决“漏桶”不能灵活消费的问题,又能避免过渡消费;缺点是实现稍微复杂。
Redis + Lua 分布式限流:优点是支持分布式限流,有效保护下游依赖的服务资源;缺点是依赖 Redis,对边界没有很好处理,导致限流不能精准控制。
2月15日 打卡day9
限流对比:
计数器:优点是固定时间段计数,实现简单,适用不太精准的场景;缺点是对边界没有很好处理,导致限流不能精确控制。
滑动窗口:优点是将固定的时间段分块,时间比计数器复杂,适用于稍微精准的场景;缺点是实现稍微复杂,还是不能彻底解决“计数器”存在的边界问题。
漏桶:优点是可以很好的控制消费频率;缺点是实现稍微复杂,单位时间内,不能多消费,感觉不太灵活。
令牌桶:优点是可以解决“漏桶”不能灵活消费的问题,又能避免过渡消费;缺点是实现稍微复杂。
Redis + Lua 分布式限流:优点是支持分布式限流,有效保护下游依赖的服务资源;缺点是依赖 Redis,对边界没有很好处理,导致限流不能精准控制。
展开
评论
点赞
#青训营笔记创作活动#
2月14日 打卡day8
在性能优化层面上,缓存的一个经典策略就是“空间换时间”,借助缓存,可以将一些 CPU 耗时计算的处理结果进行缓存复用,以降低重复计算工作量,达到降低 CPU 占用的效果。缓存的另一典型使用场景,就是减少系统对外依赖的请求频次。
2月14日 打卡day8
在性能优化层面上,缓存的一个经典策略就是“空间换时间”,借助缓存,可以将一些 CPU 耗时计算的处理结果进行缓存复用,以降低重复计算工作量,达到降低 CPU 占用的效果。缓存的另一典型使用场景,就是减少系统对外依赖的请求频次。
展开
评论
点赞
#青训营笔记创作活动#
2月13日 打开day7
计算机工程领域的任何问题都可以通过增加一个中间层来解决。为什么有了 MAC 地址还需要 IP 地址,因为世界上存在着各种各样的网络,它们使用着不同的硬件设备,而如果要是这些互相不同的网络要互相通信,那么就意味着面对因为不同硬件设备而带来的硬件地址转换上的负责工作。
2月13日 打开day7
计算机工程领域的任何问题都可以通过增加一个中间层来解决。为什么有了 MAC 地址还需要 IP 地址,因为世界上存在着各种各样的网络,它们使用着不同的硬件设备,而如果要是这些互相不同的网络要互相通信,那么就意味着面对因为不同硬件设备而带来的硬件地址转换上的负责工作。
展开
评论
点赞
#青训营笔记创作活动#
2月12日 打卡day6
缓存击穿和缓存雪崩的区别,缓存雪崩是大面积的缓存失效导致大量请求涌入数据库;缓存击穿是少量缓存失效的时候恰好失效的数据遭遇大并发量的请求,导致这些请求全涌入数据库。还有一种情况是缓存穿透,这种情况是被请求的数据都不在缓存和数据库中,这其实是外部攻击的一种手段。
2月12日 打卡day6
缓存击穿和缓存雪崩的区别,缓存雪崩是大面积的缓存失效导致大量请求涌入数据库;缓存击穿是少量缓存失效的时候恰好失效的数据遭遇大并发量的请求,导致这些请求全涌入数据库。还有一种情况是缓存穿透,这种情况是被请求的数据都不在缓存和数据库中,这其实是外部攻击的一种手段。
展开
评论
点赞
#第五届青训营阅读打卡#
2月11日 打卡day5
Bytebase确实是一款实用的数据库管理及变更工具,让我们在没有客户端的情况下也能方便地进行数据库管理,它的SQL审核功能可以避免开发人员对数据库的误操作。
2月11日 打卡day5
Bytebase确实是一款实用的数据库管理及变更工具,让我们在没有客户端的情况下也能方便地进行数据库管理,它的SQL审核功能可以避免开发人员对数据库的误操作。
评论
点赞
#青训营笔记创作活动#
2月10日 打卡day4
远程操作或者数据库操作都是比较耗网络、IO资源的,所以尽量不在循环里远程调用、不在循环里操作数据库,能批量一次性查回来尽量不要循环多次去查;如果方法参数过多,需要封装一个对象出来;保持性能优化的嗅觉,例如避免创建不必要的对象、异步处理、使用缓冲流,减少 IO 操作等;
2月10日 打卡day4
远程操作或者数据库操作都是比较耗网络、IO资源的,所以尽量不在循环里远程调用、不在循环里操作数据库,能批量一次性查回来尽量不要循环多次去查;如果方法参数过多,需要封装一个对象出来;保持性能优化的嗅觉,例如避免创建不必要的对象、异步处理、使用缓冲流,减少 IO 操作等;
展开
评论
点赞
#青训营笔记创作活动#
2月9日 打卡day3
range 迭代 map 是无序的,而且是 Go 的运行时有意打乱的;defer 在函数退出时才能执行,在 for 执行 defer 会导致资源延迟释放;数组的长度是数组类型的一部分;数组需要指定大小;数组是值传递;数组是内置类型,是一组同类型数据的集合,它是值类型,通过从0开始的下标索引访问元素值;切片表示一个拥有相同类型元素的可变长度的序列。切片是一种轻量级的数据结构,它有三个属性:指针、长度和容量。切片不需要指定大小;切片是地址传递;切片在追加元素时如果容量 cap 不足时将按 len 的2倍扩容;go 语言中的引用类型包括切片(slice)、字典(map)、通道(channel)、接口(interface)
2月9日 打卡day3
range 迭代 map 是无序的,而且是 Go 的运行时有意打乱的;defer 在函数退出时才能执行,在 for 执行 defer 会导致资源延迟释放;数组的长度是数组类型的一部分;数组需要指定大小;数组是值传递;数组是内置类型,是一组同类型数据的集合,它是值类型,通过从0开始的下标索引访问元素值;切片表示一个拥有相同类型元素的可变长度的序列。切片是一种轻量级的数据结构,它有三个属性:指针、长度和容量。切片不需要指定大小;切片是地址传递;切片在追加元素时如果容量 cap 不足时将按 len 的2倍扩容;go 语言中的引用类型包括切片(slice)、字典(map)、通道(channel)、接口(interface)
展开
评论
点赞
#第五届青训营阅读打卡#
2月8日,打卡day3
索引失效的场景一般有:索引建立不当或使用顺序未遵循最左匹配原则;索引列上使用了函数;索引列上有计算操作;Like左边包含%;使用OR关键字;in 使用不当;not in 和 not exists;order by 使用不当
2月8日,打卡day3
索引失效的场景一般有:索引建立不当或使用顺序未遵循最左匹配原则;索引列上使用了函数;索引列上有计算操作;Like左边包含%;使用OR关键字;in 使用不当;not in 和 not exists;order by 使用不当
展开
评论
点赞
#青训营笔记创作活动#
索引失效的场景一般有:索引建立不当或使用顺序未遵循最左匹配原则;索引列上使用了函数;索引列上有计算操作;Like左边包含%;使用OR关键字;in 使用不当;not in 和 not exists;order by 使用不当
索引失效的场景一般有:索引建立不当或使用顺序未遵循最左匹配原则;索引列上使用了函数;索引列上有计算操作;Like左边包含%;使用OR关键字;in 使用不当;not in 和 not exists;order by 使用不当
评论
点赞
#青训营笔记创作活动#
2月7日 打卡day2
DHCP 工作流程一共分为四个阶段,分别是DHCP Discover,DHCP Offer,DHCP Request,DHCP ACK,也分别对应了四种DHCP报文,值得注意的是第三阶段和第四阶段,因为在 Offer 阶段客户端已经得到 IP 了,后面的 Request 和 ACK 阶段是因为,本地网段内可能有不止一台DHCP服务器,而客户端一般是对第一个到的 DHCP Offer 响应 DHCP Request,用于确认IP,而 DHCP 服务器也需要确认这个 IP 还问分配出去,需要响应 ACK。
2月7日 打卡day2
DHCP 工作流程一共分为四个阶段,分别是DHCP Discover,DHCP Offer,DHCP Request,DHCP ACK,也分别对应了四种DHCP报文,值得注意的是第三阶段和第四阶段,因为在 Offer 阶段客户端已经得到 IP 了,后面的 Request 和 ACK 阶段是因为,本地网段内可能有不止一台DHCP服务器,而客户端一般是对第一个到的 DHCP Offer 响应 DHCP Request,用于确认IP,而 DHCP 服务器也需要确认这个 IP 还问分配出去,需要响应 ACK。
展开
评论
点赞