博客园 - 飞鸿影
uuid:6cbd1ba2-f883-4c34-aed1-30dde64a3a3e;id=719195
2023-11-09T02:29:00Z
飞鸿影
https://www.cnblogs.com/52fhy/
feed.cnblogs.com
https://www.cnblogs.com/52fhy/p/17789260.html
从Docker到Kubernetes - 飞鸿影
1 简介 1.1 什么是容器 传统的虚拟化技术,比如 VMWare, 目标是创建完整的虚拟机。为了运行应用,除了部署应用本身及其依赖(通常几十MB),还得安装整个操作系统(几十GB)。 如图所示,由于所有的容器共享同一个 Host OS,这使得容器在体积上要比虚拟机小很多。另外,启动容器不需要启动整
2023-10-26T06:00:00Z
2023-10-26T06:00:00Z
飞鸿影
https://www.cnblogs.com/52fhy/
【摘要】1 简介 1.1 什么是容器 传统的虚拟化技术,比如 VMWare, 目标是创建完整的虚拟机。为了运行应用,除了部署应用本身及其依赖(通常几十MB),还得安装整个操作系统(几十GB)。 如图所示,由于所有的容器共享同一个 Host OS,这使得容器在体积上要比虚拟机小很多。另外,启动容器不需要启动整 <a href="https://www.cnblogs.com/52fhy/p/17789260.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/52fhy/p/12629538.html
信息是如何表示和存储的 - 飞鸿影
信息存储 二进制与十六进制 计算机内所有的信息均以二进制的形式表示,也就是由值0和值1组成的序列。大多数计算机使用8位的块作为最小的可寻址单位,也就是常说的字节(Byte)。 一个字节包含8比特。1Byte = 8bit ,1KB = 1024Byte 。 二进制表示法比较冗长,我们一般使用十六进制
2021-10-13T00:43:00Z
2021-10-13T00:43:00Z
飞鸿影
https://www.cnblogs.com/52fhy/
【摘要】信息存储 二进制与十六进制 计算机内所有的信息均以二进制的形式表示,也就是由值0和值1组成的序列。大多数计算机使用8位的块作为最小的可寻址单位,也就是常说的字节(Byte)。 一个字节包含8比特。1Byte = 8bit ,1KB = 1024Byte 。 二进制表示法比较冗长,我们一般使用十六进制 <a href="https://www.cnblogs.com/52fhy/p/12629538.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/52fhy/p/15158765.html
使用msys2打造优雅的开发环境 - 飞鸿影
windows下常用的类似unix终端软件有git fow windows(内置简版msys2)、mingw、msys2、cgwin。 git fow windows: 不想折腾的同学,直接使用该软件就够用了。缺点是自带的预编译的软件包比较少。 mingw: 打包了gcc等编译器,默认没有git,自
2021-08-18T12:50:00Z
2021-08-18T12:50:00Z
飞鸿影
https://www.cnblogs.com/52fhy/
【摘要】windows下常用的类似unix终端软件有git fow windows(内置简版msys2)、mingw、msys2、cgwin。 git fow windows: 不想折腾的同学,直接使用该软件就够用了。缺点是自带的预编译的软件包比较少。 mingw: 打包了gcc等编译器,默认没有git,自 <a href="https://www.cnblogs.com/52fhy/p/15158765.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/52fhy/p/13195418.html
Iptables教程 - 飞鸿影
iptables 是一个配置 Linux 内核 防火墙 的命令行工具。 初学者刚看到iptables,会感到很复杂,原因是 iptables 功能实在是太强大了。本文会从基本概念、使用上做介绍,读者看完后再去看 iptables 命令就能理解其含义了。 本文环境: PC: Ubuntu18 ipta
2020-06-26T09:23:00Z
2020-06-26T09:23:00Z
飞鸿影
https://www.cnblogs.com/52fhy/
【摘要】iptables 是一个配置 Linux 内核 防火墙 的命令行工具。 初学者刚看到iptables,会感到很复杂,原因是 iptables 功能实在是太强大了。本文会从基本概念、使用上做介绍,读者看完后再去看 iptables 命令就能理解其含义了。 本文环境: PC: Ubuntu18 ipta <a href="https://www.cnblogs.com/52fhy/p/13195418.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/52fhy/p/12547521.html
Centos6安装gcc4.8及以上版本 - 飞鸿影
很多场景我们编译C源码,都需要使用gcc4.8及以上版本,比如编译MySQL 8.0、GRPC等,原因是需要支持 。但 其内置版本是gcc4.4。 使用 可以查看版本。 源码编译 常规升级办法是: 1、下载gcc新版本; 2、编译。 但gcc编译起来真的是非常非常的慢,而且特别耗资源,编译到后面选择
2020-03-22T10:28:00Z
2020-03-22T10:28:00Z
飞鸿影
https://www.cnblogs.com/52fhy/
【摘要】很多场景我们编译C源码,都需要使用gcc4.8及以上版本,比如编译MySQL 8.0、GRPC等,原因是需要支持 。但 其内置版本是gcc4.4。 使用 可以查看版本。 源码编译 常规升级办法是: 1、下载gcc新版本; 2、编译。 但gcc编译起来真的是非常非常的慢,而且特别耗资源,编译到后面选择 <a href="https://www.cnblogs.com/52fhy/p/12547521.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/52fhy/p/12524372.html
pyenv设置python多版本环境 - 飞鸿影
安装 快捷安装 源码安装 注意: Zsh:修改 文件而不是 。 Ubuntu、Fedora:修改 文件而不是 。 使用 安装需要的python版本: 一般有一个2.7,一个3.8就够了。 如果不确定哪些版本支持,可以查看pyenv支持安装的Python版本有哪些: 使用指定版本Python: 使用
2020-03-19T13:46:00Z
2020-03-19T13:46:00Z
飞鸿影
https://www.cnblogs.com/52fhy/
【摘要】安装 快捷安装 源码安装 注意: Zsh:修改 文件而不是 。 Ubuntu、Fedora:修改 文件而不是 。 使用 安装需要的python版本: 一般有一个2.7,一个3.8就够了。 如果不确定哪些版本支持,可以查看pyenv支持安装的Python版本有哪些: 使用指定版本Python: 使用 <a href="https://www.cnblogs.com/52fhy/p/12524372.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/52fhy/p/12404698.html
Redis慢日志 - 飞鸿影
简介 慢日志 (Slow log) 是 Redis 用来记录命令 执行时间 的日志系统。例如线上Redis突然出现堵塞,使用该命令可以查询Redis服务器耗时的命令列表,快速定位问题。 由于慢日志是存储于内存的,读写速度非常快,不用担心因为使用慢日志而造成性能问题。 可用版本: = 2.2.12 时
2020-03-03T13:22:00Z
2020-03-03T13:22:00Z
飞鸿影
https://www.cnblogs.com/52fhy/
【摘要】简介 慢日志 (Slow log) 是 Redis 用来记录命令 执行时间 的日志系统。例如线上Redis突然出现堵塞,使用该命令可以查询Redis服务器耗时的命令列表,快速定位问题。 由于慢日志是存储于内存的,读写速度非常快,不用担心因为使用慢日志而造成性能问题。 可用版本: = 2.2.12 时 <a href="https://www.cnblogs.com/52fhy/p/12404698.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/52fhy/p/12398192.html
PHP-CPP开发扩展(七) - 飞鸿影
PHP-CPP是一个用于开发PHP扩展的C++库。本节讲解一些杂项。 读取php.ini配置 从php.ini文件中读取设置就像从常规PHP脚本中获取这些设置一样简单。在PHP脚本中,我们可以使用内置的ini_get()函数从php.ini文件中读取设置,在C++扩展中使用Php::ini_get(
2020-03-02T13:33:00Z
2020-03-02T13:33:00Z
飞鸿影
https://www.cnblogs.com/52fhy/
【摘要】PHP-CPP是一个用于开发PHP扩展的C++库。本节讲解一些杂项。 读取php.ini配置 从php.ini文件中读取设置就像从常规PHP脚本中获取这些设置一样简单。在PHP脚本中,我们可以使用内置的ini_get()函数从php.ini文件中读取设置,在C++扩展中使用Php::ini_get( <a href="https://www.cnblogs.com/52fhy/p/12398192.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/52fhy/p/11031191.html
C语言笔记 - 飞鸿影
IDE推荐 1、编译器仅使用GCC即可,IDE使用 、`Vim`都可以。这样的好处是,能学到GCC命令行的一些用法,而不是只知道点一下按钮就运行了。 2、使用提示功能很强大的Clion、VS Studio、Xcode、Eclipse等IDE,编译的时候使用GCC命令行,尤其是初学的时候。 不建议使用
2020-03-01T12:20:00Z
2020-03-01T12:20:00Z
飞鸿影
https://www.cnblogs.com/52fhy/
【摘要】IDE推荐 1、编译器仅使用GCC即可,IDE使用 、`Vim`都可以。这样的好处是,能学到GCC命令行的一些用法,而不是只知道点一下按钮就运行了。 2、使用提示功能很强大的Clion、VS Studio、Xcode、Eclipse等IDE,编译的时候使用GCC命令行,尤其是初学的时候。 不建议使用 <a href="https://www.cnblogs.com/52fhy/p/11031191.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/52fhy/p/10618177.html
奇妙程序员 - 飞鸿影
一些好玩的程序~
2020-02-28T14:17:00Z
2020-02-28T14:17:00Z
飞鸿影
https://www.cnblogs.com/52fhy/
【摘要】一些好玩的程序~ <a href="https://www.cnblogs.com/52fhy/p/10618177.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/52fhy/p/12376940.html
GRPC调试工具 - 飞鸿影
`grpcurl` 和 `grpcui` 都是调试`grpc`的利器,前者用于命令行,类似`curl`工具;后者是以`web`的形式进行调试的,类似`postman`工具。
有了这两款工具,我们不用写任何客户端代码,也能方便的调试接口数据。
2020-02-28T14:11:00Z
2020-02-28T14:11:00Z
飞鸿影
https://www.cnblogs.com/52fhy/
【摘要】`grpcurl` 和 `grpcui` 都是调试`grpc`的利器,前者用于命令行,类似`curl`工具;后者是以`web`的形式进行调试的,类似`postman`工具。
有了这两款工具,我们不用写任何客户端代码,也能方便的调试接口数据。 <a href="https://www.cnblogs.com/52fhy/p/12376940.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/52fhy/p/11830755.html
Golang的json包 - 飞鸿影
本文对常见的json包做一些介绍,方便快速入门。每一小节均有示例说明。大家在实际开发中可以选择适合自己的json包。 encoding/json 是官方提供的标准json, 实现 "RFC 7159中" 定义的JSON编码和解码。使用的时候需要预定义 ,原理是通过 和`interface`来完成工作
2019-11-10T08:32:00Z
2019-11-10T08:32:00Z
飞鸿影
https://www.cnblogs.com/52fhy/
【摘要】本文对常见的json包做一些介绍,方便快速入门。每一小节均有示例说明。大家在实际开发中可以选择适合自己的json包。 encoding/json 是官方提供的标准json, 实现 "RFC 7159中" 定义的JSON编码和解码。使用的时候需要预定义 ,原理是通过 和`interface`来完成工作 <a href="https://www.cnblogs.com/52fhy/p/11830755.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/52fhy/p/11828448.html
Go服务监控 - 飞鸿影
使用Golang可以开发出高性能的HTTP、GRPC服务。一般项目运行后,我们也需要监控服务的性能或者进行调试。除了打日志,还有没有其他可视化的方案呢?答案是有的。 本文将会介绍几种常用的监控方案。 pprof 这个是go语言自带的。启用很简单: 仅需显式的在 main 包的 import 里增加上
2019-11-09T15:14:00Z
2019-11-09T15:14:00Z
飞鸿影
https://www.cnblogs.com/52fhy/
【摘要】使用Golang可以开发出高性能的HTTP、GRPC服务。一般项目运行后,我们也需要监控服务的性能或者进行调试。除了打日志,还有没有其他可视化的方案呢?答案是有的。 本文将会介绍几种常用的监控方案。 pprof 这个是go语言自带的。启用很简单: 仅需显式的在 main 包的 import 里增加上 <a href="https://www.cnblogs.com/52fhy/p/11828448.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/52fhy/p/11743413.html
Twitter-Snowflake:自增ID算法 - 飞鸿影
简介 Twitter 早期用 MySQL 存储数据,随着用户的增长,单一的 MySQL 实例没法承受海量的数据,后来团队就研究如何产生完美的自增ID,以满足两个基本的要求: 每秒能生成几十万条 ID 用于标识不同的 记录; 这些 ID 应该可以有个大致的顺序,也就是说发布时间相近的两条记录,它们的
2019-10-26T07:44:00Z
2019-10-26T07:44:00Z
飞鸿影
https://www.cnblogs.com/52fhy/
【摘要】简介 Twitter 早期用 MySQL 存储数据,随着用户的增长,单一的 MySQL 实例没法承受海量的数据,后来团队就研究如何产生完美的自增ID,以满足两个基本的要求: 每秒能生成几十万条 ID 用于标识不同的 记录; 这些 ID 应该可以有个大致的顺序,也就是说发布时间相近的两条记录,它们的 <a href="https://www.cnblogs.com/52fhy/p/11743413.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/52fhy/p/11369028.html
理解Go协程与并发 - 飞鸿影
关于Go语言协程、通道、并发锁的总结。
2019-08-17T08:10:00Z
2019-08-17T08:10:00Z
飞鸿影
https://www.cnblogs.com/52fhy/
【摘要】关于Go语言协程、通道、并发锁的总结。 <a href="https://www.cnblogs.com/52fhy/p/11369028.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/52fhy/p/11366856.html
如何高效睡眠 - 飞鸿影
程序猿,为了自己的身体,学学怎么高效睡眠也是好的。
2019-08-16T15:28:00Z
2019-08-16T15:28:00Z
飞鸿影
https://www.cnblogs.com/52fhy/
【摘要】程序猿,为了自己的身体,学学怎么高效睡眠也是好的。 <a href="https://www.cnblogs.com/52fhy/p/11366856.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/52fhy/p/11185895.html
基于hprose-golang创建RPC微服务 - 飞鸿影
(High Performance Remote Object Service Engine) 是一款先进的轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用引擎库。它不仅简单易用,而且功能强大。 官网:https://hprose.com/ 本文将讲解如何使用 go 服务端编写一个微服务,并
2019-08-12T00:04:00Z
2019-08-12T00:04:00Z
飞鸿影
https://www.cnblogs.com/52fhy/
【摘要】(High Performance Remote Object Service Engine) 是一款先进的轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用引擎库。它不仅简单易用,而且功能强大。 官网:https://hprose.com/ 本文将讲解如何使用 go 服务端编写一个微服务,并 <a href="https://www.cnblogs.com/52fhy/p/11185895.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/52fhy/p/11295095.html
Go如何使用数据库、缓存 - 飞鸿影
database/sql 接口 Go官方没有提供数据库驱动,而是为开发数据库驱动定义了一些标准接口 ,开发者可以根据定义的接口来开发相应的数据库驱动,这样做有一个好处,只要是按照标准接口开发的代码, 以后需要迁移数据库时,不需要任何修改。 MySQL 常用的有如下几种: https://github
2019-08-03T07:54:00Z
2019-08-03T07:54:00Z
飞鸿影
https://www.cnblogs.com/52fhy/
【摘要】database/sql 接口 Go官方没有提供数据库驱动,而是为开发数据库驱动定义了一些标准接口 ,开发者可以根据定义的接口来开发相应的数据库驱动,这样做有一个好处,只要是按照标准接口开发的代码, 以后需要迁移数据库时,不需要任何修改。 MySQL 常用的有如下几种: https://github <a href="https://www.cnblogs.com/52fhy/p/11295095.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/52fhy/p/11295090.html
Go内置常用包 - 飞鸿影
strings 字符串函数 字符串s是否包含字符串substr,包含返回true 将字符串s按照分隔符sep分隔为slice 字符串拼接,把slice a通过sep链接起 在s字符串的头部和尾部去除cutset指定的字符串 在s字符串中,把old字符串替换为new字符串,n表示替换的次数,小于0表示
2019-08-03T07:52:00Z
2019-08-03T07:52:00Z
飞鸿影
https://www.cnblogs.com/52fhy/
【摘要】strings 字符串函数 字符串s是否包含字符串substr,包含返回true 将字符串s按照分隔符sep分隔为slice 字符串拼接,把slice a通过sep链接起 在s字符串的头部和尾部去除cutset指定的字符串 在s字符串中,把old字符串替换为new字符串,n表示替换的次数,小于0表示 <a href="https://www.cnblogs.com/52fhy/p/11295090.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/52fhy/p/11146047.html
从零开始基于go-thrift创建一个RPC服务 - 飞鸿影
Thrift 是一种被广泛使用的 rpc 框架,可以比较灵活的定义数据结构和函数输入输出参数,并且可以跨语言调用。为了保证服务接口的统一性和可维护性,我们需要在最开始就制定一系列规范并严格遵守,降低后续维护成本。 Thrift开发流程是:先定义IDL,使用thrift工具生成目标语言接口( )代码,
2019-07-13T08:40:00Z
2019-07-13T08:40:00Z
飞鸿影
https://www.cnblogs.com/52fhy/
【摘要】Thrift 是一种被广泛使用的 rpc 框架,可以比较灵活的定义数据结构和函数输入输出参数,并且可以跨语言调用。为了保证服务接口的统一性和可维护性,我们需要在最开始就制定一系列规范并严格遵守,降低后续维护成本。 Thrift开发流程是:先定义IDL,使用thrift工具生成目标语言接口( )代码, <a href="https://www.cnblogs.com/52fhy/p/11146047.html" target="_blank">阅读全文</a>