博客园 - drop *
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=162970
2022-04-20T09:56:03Z
drop *
https://www.cnblogs.com/fengyc/
feed.cnblogs.com
https://www.cnblogs.com/fengyc/p/16163182.html
python 的多线程与 GIL - drop *
python 的多线程与 GIL python 的多线程多少有点违背大家的直觉,由于 GIL 的存在和线程上下文的切换,多线程并没有起到加快运算速度,反而更慢。以最常用的 CPython 为例,由于 GIL 的存在,以下 CPU 密集型的应用,单线程和多线程结果并没多少差别。 python 版本的多
2022-04-18T14:30:00Z
2022-04-18T14:30:00Z
drop *
https://www.cnblogs.com/fengyc/
【摘要】python 的多线程与 GIL python 的多线程多少有点违背大家的直觉,由于 GIL 的存在和线程上下文的切换,多线程并没有起到加快运算速度,反而更慢。以最常用的 CPython 为例,由于 GIL 的存在,以下 CPU 密集型的应用,单线程和多线程结果并没多少差别。 python 版本的多 <a href="https://www.cnblogs.com/fengyc/p/16163182.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fengyc/p/14638073.html
架构反思-01-康威定律 - drop *
架构反思-01-康威定律 从开发逐步转到做系统设计已经有挺长一段时间了,在这个过程中有向别人学习的东西,有从好的书上学到的东西,有自己摸索的一点经验,抽点时间整理下,也反思在系统设计上的问题。 把康威定律作为第一条,是因为实际上是从康威定律开始才去思考系统元素结构问题,慢慢地开始有意识去反思业务、组
2021-04-09T09:22:00Z
2021-04-09T09:22:00Z
drop *
https://www.cnblogs.com/fengyc/
【摘要】架构反思-01-康威定律 从开发逐步转到做系统设计已经有挺长一段时间了,在这个过程中有向别人学习的东西,有从好的书上学到的东西,有自己摸索的一点经验,抽点时间整理下,也反思在系统设计上的问题。 把康威定律作为第一条,是因为实际上是从康威定律开始才去思考系统元素结构问题,慢慢地开始有意识去反思业务、组 <a href="https://www.cnblogs.com/fengyc/p/14638073.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fengyc/p/14586297.html
架构反思-03-并发是很复杂的事情 - drop *
架构反思-03-并发是很复杂的事情 多核给程序带了更强的处理能力,本质上来说,这是一种横向扩展的方法。同样地,它也要面对任何横向扩展的方法都必须面对的问题,事情划分和合并,以及这个过程中所必须处理的同步、一致性等事务性问题。 并发是一件很复杂的事情,这不仅体现在大型的场景上,如业务层面的,多机集群共
2021-03-27T09:09:00Z
2021-03-27T09:09:00Z
drop *
https://www.cnblogs.com/fengyc/
【摘要】架构反思-03-并发是很复杂的事情 多核给程序带了更强的处理能力,本质上来说,这是一种横向扩展的方法。同样地,它也要面对任何横向扩展的方法都必须面对的问题,事情划分和合并,以及这个过程中所必须处理的同步、一致性等事务性问题。 并发是一件很复杂的事情,这不仅体现在大型的场景上,如业务层面的,多机集群共 <a href="https://www.cnblogs.com/fengyc/p/14586297.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fengyc/p/14584779.html
架构反思-02-抽奖场景 - drop *
架构反思-02-抽奖场景 用抽奖场景作为第二篇,是因为抽奖场景是常见的高并发场景,同时也是在面试中考察面试者思维和逐步优化的常见题目。抽奖这件事,是有点玄乎的,它不单是一个技术问题,同时也涉及到业务优化的问题。 不过比较奇怪的是,每次面试到这类题目,面试者都是往内存缓存和 redis 的方向来找解决
2021-03-26T20:12:00Z
2021-03-26T20:12:00Z
drop *
https://www.cnblogs.com/fengyc/
【摘要】架构反思-02-抽奖场景 用抽奖场景作为第二篇,是因为抽奖场景是常见的高并发场景,同时也是在面试中考察面试者思维和逐步优化的常见题目。抽奖这件事,是有点玄乎的,它不单是一个技术问题,同时也涉及到业务优化的问题。 不过比较奇怪的是,每次面试到这类题目,面试者都是往内存缓存和 redis 的方向来找解决 <a href="https://www.cnblogs.com/fengyc/p/14584779.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fengyc/p/13665471.html
RUST 交叉编译 arm64 的浮点函数问题 - drop *
RUST 交叉编译 arm64 的浮点函数问题 最近在把一个项目迁移到支持 arm64(aarch64) 时,遇到了个 rust 编译器的问题,由于 rust 有部分函数没实现,会出现找不到符号的情况,如 ... vfprintf.c:(.text.fmt_fp+0x178): undefined
2020-09-14T02:51:00Z
2020-09-14T02:51:00Z
drop *
https://www.cnblogs.com/fengyc/
【摘要】RUST 交叉编译 arm64 的浮点函数问题 最近在把一个项目迁移到支持 arm64(aarch64) 时,遇到了个 rust 编译器的问题,由于 rust 有部分函数没实现,会出现找不到符号的情况,如 ... vfprintf.c:(.text.fmt_fp+0x178): undefined <a href="https://www.cnblogs.com/fengyc/p/13665471.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fengyc/p/13606336.html
vscode 远程开发 gradle java 项目的问题 - drop *
vscode 远程开发 gradle java 项目的问题 用 vscode 远程连接到开发服务器开发 gradle 项目时,vscode 的 gradle tasks 插件可能会遇到 java 环境变量的问题,导致无法正常刷新出 项目中的 gradle 任务。 修改方法很简单,在 vscode 的
2020-09-03T02:48:00Z
2020-09-03T02:48:00Z
drop *
https://www.cnblogs.com/fengyc/
【摘要】vscode 远程开发 gradle java 项目的问题 用 vscode 远程连接到开发服务器开发 gradle 项目时,vscode 的 gradle tasks 插件可能会遇到 java 环境变量的问题,导致无法正常刷新出 项目中的 gradle 任务。 修改方法很简单,在 vscode 的 <a href="https://www.cnblogs.com/fengyc/p/13606336.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fengyc/p/12861259.html
rust 交叉编译树莓派程序 - drop *
rust 交叉编译树莓派程序 使用 rust 写树莓派程序时,如果直接在树莓派上进行编译,速度非常慢,如果是 zero 那更加是慢到受不了。因此最好是能通过开发机编译完后,直接放到树莓派上运行。 由于开发机上的 cpu 架构、操作系统和目标机不同,开发机通常是 x86 架构,系统可以是 mac、li
2020-05-09T15:49:00Z
2020-05-09T15:49:00Z
drop *
https://www.cnblogs.com/fengyc/
【摘要】rust 交叉编译树莓派程序 使用 rust 写树莓派程序时,如果直接在树莓派上进行编译,速度非常慢,如果是 zero 那更加是慢到受不了。因此最好是能通过开发机编译完后,直接放到树莓派上运行。 由于开发机上的 cpu 架构、操作系统和目标机不同,开发机通常是 x86 架构,系统可以是 mac、li <a href="https://www.cnblogs.com/fengyc/p/12861259.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fengyc/p/12783539.html
tokio TCP 连接半关闭问题 - drop *
TCP 连接半关闭问题 在用 rust + tokio 的网络处理时,碰到一个很有意思的 tcp 连接并关闭的问题。 具体是这样的,首先一个 tcp stream 拆分(split)为 SplitSink + SplitStream 的方式,各自单独工作。 通过 SplitStream 读取到客户端
2020-04-26T15:33:00Z
2020-04-26T15:33:00Z
drop *
https://www.cnblogs.com/fengyc/
【摘要】TCP 连接半关闭问题 在用 rust + tokio 的网络处理时,碰到一个很有意思的 tcp 连接并关闭的问题。 具体是这样的,首先一个 tcp stream 拆分(split)为 SplitSink + SplitStream 的方式,各自单独工作。 通过 SplitStream 读取到客户端 <a href="https://www.cnblogs.com/fengyc/p/12783539.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fengyc/p/12660380.html
单机 kubenetes 关机后无法自动启动问题 - drop *
单机 kubenetes 关机后无法自动启动问题 在桌面版本的 Ubuntu 等安装了单机版的 k8s 后,重启后用 docker ps a 查看,会发现 k8s 的容器都没有启动。 查了一下,发现主要是因为 swap 分区在重启后自动开启了,需要把它关掉 首先,在 ,注释掉 swap 的挂载 sw
2020-04-08T07:46:00Z
2020-04-08T07:46:00Z
drop *
https://www.cnblogs.com/fengyc/
【摘要】单机 kubenetes 关机后无法自动启动问题 在桌面版本的 Ubuntu 等安装了单机版的 k8s 后,重启后用 docker ps a 查看,会发现 k8s 的容器都没有启动。 查了一下,发现主要是因为 swap 分区在重启后自动开启了,需要把它关掉 首先,在 ,注释掉 swap 的挂载 sw <a href="https://www.cnblogs.com/fengyc/p/12660380.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fengyc/p/12392977.html
ubuntu k8s 单节点快速安装 - drop *
ubuntu k8s 单节点快速安装 很早以前记录过 ubuntu 上 k8s 的单节点安装,现在更新一下 ubuntu 18.04 上 k8s 单节点的快速安装,方便参考。 安装过程 安装 docker curl fsSL https://get.docker.com | sudo sh 使用 u
2020-03-01T15:27:00Z
2020-03-01T15:27:00Z
drop *
https://www.cnblogs.com/fengyc/
【摘要】ubuntu k8s 单节点快速安装 很早以前记录过 ubuntu 上 k8s 的单节点安装,现在更新一下 ubuntu 18.04 上 k8s 单节点的快速安装,方便参考。 安装过程 安装 docker curl fsSL https://get.docker.com | sudo sh 使用 u <a href="https://www.cnblogs.com/fengyc/p/12392977.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fengyc/p/12286726.html
AKF 扩展立方体 - drop *
AKF 扩展立方体 ==================== AKF 扩展立方体(AKF Scale Cube)是一个描述从单体应用到可扩展架构的模型,见 (https://akfpartners.com/growth blog/scale cube)[https://akfpartners.com
2020-02-09T04:12:00Z
2020-02-09T04:12:00Z
drop *
https://www.cnblogs.com/fengyc/
【摘要】AKF 扩展立方体 ==================== AKF 扩展立方体(AKF Scale Cube)是一个描述从单体应用到可扩展架构的模型,见 (https://akfpartners.com/growth blog/scale cube)[https://akfpartners.com <a href="https://www.cnblogs.com/fengyc/p/12286726.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fengyc/p/12198178.html
rust 交叉编译树莓派程序 - drop *
rust 交叉编译树莓派程序 使用 rust 写树莓派程序时,如果直接在树莓派上进行编译,速度非常慢,如果是 zero 那更加是慢到受不了。因此最好是能通过开发机编译完后,直接放到树莓派上运行。 由于开发机上的 cpu 架构、操作系统和目标机不同,开发机通常是 x86 架构,系统可以是 mac、li
2020-01-15T10:27:00Z
2020-01-15T10:27:00Z
drop *
https://www.cnblogs.com/fengyc/
【摘要】rust 交叉编译树莓派程序 使用 rust 写树莓派程序时,如果直接在树莓派上进行编译,速度非常慢,如果是 zero 那更加是慢到受不了。因此最好是能通过开发机编译完后,直接放到树莓派上运行。 由于开发机上的 cpu 架构、操作系统和目标机不同,开发机通常是 x86 架构,系统可以是 mac、li <a href="https://www.cnblogs.com/fengyc/p/12198178.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fengyc/p/12175474.html
mac 声音内录方法 - drop *
mac 声音内录方法 记录下 mac 下进行声音内录的方法,可以录制微信语音等,不需要又另外用手机转录,备忘。 mac 内置的 quicktime player 已带有录音、录制视频的功能,但是录音只能选择麦克风等声音输入设备作为来源,不能直接录制系统的输出声音。现在已经有开发者做出了一个方案 "s
2020-01-10T03:57:00Z
2020-01-10T03:57:00Z
drop *
https://www.cnblogs.com/fengyc/
【摘要】mac 声音内录方法 记录下 mac 下进行声音内录的方法,可以录制微信语音等,不需要又另外用手机转录,备忘。 mac 内置的 quicktime player 已带有录音、录制视频的功能,但是录音只能选择麦克风等声音输入设备作为来源,不能直接录制系统的输出声音。现在已经有开发者做出了一个方案 "s <a href="https://www.cnblogs.com/fengyc/p/12175474.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fengyc/p/12090339.html
从 Map 到 HashMap 到 LinkedHashMap - drop *
java 从 Map 到 HashMap 到 LinkedHashMap ========================================= Map 接口 Map 是 java 容器的基础接口,提供按照 kv 方式存取数据的能力。Map 定义了一系列的操作,以及一个内部接口 Map.
2019-12-24T03:03:00Z
2019-12-24T03:03:00Z
drop *
https://www.cnblogs.com/fengyc/
【摘要】java 从 Map 到 HashMap 到 LinkedHashMap ========================================= Map 接口 Map 是 java 容器的基础接口,提供按照 kv 方式存取数据的能力。Map 定义了一系列的操作,以及一个内部接口 Map. <a href="https://www.cnblogs.com/fengyc/p/12090339.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fengyc/p/12082173.html
seata-seata 项目结构 - drop *
seata 项目结构 ============= 项目结构 seata 的代码开源在 github https://github.com/seata 。除了主代码 seata ,还有一些其它的项目,如 seata samples / website 等等。 seata 主项目使用 maven 进行管
2019-12-23T01:38:00Z
2019-12-23T01:38:00Z
drop *
https://www.cnblogs.com/fengyc/
【摘要】seata 项目结构 ============= 项目结构 seata 的代码开源在 github https://github.com/seata 。除了主代码 seata ,还有一些其它的项目,如 seata samples / website 等等。 seata 主项目使用 maven 进行管 <a href="https://www.cnblogs.com/fengyc/p/12082173.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fengyc/p/12072038.html
seata-分布式事务与seata - drop *
分布式事务与 Seata 分布式事务 分布式事务是个现实中很常见的现象,日常的跨行转账就是一个很典型的分布式事务。 现实中,每个银行各自管理各自的账户,在执行跨行转账时,需要确保转出账户扣费正确,转入账户增加正确的金额。在电子渠道上操作看着很简单,其后台需要执行分布式事务的处理流程有很多步骤,如果账
2019-12-20T03:06:00Z
2019-12-20T03:06:00Z
drop *
https://www.cnblogs.com/fengyc/
【摘要】分布式事务与 Seata 分布式事务 分布式事务是个现实中很常见的现象,日常的跨行转账就是一个很典型的分布式事务。 现实中,每个银行各自管理各自的账户,在执行跨行转账时,需要确保转出账户扣费正确,转入账户增加正确的金额。在电子渠道上操作看着很简单,其后台需要执行分布式事务的处理流程有很多步骤,如果账 <a href="https://www.cnblogs.com/fengyc/p/12072038.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fengyc/p/12035660.html
REST Richardson 成熟度模型 - drop *
REST Richardson 成熟度模型 =========================== Richardson 服务成熟度模型描述 REST 服务的规范性和发展路径的模型,他把 REST 应用划分为 4 个层次: level0 仅把 http 作为传输通道 level1 面向资源为中心 l
2019-12-13T08:03:00Z
2019-12-13T08:03:00Z
drop *
https://www.cnblogs.com/fengyc/
【摘要】REST Richardson 成熟度模型 =========================== Richardson 服务成熟度模型描述 REST 服务的规范性和发展路径的模型,他把 REST 应用划分为 4 个层次: level0 仅把 http 作为传输通道 level1 面向资源为中心 l <a href="https://www.cnblogs.com/fengyc/p/12035660.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fengyc/p/12034102.html
使用 let's encrypt 证书 - drop *
使用 let's encrypt 证书 ============================ "let's encrypt" 是个开放的 CA,提供免费的 tls 证书,旨在提高整个互联网的安全性。 let's encrypt 的自身的根证书已得到一些常见的根证书的签名,通过它颁发的 tls 证
2019-12-13T03:18:00Z
2019-12-13T03:18:00Z
drop *
https://www.cnblogs.com/fengyc/
【摘要】使用 let's encrypt 证书 ============================ "let's encrypt" 是个开放的 CA,提供免费的 tls 证书,旨在提高整个互联网的安全性。 let's encrypt 的自身的根证书已得到一些常见的根证书的签名,通过它颁发的 tls 证 <a href="https://www.cnblogs.com/fengyc/p/12034102.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fengyc/p/11735845.html
汉诺塔问题递归与非递归算法 - drop *
汉诺塔问题递归与非递归算法 ======================= 汉诺塔问题描述如下: 有 A、B、C 3 根针,n 个圆盘(从 1..n )从上到下,按小到大顺序放在 A 处,要求每次移动一个,并保持从小到大的叠放顺序, 利用 C,把 n 个盘子移动到 B 处。 递归算法 递归算法比较容
2019-10-24T16:07:00Z
2019-10-24T16:07:00Z
drop *
https://www.cnblogs.com/fengyc/
【摘要】汉诺塔问题递归与非递归算法 ======================= 汉诺塔问题描述如下: 有 A、B、C 3 根针,n 个圆盘(从 1..n )从上到下,按小到大顺序放在 A 处,要求每次移动一个,并保持从小到大的叠放顺序, 利用 C,把 n 个盘子移动到 B 处。 递归算法 递归算法比较容 <a href="https://www.cnblogs.com/fengyc/p/11735845.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/fengyc/p/11546341.html
正则表达式前瞻(?=)、后顾(?<)、负前缀(?!)、负后顾(?<!) - drop *
正则表达式前瞻(?=)、后顾(?<!) ================================================ 正则表达式前瞻、后顾这几个概念好像比较少会碰到,但是对于解决一些特定的匹配问题有非常重要的作用。 这几个概念的英文是 Lookahead and Lookbehi
2019-09-18T15:33:00Z
2019-09-18T15:33:00Z
drop *
https://www.cnblogs.com/fengyc/
【摘要】正则表达式前瞻(?=)、后顾(?<!) ================================================ 正则表达式前瞻、后顾这几个概念好像比较少会碰到,但是对于解决一些特定的匹配问题有非常重要的作用。 这几个概念的英文是 Lookahead and Lookbehi <a href="https://www.cnblogs.com/fengyc/p/11546341.html" target="_blank">阅读全文</a>