
获得徽章 1
- #青训营笔记创作活动#
2月15日 打卡day8
实际使用场景中,对于一致性要求不是特别高、且并发量不是特别大的场景,可以选择基于数据库事务保证的先更新数据库再更新/删除缓存。而对于并发要求较高、且数据一致性要求较好的时候,推荐选择先更新数据库,再删除缓存,并结合删除重试 + 补偿逻辑 + 缓存过期TTL等综合手段。展开评论点赞 - #青训营笔记创作活动#
2月14日 打卡day7
跨域问题的本质是浏览器为了保证用户的一种安全拦截机制,想要解决跨域问题,只需要告诉浏览器“我是自己人,不要拦我”就行。它的常见实现方式有 5 种:通过注解实现局部跨域、通过配置文件实现全局跨域、通过 CorsFilter 对象实现全局跨域、通过 Response 对象实现局部跨域,通过ResponseBodyAdvice 实现全局跨域。展开评论点赞 - #青训营笔记创作活动#
2月13日 打卡day6
从一个计算机到另一个计算机的一段物理线路就是一条链路,而计算机就是网络中的一个结点;网络结点可以是计算机,集线器,交换机或路由器等。网络通过不同的结点,将覆盖到更大的范围。评论点赞 - #青训营笔记创作活动#
2月12日 打卡day5
一个典型的 Kafka 体系架构包括若干Producer、若干Broker、若干Consumer,以及一个ZooKeeper 集群。ZooKeeper是Kafka用来负责集群元数据的管理、控制器 的选举等操作的。Producer 将消息发送到 Broker,Broker 负责将收到的消息存储到磁盘中,而 Consumer 负责从 Broker 订阅并消费消息。展开评论点赞 - #青训营笔记创作活动#
2月11日 打卡day4
hertz-jwt 是 Hertz 众多外部扩展组件之一,Hertz 丰富的扩展生态为开发者带来了很大的便利。
服务器需要在用户第一次登陆的时候,验证用户账号和密码,并签发 jwt token。展开评论点赞 - #青训营笔记创作活动#
2月10日 打卡day3
TCP协议本身是全双工的,但我们最常用的HTTP1.1,虽然是基于TCP的协议,但它是半双工的,对于大部分需要服务器主动推送数据到客户端的场景,都不太友好,因此我们需要使用支持全双工的websocket协议。展开评论点赞 - #青训营笔记创作活动#
2月9日 打卡day2
最左匹配原则是指在联合索引中,SQL语句中用到了联合索引中的最左边的索引,那么这条SQL语句就可以利用这个联合索引去进行匹配。作者举例说明,写的很详细。golang可以用gorm库执行MySQL操作,简化了MySQL的代码编写。展开评论点赞 - #青训营笔记创作活动#
2月9日 打卡day10
大数取模运算是不可逆的,因此他人无法暴力解密。但是结合欧拉定理,我们可以选取出合适的p(公钥), q(私钥), N(用于取模的大数),让原本不可逆的运算在特定情况下,变得有那么点“可逆”的味道。数学原理决定了我们用公钥加密的数据,只有私钥能解密。反过来,用私钥加密的数据,也只有公钥能解密。展开评论点赞 - #青训营笔记创作活动#
2月8日 打卡day9
大部分服务端使用的抗压型缓存,为了保证缓存执行速度,普遍都是将数据存储在内存中。而受限于硬件与成本约束,内存的容量不太可能像磁盘一样近乎无限的去随意扩容使用。对于实际数据量及其庞大且无法将其全部存储于缓存中的时候,我们需要保证存储在缓存中的有限部分数据要尽可能的命中更多的请求,即要求缓存中存储的都是热点数据。展开评论点赞 - #青训营笔记创作活动#
2月7日 打卡day8
实际使用场景中,对于一致性要求不是特别高、且并发量不是特别大的场景,可以选择基于数据库事务保证的先更新数据库再更新/删除缓存。而对于并发要求较高、且数据一致性要求较好的时候,推荐选择先更新数据库,再删除缓存,并结合删除重试 + 补偿逻辑 + 缓存过期TTL等综合手段。展开评论点赞