202004-18 使用Swoole协程一键代理PHP-FPM服务 HOT 在Swoole最新发布的v4.5(RC)版本中,我们实现了一项非常有意思的新特性,那就是协程版本的FastCGI客户端。 那么什么是FastCGI呢?首先先来一个官方解释:快速通用网关接口是一种让交互程序与Web服务器通信的协议。 继续阅读 >
202004-17 Go语言 Yaml编码和解码 HOT YAML Ain’t Markup Language,一种非常简洁的非标记语言,可以快速的对Yaml进行编码和解码。 官网地址:https://gopkg.in/yaml.v2 GoDoc:https://godoc.org/gopkg.in/yaml.v2 继续阅读 >
202004-17 RPC系列之基本概念及go语言使用实现 HOT 远程过程调用(Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方法调用。 继续阅读 >
202004-17 WebAssembly增加Go语言绑定 HOT 为提供更好的跨平台支持,WebAssembly 正在积极推动其在本地桌面端的进展。与此同时,Wasmtime(WebAssembly runtime)近期为它增加了 Go 绑定功能,这意味着开发者可直接在 Go 应用程序中调用 WebAssembly 模块。 继续阅读 >
202004-17 吐血整理的GO语言部分框架、库必学清单! HOT 作为一款网红编程语言,Go语言还十分年轻,很多程序员无法及时了解到Go语言的框架、库和软件应用。近日,Github用户avelino分享了一张非常完整且庞大的表单,包括命令行、数据库、Web框架、机器学习、自然语言处理......以下是部分内容截取,感谢分享。 继续阅读 >
202004-17 Go语言如何实现stop the world? HOT 本文基于 Go 1.13。 在某些垃圾回收器算法中,“停止世界”(Stop the World: STW,下同)是跟踪内存使用最重要的阶段,它会停止程序的执行,以扫描内存使用,并添加写障碍。让我们回顾一下它在内部如何工作,以及它可能面临的潜在问题。 继续阅读 >
202004-17 关于 Go 语言优秀命令行库 Cobra 的探索 HOT Cobra 是 Golang 生态系统中最着名的项目之一。它简单,高效,并得到 Go 社区的大力支持。让我们来深入探索一下。 继续阅读 >
202004-16 Go监控模式(Monitor Pattern) HOT Go 能实现监控模式[1],归功于 sync 包和 sync.Cond 结构体。监控模式允许 goroutine 在进入睡眠模式前等待一个定特定条件,而不会阻塞执行或消耗资源。 继续阅读 >
202004-16 mysql误删数据快速恢复 HOT 相信后端研发的同学在开发过程经常会遇到产品临时修改线上数据的需求,如果手法很稳那么很庆幸可以很快完成任务,很不幸某一天突然手一抖把表里的数据修改错误或者误删了,这个时候你会发现各种问题反馈接踵而来。如果身边有BDA或者有这方面经验的同事那么可以很快解决这个问题,如果没有那么希望这篇文章可以帮到你。 继续阅读 >
202004-16 php长连接和短连接简要区别 HOT 浏览器client发起并建立TCP连接 -> client发送HttpRequest报文 -> server接收到报文->server handle并发送HttpResponse报文给前端,发送完毕之后立即调用socket.close方法->client接收response报文->client最终会收到server端断开TCP连接的信号->client 端断开TCP连接。 继续阅读 >
202004-16 mysql的事务隔离和幻读和死锁问题 HOT 系统要通过严格的ACID测试,ACID表示原子性/一致性/隔离性/持久性①原子性:一个事务必须被视为一个不可分割的最小工作单元②一致性:数据库总是从一个一致性的状态转换到另外一个一致性的状态③隔离性:通常来说一个事务所做的修改在最终提交以前对其他事务是不可见的 继续阅读 >
202004-15 Go的Channel很强大,理解其内在概念会让它更强大 HOT Go 中的通道(channel)机制十分强大,但是理解内在的概念甚至可以使它更强大。实际上,选择缓冲通道或无缓冲通道将改变应用程序的行为和性能。 继续阅读 >
202004-15 Go刷LeetCode系列:二叉树(3)二叉树路径和 HOT 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 继续阅读 >
202004-15 为什么 Go 语言设计时没有泛型? HOT Go 是一门语法元素少、设计简单的编程语言,简单的设计往往意味着较弱的表达能力,工程师也需要使用更多时间编写重复的逻辑。Go 语言从发布到今天已经过去了 10 多年,向 Go 语言添加泛型的讨论也从 2010 年一直持续到今天。 继续阅读 >
202004-15 Go的泛型真的要来了—如何使用以及它们是怎么工作的 HOT 你没看错,这里讲的就是 Go 中的泛型。只不过还没有正式发布,是基于草案设计的,已经是实现了可运行的版本。所以,泛型到来真的不远了! Go 中的泛型已经接近成为现实。本文讲述的是泛型的最新设计,以及如何自己尝试泛型。 继续阅读 >
202004-13 php随机生成验证图片 HOT 为了防止用户利用机器人自动注册、登录、灌水,现在的网站一般都采用了验证码技术,就是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。 继续阅读 >
202004-13 负载均衡、分布式、集群理解以及多台服务器代码如何同步 HOT 我们的项目如果跑在一台机器上,如果这台机器出现故障的话,或者用户请求量比较高,一台机器支撑不住的话。我们的网站可能就访问不了。 那怎么解决呢? 继续阅读 >
202004-13 面试题:如何保证缓存与数据库的双写一致性? HOT 只要用缓存,就可能会涉及到缓存与数据库双存储双写。 你只要是双写,就一定会有数据一致性的问题。 那么你如何解决一致性问题? 继续阅读 >
202004-13 Kafka生产者的客户端(PHP)开发 HOT 虽然 Kafka 是用 Java/Scala 语言编写的,但这不妨碍它对多语言的支持。可以在 Kafka 官网的查看 Kafka 支持的语言,其中包括 C/C++、Python、Go 等语言。 继续阅读 >
202004-13 Go新手容易犯的三个致命错误,你中招了吗? HOT 最近因为以前一些重要且古老的go项目基本没有人专职维护了,所以被安排去熟悉这些项目的代码,所以看了大量go的代码。历史原因,这些代码中或多或少有一些刚刚从PHPer转过来的Gopher去设计和开发的,自然有不少是在php(fpm模式下)码代码思路下埋藏的一些坑。今天我就来和大家一起分享一下最近发现的出现比率比较高的三个致命错误。 继续阅读 >
202004-11 这可能是搭建Zookeeper集群介绍最全的文章 HOT Docker方式不太建议,要考虑的东西比较多,如果要用Docker方式还是比较建议自建镜像,假如是Docker专家可以忽略本句。 以下介绍的都是Linux服务器下搭建(Winserver服务器的也是雷同)先操作单机,再copy到其他机器。下载完Zookeeper(下称zk)后,进入zk解压目录下的conf文件夹,zoo_sample.cfg是zk的配置文件实例,Copy一个出来命名为zoo.cfg zk默认会读这个配置。 继续阅读 >