获得徽章 12
- #青训营笔记创作活动#
1月22日 day32
今日学习主要学习了事务与锁相关的命令:select ... lock in share mode;手动获取共享锁执行SQL语句;select ... for share;MySQL8.0之后优化版的共享锁写法。select ... for update; 手动获取排他锁执行。lock tables 表名 read;获取表级别的共享锁。lock tables 表名 write;:获取表级别的排他锁。展开赞过评论1 - #青训营笔记创作活动#
1月21日 day31
今日学习主要学习了分布式锁,其实也就是将加锁的这一个操作,单独的抽取出来了,让每个服务都能感知到。常用的方案主要集中在Redis 实现分布式锁、Zookeeper 实现分布式锁
和MySQL实现分布式锁,也是常说的基于数据库实现分布式锁。后续主要针对于Redis服务的多节点处理模式,实现了red红锁控制。展开评论点赞 - #青训营笔记创作活动#
1月20日 day30
今日学习主要学习了跨域问题的本质是浏览器为了保证用户的一种安全拦截机制。解决跨域的常见实现方式有 5 种:通过注解实现局部跨域、通过配置文件实现全局跨域、通过 CorsFilter 对象实现全局跨域、通过 Response 对象实现局部跨域,通过 ResponseBodyAdvice 实现全局跨域。展开评论点赞 - #青训营笔记创作活动#
1月19日 day29
今日学习主要学习了BPMN,它的全称是 Business Process Model and Notation,他是工作流程图的统一标准,一个流程图中主要包含四方面的内容:事件、连线、任务和网关工作流程图。流程绘制有一个经典工具:Flowable Eclipse Designer,但是,这是一个 Eclipse 插件展开评论点赞 - #青训营笔记创作活动#
1月18日 day28
今日学习主要学习了spring会自动注入spring.factories文件中的类,所以我们只需要编写spring.factories即可。首先在resources下新建META-INF文件夹,然后在该文件夹下新建文件,命名为spring.factories。从而开启spring自动装配。展开评论点赞 - #青训营笔记创作活动#
1月17日 day27
今日学习主要学习了分库与分表可以从:垂直(纵向)和 水平(横向)两种纬度进行拆分。垂直分库一般来说按照业务和功能的维度进行拆分,将不同业务数据分别放到不同的数据库中,核心理念 专库专用。水平分库是把同一个表按一定规则拆分到不同的数据库中,每个库可以位于不同的服务器上。展开评论点赞 - #青训营笔记创作活动#
1月16日 day26
今日学习主要学习了缓存穿透是指用户在不断访问一个缓存和数据库中都没有的数据。缓存无法命中,从而导致一直请求数据库,流量过大就会导致数据库的崩溃。缓存雪崩:Redis挂掉了,请求全部走数据库。缓存击穿和缓存穿透其实非常类似,但是缓存击穿说的是数据在缓存中没有,但是在数据库中有的数据。展开评论点赞 - #青训营笔记创作活动#
1月15日 day25
今日学习主要学习了在大量与Redis进行网络IO交互,导致频繁的IO请求,以及线程的阻塞与唤醒切换交替,使得系统在线程上下文切换层面浪费巨大。对于一些变更频率比较高的数据,采用集中式缓存,这样可以确保数据变更之后所有节点都可以实时感知到,确保数据一致;对于一些极少变更的数据(比如一些系统配置项)或者是一些对短期一致性要求不高的数据(比如用户昵称、签名等)则采用本地缓存,大大减少对远端集中式缓存的网络IO次数。展开评论点赞 - #青训营笔记创作活动#
1月14日 day24
今日学习主要学习了如何限流,为了防止某个用户,请求接口次数过于频繁,可以只针对该用户做限制,时候只对某个用户限流是不够的,有些高手可以模拟多个用户请求,这种nginx就没法识别了。这时需要加同一ip限流功能。别以为限制了用户和ip就万事大吉,有些高手甚至可以使用代理,每次都请求都换一个ip。这时可以限制请求的接口总次数展开评论点赞 - #青训营笔记创作活动#
1月13日 day23
今日学习主要学习了HTTPS相当于HTTP+TLS,目前主流的是TLS1.2,基于TCP三次握手之后,再来TLS四次握手。TLS加密机制前期4次握手,本质上就是在利用非对称加密的特点,交换三个随机数。目的就是为了用这三个随机数生成对称加密的"会话秘钥"。后期就一直用对称机密的方式进行通信。展开评论点赞