202004-07 数据库性能提升利器—Mycat数据切分 HOT 数据库是每个系统都不可缺少的东西,里面记录了系统各种数据资料。但是如今的数据膨胀的时代,数据库性能不能满足我们的需要了。所以我们要对数据库进行强化,就用到了Mycat。 继续阅读 >
202004-06 MySQL5.7特性:JSON数据类型 HOT MySQL5.7的发行声明中,官方称之为里程碑式的版本,除了运行速度大幅度提升之外,还添加了之前版本没有的功能,如本文所述的原生JSON数据类型功能。 在此版本之前,MySQL所有的JSON数据类型,全部是使用text等文本类型来实现的,数据的处理只能在应用代码级来实现,十分不方便。 继续阅读 >
202004-02 nginx与php-fpm通信的两种方式 HOT 在linux中,nginx服务器和php-fpm可以通过tcp socket和unix socket两种方式实现。 unix socket是一种终端,可以使同一台操作系统上的两个或多个进程进行数据通信。这种方式需要再nginx配置文件中填写php-fpm的pid文件位置,效率要比tcp socket高。 tcp socket的优点是可以跨服务器,当nginx和php-fpm不在同一台机器上时,只能使用这种方式。 windows系统只能使用tcp socket的通信方式 继续阅读 >
202003-24 MySQL进阶——主从复制 HOT 主从复制的配置,大部分都在主机上,注意查看相关步骤。 这里将主从机的防火墙都关闭是为了更好的演示,实际生产环境中一般不会出现windows主机和linux从机这种情况,因此不应该关闭防火墙,而是根据具体情况配置防火墙规则。 继续阅读 >
202003-23 mysql性能分析-------profiling和explain HOT MySQL5.0.37版本以上支持了Profiling – 官方手册。此工具可用来查询 SQL 会执行多少时间,System lock和Table lock 花多少时间等等,对定位一条语句的 I/O消耗和CPU消耗 非常重要。 继续阅读 >
202003-19 MySQL索引优化 HOT MySQL官方对索引的定义:索引是帮助MySQL高效获取数据的数据结构。索引是在存储引擎中实现的,所以每种存储引擎中的索引都不一样。如MYISAM和InnoDB存储引擎只支持BTree索引;MEMORY和HEAP储存引擎可以支持HASH和BTREE索引。 继续阅读 >
202003-19 Mysql复制方式(半同步复制,并行复制,多源复制) HOT 在每次准备提交事务完成数据更新前,主库将数据更新的事件记录到二进制日志binlog中。主库上的sync_binlog参数控制binlog日志刷新到磁盘。 继续阅读 >
202003-16 Go1.14 的这个改进让 Gopher 生活更美好 HOT testing 包是 Go 标准库中我最喜欢的程序包之一,不仅是它具有低干扰的单元测试方法,而且在 Go 的整个生命周期中,它可以改善、提高生活质量 ^_^。 在 Go1.14 中,go test -v 将使 t.Log 的输出变成流式,而不是在测试运行结束之前进行存储,最后一起输出。 继续阅读 >
202003-14 解析和提交 HTML 表单的库:gosubmit HOT 项目地址:https://github.com/jeremija/gosubmit,发布刚半个月。该库帮助在测试过程中填写纯HTML表单。将自动从表单中获取现有值,因此无需手动设置诸如csrf令牌之类的东西。在缺少必填字段或模式验证不匹配时发出警报。支持的表单元素input[type=checkbox]input[type=date]input[type=email]input[type=hidden]input[type=number]input[type=radio]input[type=text]input[type=url]t... 继续阅读 >
202003-14 用面向对象设计原则理解 Go 中 interface HOT 1、interface是方法声明的集合 2、任何类型的对象实现了在interface接口中声明的全部方法,则表明该类型实现了接口。 3、interface可以作为一种数据类型,实现了该接口的任何对象都可以给对应的接口类型变量赋值。 继续阅读 >
202003-14 Micro In Action(二):项目结构与启动过程 HOT 本文是 Micro in Action 系列的第二篇文章, 我们作了几件事: 介绍了上篇文章所创建的项目结构, 说明每一个文件的用途。 对照源码逐行分析一个 Micro 服务的启动过程。 考虑到 Micro 文档的缺失, 本文完整介绍了创建 Micro 服务所支持的全部 Option 最后用 micro web 查看了服务的运行时状态 继续阅读 >
202003-13 神奇了!这个 Go 项目让前端构建快了近 100 倍 HOT 这是作者 2019-2020 年寒假期间写的一项业余爱好项目。我相信它是相对完整和实用的。但是,它是全新的代码,可能有很多错误。还没有任何人在生产中使用过它。合并运算符。 此外,官方还给了如何和 React 配合使用。 目前,该项目在 Github 上已收获 3400+ Star,并有 51 个 fork。近期增长很快,总在 GitHub 趋势榜。 继续阅读 >
202003-13 官方博文:使用 Go Cloud 的 Wire 进行编译时依赖注入 HOT Go 团队公布了用于开放云开发的可移植云 API 和工具,开源项目Go Cloud 。这篇文章详细介绍了 Wire,一个随 Go Cloud 提供的依赖注入工具。 继续阅读 >
202003-13 map 并发崩溃一例:顺便吐槽 Go 打印堆栈不友好 HOT 如若在实践中碰到了类似的 bug,只能好好读代码,别无他法,甩锅给离职员工是解决不了问题的。 如果你手边的代码抽象程度比较高,比如函数的参数都是一些 interface,由运行期来决定,那可能要定位这种 bug 就更费劲一些。 继续阅读 >
202003-10 图解kubernetes容器探活机制核心实现 HOT 在k8s中通过kubelet拉起一个容器之后,用户可以指定探活的方式用于实现容器的健康性检查,目前支持TCP、Http和命令三种方式,今天介绍其整个探活模块的实现, 了解其周期性探测、计数器、延迟等设计的具体实现 继续阅读 >
202003-09 一文看懂 K8s 日志系统设计和实践 HOT 上一篇文章《6 个 K8s 日志系统建设中的典型问题,你遇到过几个?》中我们介绍了为什么需要一个日志系统、为什么云原生下的日志系统如此重要以及云原生背景下日志系统的建设难点,相信 DevOps、SRE、运维等同学看了之后深有体会。本篇文章单刀直入,会直接跟大家分享一下如何在云原生的场景下搭建一个灵活、功能强大、可靠、可扩容的日志系统。 继续阅读 >
202003-09 Go Modules 处理私有 Git Repository 的流程 HOT Golang[1] 在 1.14[2] 正式說明可以將 Go Modules[3] 用在正式環境上了,還沒換上 Go Modules 的團隊,現在可以開始轉換了,轉換方式也相當容易啦,只要在原本的專案底下執行底下指令,就可以無痛轉移 继续阅读 >
202003-09 深度解密Go语言之unsafe HOT uintptr 可以和 unsafe.Pointer 进行相互转换,uintptr 可以进行数学运算。这样,通过 uintptr 和 unsafe.Pointer 的结合就解决了 Go 指针不能进行数学运算的限制。 通过 unsafe 相关函数,可以获取结构体私有成员的地址,进而对其做进一步的读写操作,突破 Go 的类型安全限制。关于 unsafe 包,我们更多关注它的用法。 继续阅读 >
202003-09 换个角度看:Go里的unsafe包是什么? HOT 总结下, unsafe包是非常有意思并且很强大的,但是使用它时候一定要多加小心。如果需要更新包的特性,可以参考这里的升级指南 继续阅读 >
202003-07 又一个Go绘图和可视化库:plot HOT 前两天介绍了一款 Go 语言绘图工具:go-chart。今天发现了另外一款类似的工具,但更强大。不过还没发布稳定版。 项目地址:https://github.com/gonum/plot,Star 数 1.4k 继续阅读 >