排查 ES 查询问题:深入了解 json_encode() 函数

在使用 Elasticsearch 时,有时候会需要通过某个字段批量查询数据,比如通过用户 ID 批量获取用户信息,DSL 语句如下: { "query": { "bool": { "must": [ { "terms": { "user_id": ["123", "456"] } } ] } } } 在 PHP 中,通常会使用数组来构造 DSL 语句,然后调用 json_encode() 函数将数组转成 JSON 字符串。 ...

2022-06-02 · 3 分钟 · 1459 字 · PHP

浅析 Redlock 分布式锁实现原理

前言 不知不觉中,这篇文章在我的草稿箱已经躺了半年多了。 起初写这篇文章是准备做一次技术分享,后来因为一些原因将分享的主题换成了什么是惊群问题 ,这篇文章也就一直在草稿箱躺到了现在。 ...

Yar 源码阅读笔记:RPC 服务端

前言 在前面的文章中介绍了 Yar 客户端以及相关模块的实现,弄清楚了客户端的远程调用是如何发送出去的、发送的内容是什么、以及如何处理响应结果。 今天我们就来看看 Yar 服务端是如何处理客户端请求的。 ...

Yar 源码阅读笔记:客户端的并行调用

前言 在上一篇文章中,介绍了客户端同步调用的具体实现的,主要还是通过调用传输模块的相关函数,完成发送和接收远程调用的数据。 在调用多个远程方法时,同步调用是以串行的方式执行的,导致运行效率比较低,所以需要使用并行调用来提高调用多个远程方法的运行效率,减少整体运行的时间。 ...

Yar 源码阅读笔记:客户端的同步调用

前言 今天这篇文章,主要介绍 Yar 客户端是如何实现远程调用的,进一步了解各个模块在远程调用的过程中都做了些什么。 客户端介绍 Yar 客户端的远程调用分为同步调用和并行调用,同步调用是指调用多个远程方法时,必须按照调用顺序一个个地执行,上一个调用没有执行完时,后面的调用必须等待前面的执行完毕,这期间啥也不能干,效率比较低。 ...