Run-dream Blog

Try Catch Finally

从1到k推广股票交易问题

背景 LeetCode 上有一系列的 股票交易 的问题, 列举如下: 一次交易 (Easy) 无数次交易 (Easy) 两次交易 (Hard) K次交易 (Hard) 是用来学习动态规划的很好的案例。 分析和实现 一次交易 很容易想到一次买,一次卖。要求的结果,就是在第i天买入的最大收益,也就是要找到第i天以后的最高价位。 自然可以想到暴力求解,对于每天都去...

解决 git push 403 的问题

背景 早上 git push 代码的时候发现推送失败, 错误信息如下: remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. remote: Please see https://github.blog/20...

kubenetes 入门

kubenetes 是什么 官网定义: Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 抓去关键信息: 容器化,声明式配置,自动化 背景和解决的问题 为什么会有这个东西,就要从部署方式的变更说起: 物理机部署 缺点: 无法为物理服务器中的应用程序定义资源边...

熔断器hystrix

背景 过载 在分布式系统中,某个服务可能因为流量过多,导致请求处理不过来,最后服务崩溃,甚至引起依赖它的服务也一直等不到返回,导致连锁反应一起崩溃,这种情况被称为雪崩。 限流 很容易就想到需要对单个服务进行限流,常见的限流方式有 令牌桶算法 / 漏桶算法 优点是实现简单,缺点是难以设置合理的限流阈值。 自适应限流 根据服务器的...

数据库秒级平滑扩容架构

参考文档 数据库秒级平滑扩容架构方案

重新理解docker

定义 从目的上来说,容器其实是一种沙盒技术。容器的核心功能,就是通过约束和修改进程的动态表现,从而为其创造出一个“边界”。 从操作系统的角度来说,Docker实例,就是一个特殊的被限制和隔离的进程。而Docker引擎,则是用来创建和管理Docker实例的进程。 实现 glibc 提供了 clone 的方法来新建进程, 函数声明为: int clone(int (*fn)(vo...

可见性、原子性和有序性傻傻搞不明白

基本定义 最开始接触这三个定义,还是大学里写 java 的时候,先简单看一下概念。这三个特性是用来保证并发安全的。 原子性(Atomicity) 一个操作或者多个操作,要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。 由于程序的执行机制,只有底层的指令才天然的有原子性,比如 i ++ 转换为汇编以后发现其实是有三条语句,并不满足原子性。 ...

从koa到egg.js到midway.js

从KOA开始 KOA 是什么? KOA 从设计理念上来说并不是一个完整的应用程序框架,相反更多的可以视为是 node.js 的 http 模块的抽象。 KOA 源码分析 我们从使用的角度入手, const Koa = require('koa'); const app = new Koa(); // middleware app.use(async (...

Http相关的协议

HTTP HTTP 即 (HyperText Transfer Protocol) 超文本传输协议。 用途: 为 Web 浏览器与 Web 服务器之间的通信而设计的,但也可以用于其他目的,比如grpc就使用了http2.0作为传输协议。 组成: 服务端 客户端 传输协议 TCP 报文 起始行 ...

精进(3)

Summary 看到有好友在看这本书,然后加上之前看过他的第一本书,所以看了一下。 主要是一些工作方法论的东西,也可以讲是一些知易行难的点。 比较有意思的是他将计算机学科里的一些东西迁移到认知学里来。 Notes 摘抄一些可能对我有用的方法: 如何提升专注力 重要性区分 创造简单的环境(比如立刻把游戏卸载掉) 如何调整认知负荷 扫雷读书法 中间转换创作法 (类比) ...