在开发的时候,时常会遇到去重或者校验是否存在的需求,在 Java 中当数据量小的时候可以直接使用 Set 集合进行去重或者校验存在,但数据量逐渐变大的时候使用这种去重策略可能会导致内存溢出的问题,可以根据数据的特性决定是否使用 Bitmap 解决相关需求。
Zookeeper Cluster
Zookeeper 提供单机和集群两种搭建方式,在生产环境中通常使用集群部署的方式来提高可用性。其作为分布式协调服务,应保持数据的一致性。
Zookeeper 集群是一个 CP(一致性+分区容错性)的分布式系统,任何时刻对正常工作的 Zookeeper 集群的任意节点发起的请求都尽量得到一致的数据结果,对于Zookeeper的操作是原子性的,只有成功和失败,不存在只产生部分结果的情况。
Zookeeper ACL 权限控制
Zookeeper ACL 权限可以对指定的节点设置相关的操作权限,保障数据的安全性。
Zookeeper ZNode
ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务。ZooKeeper 由不同分层的命名空间组成,命名空间与文件系统的目录非常相似,命名空间的数据存储的节点在 Zookeeper 中称为ZNode。
每个ZNode都有唯一的命名空间,如 /test1
和 /test2
是两个不同的节点,节点中存储了数据以及其自身的状态信息(如zxID、ACL访问控制、版本号、子节点等信息)。每一个节点都可以拥有子节点,子节点也是属于不同的节点,如 /test1
和 /test1/follow
也是不同的节点,但上级节点删除时可以递归删除子节点。
HTTP 状态码与重定向
从微信公众号跳转微信小程序时,如果传入的参数过长会导致填写“小程序路径”选项无法填写,这时需要实现类似“短链接”的功能,让前端获取保存的信息、解析、重定向到目的页。
这个需求与短链接中心有很大的相似之处,除微信小程序之外的 Web 应用也可以使用,只要在生成短链接时传入是否需要重定向的参数即可。需要注意由于 HTTP 标准和浏览器的历史设计的原因,重定向使用的 HTTP 状态码需要酌情选择。
PhpSpreadsheet 的一些使用方法
PhpSpreadsheet 是一个遵循最新 PSR 标准、完全使用 PHP 编写的用于处理 Excel 表格的第三方库,其前身是 PHPExcel,但 PHPExcel 由于历史技术债的问题被放弃维护。本文基于 PHP 7.4 和 PhpSpreadsheet 1.16.0 的官方文档选取翻译介绍部分使用方法。