获得徽章 1
- #青训营笔记创作活动#
2月22日 打卡day49
锁!这个词汇在编程中出现的次数尤为频繁,几乎主流的编程语言都会具备完善的锁机制,在数据库中也并不例外,为什么呢?这里牵扯到一个关键词:高并发,由于现在的计算机领域几乎都是多核机器,因此再编写单线程的应用自然无法将机器性能发挥到最大,想要让程序的并发性越高,多线程技术自然就呼之欲出,多线程技术一方面能充分压榨CPU资源,另一方面也能提升程序的并发支持性。
展开评论点赞 - #青训营笔记创作活动#
2月14日打卡day50
Hertz 是一个超大规模的企业级微服务 HTTP 框架,具有高易用性、易扩展、低时延等特点。
Hertz 默认使用自研的高性能网络库 Netpoll,在一些特殊场景中,相较于 go net,Hertz 在 QPS、时延上均具有一定优势。
在内部实践中,某些典型服务,如框架占比较高的服务、网关等服务,迁移 Hertz 后相比 Gin 框架,资源使用显著减少,CPU 使用率随流量大小降低 30%—60%展开评论点赞 - #青训营笔记创作活动#
2月12日打卡day18
如何定位慢SQL呢、我们可以通过慢查询日志来查看慢SQL。默认的情况下呢,MySQL数据库时不开启慢查询日志(slow query log)呢。所以我们需要手动把它打开。
查看下慢查询日志配置,我们可以使用show variables like 'slow_query_log%'命令展开评论点赞 - #青训营笔记创作活动#
2月11日 打卡day7
Kafka 和传统的消息系统(也称作消息中间件)都具备系统解耦、冗余存储、流量削峰、缓冲、异步通信、扩展性、可恢复性等功能。与此同时,Kafka 还提供了大多数消息系统难以实现的消息顺序性保障及回溯消费的功能。展开评论点赞 - #青训营笔记创作活动#
2月10日打卡day4
通过这篇文章,我巩固了 go 语言的基础知识,让我对 go 语言理解更加深刻了,而且也了解到了一些容易发错的地方,但是有些地方解释应该更充分些,代码加一些注释,这样对我们这样的新手来说理解起来会容易一点。展开评论点赞 - #青训营笔记创作活动#
2月9日 打卡day15
今日学习
﹣高并发秒杀系统可以从以下几个方面入手:页面静态化、 CDN 加速、缓存、 mq 异步处理、限流、分布式锁
-布隆过滤器可以解决缓存穿透。但是又会引出另外一个问题:布隆过滤器中的数据如何更缓存中的数据保持一致?这就要求,如果缓存中数据有更新,则要及时同步到布隆过滤器中。如果数据同步失败了,还需要增加重试机制,而且跨数据源,能保证数据的实时一致性吗?显然是不行的。所以布隆过滤器绝大部分使用在缓存数据更新很少的场景中。如果缓存数据更新非常频繁,又该如何处理呢?这时,就需要把不存在的商品 id 也缓存起来。
﹣基于数据库的乐观锁,这样会少一次数据库查询,而且能够天然的保证数据操作的原子性。只需将上面的 sal 稍微调整一下展开评论点赞 - #青训营笔记创作活动#
1月31日打卡day12
HTTPS 握手过程时,先建立 TCP 连接,再用 TLS 或 SSL 等协议进行加密。整个加密流程可分为两阶段,第一阶段是 TLS 四次握手,该阶段主要利用非对称加密的特性各种交换信息,最后会得到一个"会话密钥";第二阶段再第一阶段的"会话密钥"的基础上,进行对称加密通信。展开评论点赞 - #青训营笔记创作活动#
1月30日day37
今日学习主要学习了缓存雪崩:避免缓存的集中失效为了限制缓存的数量,很多的缓存记录都会设置一定的有效期,到期后自动失效。以及对应的解决的思路,避免出现集中失效。缓存击穿是少量缓存失效的时候恰好失效的数据遭遇大并发量的请求,导致这些请求全部涌入数据库中。展开评论点赞 - #青训营笔记创作活动#
1月14日打卡day2
这次阅读了解到了一些好用的 IDEA 的插件,包括字符串处理,图形化显示的插件,都很有帮助,希望以后能有机会给我的工作有帮助。评论点赞 - #青训营笔记创作活动#
1月13日 打卡day1
今天学习了限流,限流根据限流作用范围,可以分为单机限流和分布式限流;根据限流方式,又分为计数器、滑动窗口、漏桶限令牌桶限流。
常用限流方式有计数器,滑动窗口,漏桶,令牌桶。评论点赞