『Redis』缓存与数据库的一致性问题
今天在 B 站上刷到了这个问题,但是没有时间总结,先把视频放这 面试官:缓存和数据库如何保证一致性 你们项目中如何保证 Redis 与 MySQL 的数据一致性? MySQL和Redis的双写一致性 结论 先更新数据库,再删除缓存 并且结合延时双删或者消息队列
『总结』2022年5月30日阶段性总结
前几天比赛太累了,今天直接摆了一天 睡前又感觉过意不去,做了个简单的阶段性总结
『字节青训营-3rd』L15:微服务架构原理与治理实践
微服务架构介绍 系统架构演进历史 为什么系统架构需要演进? 互联网的爆炸性发展 硬件设施的快速发展 需求复杂性的多样化 开发人员的急剧增加 计算机理论及技术的发展 单体架构 All in one process 优势: 性能最高 冗余小 劣势: debug 困难 模块相互影响 模块分工、开发流程 垂直应用架构 按照业务线垂直划分 优势: 业务独立开发维护 劣势: 不同业务存在冗余 每个业务还是单体 分布式架构 抽出业务无关的公共模块 优势: 业务无关的独立服务 劣势: 服务模块bug可导致全站瘫痪 调用关系复杂 不同服务冗余 SOA架构(Service Oriented Architecture) 面向服务 优势: 服务注册 劣势: 整个系统是中心化的 需要从上至下设计 重构困难 微服务架构 彻底的服务化 优势: 开发效率 业务独立设计 自下而上 故障隔离 劣势: 治理、运维难度 观测挑战 安全性 分布式系统 微服务架构概览 微服务架构核心要素 服务治理 服务注册 服务发现 负载均衡 扩缩容 流量治理 稳定性治理 … 可观察性 日志采集 日志分析 监控打点 监控大盘 异常报警 链路追踪 … 安全 身份验证 认证授权 访问令牌 审计 传输加密 黑产攻击 … 微服务架构原理及特征 基本概念 服务(Service) 一组具有相同逻辑的运行实体 实例(Instance) 一个服务中,每个运行实体即为一个实例 实例与进程的关系 实例与进程直接没有必然对应关系,一个实例可以对应一...
『字节青训营-3rd』L14:HTTP 框架修炼之道
再谈 HTTP 协议 为什么要协议 协议里有什么 PUT:完整更新 PATCH:部分更新(不幂等) 一个 Demo 请求流程 不足和展望 01总结 HTTP 框架的设计与实现 分层设计 应用层设计 中间件设计 路由设计 如何做设计 协议层设计 网络层设计 (避免阻塞) 02总结 性能修炼之道 针对网络库的优化 针对协议的优化 Headers 解析 Header key 规范化 热点资源池化 03总结 企业实践
『字节青训营-3rd』L13:深入浅出 RPC 框架
相关链接学员手册:第十三节:深入浅出 RPC 框架 基本概念 本地函数调用 远程函数调用 RPC 概念模型 一次 RPC 的完整过程 RPC 的好处 RPC 的问题 01小结 分层设计 以 Apache Thrift 为例 编解码层 生成代码 数据格式 二进制编码 选型 协议层 概念 协议构造 多路复用:一个连接内有多个请求流 协议解析 网络通信层 Sockets API 网络库 02小结 关键指标 稳定性 保障策略 请求成功率 长尾请求 注册中间件 易用性 扩展性 观察性 高性能 03小结 企业实践 Kitex 自研网络库 背景 Netpoll 扩展性设计 性能优化 网络库优化 编解码优化 合并部署 04小结
『Git』如何使用 Git 参与杭助的项目
前情提要: 这几天开始参与字节跳动青训营的小组项目,沿用的是助手的团队开发模式,鄙人因为不熟悉 Git 的而吃了亏(基本上是学一次忘一次,下次一定好好做笔记),特写本文总结一套正确的操作逻辑,也同时为后来人指路 首先,你可以根据个人喜欢使用 GoLand 的图形界面或者纯命令行,二者的效果是相同的 PS:下图中我的 GoLand 是换过主题的,但是按钮的位置没有变,大差不差 怎么将项目克隆到本地? 使用图形界面使用命令行打开 GoLand ,点击『从 VCS 获取』 然后输入仓库 URL ,建议是 SSH 格式的,可以从 GitHub 找到 本步对应的命令行是 1git clone git@github.com:h68u/h68u-tiktok-app.git 这里还牵扯到创建并把 SSH 密钥添加到 GitHub 之类的,在此不赘述 怎么为项目贡献我的代码? 助手的标准规范是: 从主分支新建 dev 分支,并以你的名字命名(如 NX-dev) 在这个分支上修改项目 提交本地分支到本地 git 储存库,再推送至 GitHub 在 GitHub 上合并到主分支,完成对主分支的更改 接下来详细说明 新建你的个人分支(git checkout) 点击右下角的「Git 分支」 按钮,从主分支新建分支 本步对应的命令为 1git checkout -b NX-dev 将更新提交到本地储存库(git commit) 在工具栏中找到 「Git」->「提交」,或者从右上角的按钮中找到提交 核对一下本次的变更内容,并且在左下角标注本次提交的信息,然后提交 注意:可...
『字节青训营-3rd』L12:数据结构与算法
因为参加数模比赛去了,所以没时间记录
『字节青训营-3rd』L11:Git 的正确使用姿势与最佳实践
Git 是什么 版本控制 版本控制是什么? 一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统 本地版本控制 代表:RCS 依托于本地磁盘进行版本控制 集中式版本控制 代表:SVN 存在一个统一的远端服务器,用于版本控制,本地不存储版本控制 分布式版本控制 代表:Git 每个库都拥有所有的版本控制信息,远端服务器用于不同库之间进行版本信息同步 Git 发展历史 最初版由 Liunx 创始人 Linus Torvalds 花两周时间开发而成,主要是为了用于 Linux 项目的维护 Git 基本使用方式 Git 目录介绍 项目初始化 123mkdir democd demogit init 其他参数 --initial-branch 初始化的分支 --bare 创建裸仓库(纯 Git 目录,没用工作目录) --template 通过模板构建自定义 git 目录 观察 .git 目录 HEAD:当前的分支 config:配置 objects:文件信息 refs:分支信息 hooks 里面的一堆 .sample 文件是例子,不会执行 工作区和暂存区 Git Config 不同级别的 Git 配置:全局、系统、当前 低级别可以覆盖高级别 常见的 Git 配置 用户名配置 12git config --global user.name "xxx"git config --global user.email xxx@xxx.com Instead of 配置 相当于替换 1git c...
『离散数学』数理逻辑:命题逻辑等值演算
等值式 析取范式和合取范式 主析取范式和主合取范式
『离散数学』数理逻辑:命题的基本概念
命题的概念 命题联结词 公式的类型
『字节青训营-3rd』L10:架构初探-谁动了我的蛋糕
相关链接学员笔记:第十节:架构初探 - 谁动了我的蛋糕 什么是架构 架构定义 问题 单机 单体、垂直应用 | 垂直切分 SOA、微服务 | 水平切分 小结 竖着切:分不同种类事情 横着切:同一件事分几步 企业级后端架构剖析 背景 云计算 云原生 弹性资源 DevOps 微服务架构 服务网格 云原生蛋糕店 企业级后端架构的挑战 问题 离在线资源并池 自动扩缩容 微服务亲合性部署 流量治理 CPU 水位负载均衡 后端架构实践 问题背景 问题提炼 自适应静态权重 自适应动态权重 Alpha 自适应动态权重 Beta 自适应动态权重 Release 尾声
『Others』苏系坦克 T-64/72/80/90 型号辨别
❤️本期内容整理自B站视频【军事科普】如何识别T-64/72/80和T-90 一般来说,战雷里遇到这些苏系锅盖头都是直接打驾驶员观察口,都怎么区分具体型号 今天逛 B 站看见了这个视频,感觉有必要记一下笔记 但是太忙了,简单地说就是炮塔,屁股,首上,负重轮,红外大眼的区别 等有空去战雷里截点图来展示一下
『WSL』在 WSL 中使用主机的代理(以 Clash 为例)
困惑了我很久的问题今天终于被我解决惹~让我赶紧把它记录下来 确保 Windows 上的代理可用 运行 Clash,打开 Allow LAN 和 System Proxy 然而我发现 Profiles 里 allow-lan 还是 false,安全起见还是手动给它编辑一下 在终端中试一下有没有代理 1curl https://www.google.com 在 WSL 中连接主机的代理 将下面函数加入到~/.profile中,记得编辑端口 12345678910111213141516export hostip=$(cat /etc/resolv.conf |grep -oP '(?<=nameserver\ ).*') #获得网关地址export proxyPort=1080 #端口alias proxy=' export https_proxy="http://${hostip}:${proxyPort}"; export http_proxy="http://${hostip}:${proxyPort}"; export all_proxy="http://${hostip}:${proxyPort}"; echo -e "Acquire::http::Proxy \"http://${host...
『字节青训营-3rd』L9:将我的服务开放给用户
相关链接学员笔记:第九节:将我的服务开放给用户 课前准备 (摘自学员笔记) 专有名词 权威DNS:保存了相应域名的权威信息。权威DNS即通俗上“这个域名我说了算”的服务器 LocalDNS:缓存+递归查询,运营商(集团网)部署的本地DNS服务器,直接接受网内客户端请求 根DNS服务器:全球有13台,LocalDNS未命中缓存查询的起点服务器,其公网地址具体可参考www.iana.org/domains/roo… DNS Update:DNS主服务器master接受外部的变更指令 DNS Notify:DNS主服务器master接受变更命令后,会自增自身的serial号,同时将变更的serial号告知从服务器slave DNS IXFR:DNS从服务器slave以增量的形式向master要求获取本次变更的内容 DNS AXFR:DNS从服务器slave以全量的形式向master要求获取当前的全量数据 对称加密:使用相同的秘钥来加密传输内容,一端加密后,对端收到数据会用相同的秘钥来解密 非对称加密:如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。 静态加速:针对视频、图片等不变的内容,将其缓存在靠近用户的边缘节点,缓存预热后用户直接从边缘获取,从而加速访问速度; 动态加速DCDN:针对API类返回值不同的请求,通过特殊的网络优化方式(路由优化、传输优化)等技术加速其达到源站的速度。 VIP:虚拟IP,一般作为四层反向代理的入口,client看起来一直在与VIP交互 ...