获得徽章 1
- #青训营笔记创作活动#
2023.2.5 打卡day53
目前我做过的一些系统都会使用到Redis,如使用Redis作为缓存,之前都是通过Java来设计系统后端并使用redis,现在学习通过Golang来开发系统后端,所以要学习go-redis。今天这篇文章学习到利用go-redis包来连接Redis,且此包自带连接池,学习到如何通过go语言在Redis中进行基本的键值操作(实现基本缓存功能)。展开评论点赞 - #青训营笔记创作活动#
2023.2.4 打卡day52
前后端分离项目中是无法使用session来存储当前登录用户的信息的,且HTTP协议是无状态的,这时我们可以采用token,登录的用户发送给服务端的请求头中设置token,这样服务端就能鉴别当前发起请求的用户是否登录(或有权限)。今天这篇文章让我学习到在Gin框架中使用JWT来生成token,并在Gin中的相关路由设置局部中间件进行JWT的token鉴权。展开评论点赞 - #青训营笔记创作活动#
2023.2.3 打卡day51
当一个方法的运行时间过长时,为了缩短呈现给用户的反应时间,我们可以单独将此方法开一个线程异步执行,一般来说需要类继承Thread类或实现Runnable接口,并且实现run()方法,但当所需开的线程过多时,不好管理。当我们使用SpringBoot框架时,就可以来更简便开启线程和管理,只需增加相关注解即可,并且还搭配了线程池进行管理,今天这篇文章就让我学习到如何在SpringBoot框架中开启异步线程。展开评论点赞 - #青训营笔记创作活动#
2023.2.2 打卡day50
Hertz 默认使用自研的高性能网络库 Netpoll,而Gin框架是基于Golang原生的net/http库,且经过字节内部开发团队的比较,Hertz的性能是比Gin框架要好很多的,所以在Go语言Web开发的学习中,学习Hertz框架是很有必要的。今天这篇文章学习了如何在Hertz框架中使用反向代理技术,这也是为后面分布式开发,部署集群做准备。展开评论点赞 - #青训营笔记创作活动#
2023.2.1 打卡day49
在如今这个多核机器的时代,我们为了充分利用CPU资源,需要采用并发编程,多线程(协程)技术,但在这种情况下也引出了线程安全问题,在MySQL中每一个事务也即一个线程,为了保证线程的并发执行是正确的,采用了锁机制(这在其他的语言,系统中也有)。今天这篇文章让我学习MySQL的锁机制(根据不同的存储引擎也有不同),共享锁是只对读共享(对写进行排斥),排他锁对于其他事务的读和写操作都会排斥,根据操作的粒度分为行锁和表锁,后面相关的学习需要根据实战例子来进行。展开评论点赞 - #青训营笔记创作活动#
2023.1.31 打卡day48
当我们在日志中添加TraceId,可以帮助我们后期查看日志时,进行精准定位问题所在。目前我个人开发的项目基本都是单台服务器,这样检查日志还是比较简单,但是当我们是分布式开发,系统部署在多台服务器中,我们在像之前一样查看日志是十分麻烦(费时,效率低),所以这时就可使用ELK,将多台服务器的日志进行收集汇总,进行集中式管理。ELK是Elasticsearch、Logstash、Kibana三大开源框架首字母大写简称,也即使用到的技术。今天这篇文章让我学习到如何在项目中配置所需环境和如何去使用ELK,后期的学习需要联系实际项目自己去研究。展开评论点赞 - #青训营笔记创作活动#
2023.1.30 打卡day47
SSO(SingleSignOn)即单点登录,是指当用户在身份认证服务器上登录一次后,即可获得单点登录系统中其他关联系统和应用软件的权限,这样用户就不需要因为不同的系统进行多次登录(也减少用户所需记忆系统的用户名和密码的数量)。今天这篇文章让我学习到SSO的验证流程,若客户端访问子系统(的服务端),子系统会检查是否存在局部会话(即此子系统的token),有则放行,若无局部会话,则检查全局会话(即单点登录系统的token)是否存在,若有全局会话,则根据全局会话生成子系统的局部会话,若无则跳转到SSO登录处。展开评论点赞 - #青训营笔记创作活动#
2023.1.29 打卡day46
在多线程情况下,是需要使用锁机制,来保证多个并发的进程是正确的运行,但是还是会碰到死锁这一问题,在MySQL中的事务也可即多个并发线程,所以其也会碰到死锁的情况,死锁具有四个必要条件即互斥条件、不可剥夺条件,请求和保持条件与循环等待条件。今天这篇文章让我学习到MySQL是如何解决死锁这一问题的,在InnoDB存储引擎中提供了锁的超时机制(事务长时间无法获取到锁,就自动放弃,且事务会自动结束和返回),学习到MySQL底层是如何实现锁机制和事务的隔离机制。展开评论点赞 - #青训营笔记创作活动#
2023.1.28 打卡day45
我们项目上线部署的服务器,操作系统基本都为Linux,当项目出错或者其他问题,我们都需要去查看日志文件。今天这篇文章让我学习到使用Linux中的cat和tail命令来查看文件信息,cat命令是静态查看文件信息,而tail命令会动态输出后续存入文件中的内容。展开评论点赞 - #青训营笔记创作活动#
2023.1.27 打卡day44
后端开发者,对于关系型数据库应该也要掌握,除了写出基本实现功能的SQL语句,我们应该要学会对SQL语句进行优化,使查询速度更快,即减少检索的数据量,充分使用到索引。今天这篇文章让我学习到许多技巧,如减少使用*(最好在SQL语句中表明所需的列),要以数据更少的表来驱动数据量更大的表,使用explain分析SQL语句的执行情况,当然更重要的其实是要合理的使用索引。展开评论点赞