获得徽章 2
赞了这篇文章
赞了这篇文章
#青训营笔记创作活动#
2月20日 打卡day50
本篇内容:Hertz 是一个超大规模的企业级微服务 HTTP 框架,具有高易用性、易扩展、低时延等特点。
Hertz 默认使用自研的高性能网络库 Netpoll,在一些特殊场景中,相较于 go net,Hertz 在 QPS、时延上均具有一定优势。
在内部实践中,某些典型服务,如框架占比较高的服务、网关等服务,迁移 Hertz 后相比 Gin 框架,资源使用显著减少,CPU 使用率随流量大小降低 30%—60% 。
2月20日 打卡day50
本篇内容:Hertz 是一个超大规模的企业级微服务 HTTP 框架,具有高易用性、易扩展、低时延等特点。
Hertz 默认使用自研的高性能网络库 Netpoll,在一些特殊场景中,相较于 go net,Hertz 在 QPS、时延上均具有一定优势。
在内部实践中,某些典型服务,如框架占比较高的服务、网关等服务,迁移 Hertz 后相比 Gin 框架,资源使用显著减少,CPU 使用率随流量大小降低 30%—60% 。
展开
评论
点赞
#青训营笔记创作活动#
2月19日 打卡day49
本篇内容: 锁在编程中出现的次数尤为频繁,几乎主流的编程语言都会具备完善的锁机制,在数据库中也并不例外,为什么呢?这里牵扯到一个关键词:高并发,由于现在的计算机领域几乎都是多核机器,因此再编写单线程的应用自然无法将机器性能发挥到最大,想要让程序的并发性越高,多线程技术自然就呼之欲出,多线程技术一方面能充分压榨CPU资源,另一方面也能提升程序的并发支持性。
2月19日 打卡day49
本篇内容: 锁在编程中出现的次数尤为频繁,几乎主流的编程语言都会具备完善的锁机制,在数据库中也并不例外,为什么呢?这里牵扯到一个关键词:高并发,由于现在的计算机领域几乎都是多核机器,因此再编写单线程的应用自然无法将机器性能发挥到最大,想要让程序的并发性越高,多线程技术自然就呼之欲出,多线程技术一方面能充分压榨CPU资源,另一方面也能提升程序的并发支持性。
展开
评论
点赞
#青训营笔记创作活动#
2月18日 打卡day48
本篇内容接着 TraceId 做一些优化,如果想快速的定位到问题,就要实现对日志的快速搜索,所以本文就引入 ELK 技术栈。
ELK 是 ES、Logstash、Kibana 的总称,其核心功能就是实现数据的收集、搜索、可视化。具体功能和使用在本文都会提到。
2月18日 打卡day48
本篇内容接着 TraceId 做一些优化,如果想快速的定位到问题,就要实现对日志的快速搜索,所以本文就引入 ELK 技术栈。
ELK 是 ES、Logstash、Kibana 的总称,其核心功能就是实现数据的收集、搜索、可视化。具体功能和使用在本文都会提到。
展开
评论
点赞
#青训营笔记创作活动#
2月17日 打卡day47
综合来看,时间戳的问题是没法防止60s内的攻击,而随机数的问题在于要做到全局唯一,而且要存储很多 nonce ,耗费空间大。所以我们其实可以结合两者,具体流程如下:
1、客户端生成时间戳和随机数,并且作为sign的加密参数,传递给服务端
2、服务端先判断时间戳是否合法,若不合法,则直接返回【省去存储随机数的开销】
3、若时间戳合法,再将 nonce 存储到redis里边,并且设置 1min过期
2月17日 打卡day47
综合来看,时间戳的问题是没法防止60s内的攻击,而随机数的问题在于要做到全局唯一,而且要存储很多 nonce ,耗费空间大。所以我们其实可以结合两者,具体流程如下:
1、客户端生成时间戳和随机数,并且作为sign的加密参数,传递给服务端
2、服务端先判断时间戳是否合法,若不合法,则直接返回【省去存储随机数的开销】
3、若时间戳合法,再将 nonce 存储到redis里边,并且设置 1min过期
展开
评论
点赞
#青训营笔记创作活动#
2月16日 打卡day46
经过《MySQL锁机制》、《MySQL-MVCC机制》两篇后,咱们已经大致了解MySQL中处理并发事务的手段,不过对于锁机制、MVCC机制都并未与之前说到的《MySQL事务机制》产生关联关系,同时对于MySQL锁机制的实现原理也未曾剖析,因此本篇作为事务、锁、MVCC这三者的汇总篇,会在本章中补全之前空缺的一些细节,同时也会将锁、MVCC机制与事务机制之间的关系彻底理清楚。
2月16日 打卡day46
经过《MySQL锁机制》、《MySQL-MVCC机制》两篇后,咱们已经大致了解MySQL中处理并发事务的手段,不过对于锁机制、MVCC机制都并未与之前说到的《MySQL事务机制》产生关联关系,同时对于MySQL锁机制的实现原理也未曾剖析,因此本篇作为事务、锁、MVCC这三者的汇总篇,会在本章中补全之前空缺的一些细节,同时也会将锁、MVCC机制与事务机制之间的关系彻底理清楚。
展开
评论
点赞
#青训营笔记创作活动#
2月14日 打卡day45
在项目报错或者后续的其他问题复查都会去看日志信息、如何高效的找到自己想要的关键内容呢?下列一些linux的常用查找文件内容可能会给你帮助、但是这种只适合查看单机上的某一些日志、如何部署多台的这种需要一台一台找、或者你们使用了其他方式存储日志不将日志信息存放到本地日志文件、将日志信息存放Elasticsearch使用他的生态中的一些其他技术、最终实现多节点的日志全部放到Elasticsearch进行全文检索搜索相关的日志信息。
2月14日 打卡day45
在项目报错或者后续的其他问题复查都会去看日志信息、如何高效的找到自己想要的关键内容呢?下列一些linux的常用查找文件内容可能会给你帮助、但是这种只适合查看单机上的某一些日志、如何部署多台的这种需要一台一台找、或者你们使用了其他方式存储日志不将日志信息存放到本地日志文件、将日志信息存放Elasticsearch使用他的生态中的一些其他技术、最终实现多节点的日志全部放到Elasticsearch进行全文检索搜索相关的日志信息。
展开
评论
点赞
#青训营笔记创作活动#
2月13日 打卡day44
本篇解决如下问题:对于简单的SQL语句编写工作,相信这点对于每位略有经验的程序员都是手到拈来的事情,但往往实际业务场景中,咱们需要编写一些逻辑较为复杂的SQL语句,有可能涉及很多表、很多字段的复杂运算,这时编写SQL时就会出现“卡壳”情况,包括我在内也不例外,日常开发中也会遇到这类情况。
2月13日 打卡day44
本篇解决如下问题:对于简单的SQL语句编写工作,相信这点对于每位略有经验的程序员都是手到拈来的事情,但往往实际业务场景中,咱们需要编写一些逻辑较为复杂的SQL语句,有可能涉及很多表、很多字段的复杂运算,这时编写SQL时就会出现“卡壳”情况,包括我在内也不例外,日常开发中也会遇到这类情况。
展开
评论
点赞
#青训营笔记创作活动#
2月12日 打卡day43
本文介绍:尝试给开源库(Hertz——Golang高性能Http框架)提了一次PR,在这里浅浅地记录一下从提pr到merge的整个过程。搜索Github,我们可以先选一些自己感兴趣的开源库,比如Hertz——Golang高性能HTTP框架等。然后查看Issues列表,一般社区都会不定期发布一些新手任务,我们可以先从简单的任务开始。
2月12日 打卡day43
本文介绍:尝试给开源库(Hertz——Golang高性能Http框架)提了一次PR,在这里浅浅地记录一下从提pr到merge的整个过程。搜索Github,我们可以先选一些自己感兴趣的开源库,比如Hertz——Golang高性能HTTP框架等。然后查看Issues列表,一般社区都会不定期发布一些新手任务,我们可以先从简单的任务开始。
展开
评论
点赞
#青训营笔记创作活动#
2月11日 打卡day42
本文内容:当我们业务数据库表中的数据越来越多,如果你也和我遇到了以下类似场景,那让我们一起来解决这个问题:数据的插入,查询时长较长
后续业务需求的扩展 在表中新增字段 影响较大
表中的数据并不是所有的都为有效数据 需求只查询时间区间内的
2月11日 打卡day42
本文内容:当我们业务数据库表中的数据越来越多,如果你也和我遇到了以下类似场景,那让我们一起来解决这个问题:数据的插入,查询时长较长
后续业务需求的扩展 在表中新增字段 影响较大
表中的数据并不是所有的都为有效数据 需求只查询时间区间内的
展开
评论
点赞
#青训营笔记创作活动#
2月10日 打卡day41
本文内容:Debug是开发人员必备的基础技能,伴随着开发生涯,只要需要写代码,就一定有debug的诉求... 因为大部分开发同学都是用Debug来确认程序是不是预期进行(单元测试也可以)。Debug一个非常常见的我们以为自己已经熟练掌握的技能,有点像说话一样,每个人都可以把话说出来,但不是每个人都能表达出影响力...大家都会Debug,不过有些Debug的方式可能确实会效率更高一些
2月10日 打卡day41
本文内容:Debug是开发人员必备的基础技能,伴随着开发生涯,只要需要写代码,就一定有debug的诉求... 因为大部分开发同学都是用Debug来确认程序是不是预期进行(单元测试也可以)。Debug一个非常常见的我们以为自己已经熟练掌握的技能,有点像说话一样,每个人都可以把话说出来,但不是每个人都能表达出影响力...大家都会Debug,不过有些Debug的方式可能确实会效率更高一些
展开
评论
点赞
#青训营笔记创作活动#
2月8日 打卡day40
本篇主要是实战篇环节,以问题展开,应对面试场景作答【melo称其为"手撕面答"】,尽量简短,某些部分可能不会进行详细介绍。如:固定窗口计数是指,假设我们的限流规则是:1min内最多只能访问10次,那么固定窗口就是固定了【 1min-2min】这个窗口内,只能有10次访问 ,相应的我们就要给这个窗口维护一个计数器。 为了节省空间,其实我们不需要维护一个个窗口,只需要维护当前访问时间所在的窗口即可,以及对应的计数器,当新的访问到达了下一个窗口时,则计数器重置即可。
2月8日 打卡day40
本篇主要是实战篇环节,以问题展开,应对面试场景作答【melo称其为"手撕面答"】,尽量简短,某些部分可能不会进行详细介绍。如:固定窗口计数是指,假设我们的限流规则是:1min内最多只能访问10次,那么固定窗口就是固定了【 1min-2min】这个窗口内,只能有10次访问 ,相应的我们就要给这个窗口维护一个计数器。 为了节省空间,其实我们不需要维护一个个窗口,只需要维护当前访问时间所在的窗口即可,以及对应的计数器,当新的访问到达了下一个窗口时,则计数器重置即可。
展开
评论
点赞
#青训营笔记创作活动#
2月7日 打卡day39
本文介绍了:Java 8 引入了一个十分实用的 Optional 类,它主要是为了解决空指针异常(NullPointerException)。Optional 是 Java 语言的有益补充 —— 它旨在减少代码中的 NullPointerExceptions。通过设计,自然的融入了 Java 8 函数式支持。总的来说,这个简单而强大的类有助于创建简单、可读性更强、比对应程序错误更少的程序。
2月7日 打卡day39
本文介绍了:Java 8 引入了一个十分实用的 Optional 类,它主要是为了解决空指针异常(NullPointerException)。Optional 是 Java 语言的有益补充 —— 它旨在减少代码中的 NullPointerExceptions。通过设计,自然的融入了 Java 8 函数式支持。总的来说,这个简单而强大的类有助于创建简单、可读性更强、比对应程序错误更少的程序。
展开
评论
点赞
#青训营笔记创作活动#
2月6日 打卡day38
本文主要讨论在秒杀的高并发场景下,传统订单架构存在的性能瓶颈,如何利用 redis、MQ 等中间件对系统做优化,解决缓存加速、防止重复提交、排队下单、超卖、少卖、削峰、异步下单等核心问题。
2月6日 打卡day38
本文主要讨论在秒杀的高并发场景下,传统订单架构存在的性能瓶颈,如何利用 redis、MQ 等中间件对系统做优化,解决缓存加速、防止重复提交、排队下单、超卖、少卖、削峰、异步下单等核心问题。
展开
评论
点赞
#青训营笔记创作活动#
2月5日 打卡day37
从本篇开始,我们将聚焦缓存体系中的具体场景,分别进行深入的阐述与探讨。本篇我们就一起具体地聊一聊缓存使用中需要关注的典型问题与可靠性防护措施。在分布式系统盛行的今天,尤其是在一些用户体量比较大的互联网业务系统里面,缓存充当着扛压屏障的作用。当前各互联网系统可以抗住动辄数万甚至数十万的并发请求量,缓存机制功不可没。而一旦缓存出现问题,对系统的影响往往也是致命的。所以在缓存的使用时必须要考虑完备的兜底与灾难应对策略。
2月5日 打卡day37
从本篇开始,我们将聚焦缓存体系中的具体场景,分别进行深入的阐述与探讨。本篇我们就一起具体地聊一聊缓存使用中需要关注的典型问题与可靠性防护措施。在分布式系统盛行的今天,尤其是在一些用户体量比较大的互联网业务系统里面,缓存充当着扛压屏障的作用。当前各互联网系统可以抗住动辄数万甚至数十万的并发请求量,缓存机制功不可没。而一旦缓存出现问题,对系统的影响往往也是致命的。所以在缓存的使用时必须要考虑完备的兜底与灾难应对策略。
展开
评论
点赞
#青训营笔记创作活动#
2月4日 打卡day36
本文内容有:string 类型的值不能修改:尝试使用索引遍历字符串,来更新字符串中的个别字符,是不允许的。string 类型的值是只读的二进制 byte slice,如果真要修改字符串中的字符,将 string 转为 []byte 修改后,再转为 string 即可。
2月4日 打卡day36
本文内容有:string 类型的值不能修改:尝试使用索引遍历字符串,来更新字符串中的个别字符,是不允许的。string 类型的值是只读的二进制 byte slice,如果真要修改字符串中的字符,将 string 转为 []byte 修改后,再转为 string 即可。
展开
评论
点赞
#青训营笔记创作活动#
2月3日 打卡day35
本篇文章将围绕 Hertz 开源仓库的一个 demo,讲述如何使用 Hertz 完成 JWT 的认证与授权流程。这里要说明的是,hertz-jwt 是 Hertz 众多外部扩展组件之一,Hertz 丰富的扩展生态为开发者带来了很大的便利,值得在本文之外自行探索。
2月3日 打卡day35
本篇文章将围绕 Hertz 开源仓库的一个 demo,讲述如何使用 Hertz 完成 JWT 的认证与授权流程。这里要说明的是,hertz-jwt 是 Hertz 众多外部扩展组件之一,Hertz 丰富的扩展生态为开发者带来了很大的便利,值得在本文之外自行探索。
展开
评论
点赞