一篇不是技术的文章,记录下自己对软件研发中的信任链的思考。
也是最近看一篇监控哲学的文章和参加一场技术复盘讨论有感,这场复盘会笔者听下来觉得最大的问题就是软件研发中的信任链导致的。
什么是中台
一篇不是技术的文章,记录下自己对技术中台的思考和预言。
阐述下什么是中台,谁有资格定义中台。
正确理解一致性哈希
intro1:正确地理解一致性哈希
intro2: 介绍几种其他优质一致性哈希算法
intro3: Redis Sentinel和Cluster
之前写过几篇哈希函数的blog,本文继续对一致性哈希(Consistent Hashing,本文简称CoH)部分作进一步补充,讨论下CoH的作用,以及其他一致性哈希实现。
阅读本文前可先阅读下 Consistent Hashing: Algorithmic Tradeoffs,需FQ,原文概要介绍了Consistent Hashing、Jump Hash、Multi-Probe Consistent Hashing(MPCH)、Rendezvous Hashing、、Maglev Hashing等几种一致性哈希方式,本文主要从实用角度探讨下一致性哈希实现,同时讨论下不同于原文的几点思考。
如何设计高性能支持64位的去重服务
intro1:如何设计一个百万QPS的基于用户uid唯一性检验的系统?
intro2: bloomfilter和bitmap和roaringbitmap选型比较
intro3: setbit注意事项
设计要点
这个问题或许会被经常问到,比如抢红包或者秒杀等场景时,限制用户只能领取/抢购一次,也是笔者可能会遇到类似问题,这里有两个关键点:
开发常见的Hash函数(四)-图片哈希
intro1:JPG文件生成/压缩原理
intro2: 对离散余弦变换在图片压缩应用的思考
intro3: JPG文件存储格式
intro4: aHash/dHash/pHash原理及源码介绍
intro5: 对aHash/dHash/pHash准确度、局限、场景等思考
前一篇文章介绍Simhash/Minhash等,下面来看下之前留下的图片的相似性度量算法:ahash、dHash、pHash,在笔者经历的图片/PDf上传的经历中,上述方法效果不错。
本文主要以JPEG格式为例探索下图像几种哈希算法,不过图像的处理并非本文要介绍重点,只是为了方便下文理解,如果你只对怎么寻找近似图片感兴趣或看这里感到不适,可以跳过本节。
开发常见的Hash函数(三)-Minhash_Simhash
intro1:文本相似相关的hash方法
intro2: LSH、Minhash、Simhash
intro3: 基于代码理解minhash/simhash
记录笔者的一些思考,在理解minhash、python minhash源码过程中有不理解或有些搜索不到的,或许在这里得到更多的理解。
前面文章介绍了常规hash,谈到了抗碰撞/雪崩效应等特性,比如微小的改动能产生不同的hash结果。
不过有时候我们期望hash不那么敏感,可以忽略细微的不同,比如一段文字中忽略某些句子顺序,或者忽略几个词的不同,那么有哪些可用的hash方法呢?
开发常见的Hash函数(二)-Geohash
intro1:Geohash祛魅
intro2: Geohash原理及常见运算
intro3: Geohash与填充曲线/二进制小数/bitHacks
intro4: Geohash在Lucene/Elasticsearch/Redis等应用
前文介绍数据结构和密码学的哈希函数,本文介绍下带hash的Geohash,即如何把地理空间映射为字符编码。
写作本文的时候,笔者发现一篇比较清晰的Geohash/S2之类的介绍,可以移步高效的多维空间点索引算法 — Geohash 和 Google S2 ,本文会介绍一些前置知识,并结合示例以及其在Lucene/Elasticearch等的应用。
开发中常见的一些Hash函数(一)
intro1:常见hash函数及使用场景
intro2: Java hashCode实现相关/为何计算hash时选择31/33相乘
intro3: Redis哈希表装载因子为何大于1,而非Java的0.75
intro4: 新hashmap实现为何要8个冲突才升级红黑树
intro5: 一致性哈希是否真的有用
在写前一篇博文时,发现Redis上的一个hash函数相关的commit:Use SipHash,于是笔者想到总结下开发中经常遇到的哈希函数,本篇为第一部分,介绍常见hash算法、java 的hash应用,以及hash对应的数据结构在Java/Redis使用,后续介绍广义的hash,如GeoHash,LSH的Simhash/minHash,以及笔者曾在比较相近图片时用到的hash,同GeoHash还会介绍下Google S2/Uber H3编码。
对限频限流的思考
intro1:限流的常见实现方式及常见开源限流组件有注意点
intro2: 你真的理解了漏桶和令牌桶限流算法吗,划分/区分二者科学吗
intro2: 你知道限流保障服务可用时也可能导致其他服务不可用吗
早先看到朋友圈分享限频限流的文章,从中有些收获,不过笔者不打算赘述,想进一步探讨下限频限流,以及限频限流使用时可能遇到的问题,同时也是对前一篇博文的回应,或许看完本文你会对Guava令牌桶算法有不一样的理解。
Spring Cloud RedisRateLimit限频存在的几个问题
本文主要讨论Spring Cloud Gateway的基于Redis分布式限频存在的失效/不准确的可能性及解决方法,同时适用于所有参考request_rate_limiter.lua实现的基于redis限频组件.
阅读本文不需要了解Spring Cloud Gateway(下简称SCG)怎么使用或具体实现,本文只是基于限频角度讨论下常规的组件使用问题。
主要讨论SCG提供的基于Redis分布式限频存在的失效/不准确的可能性及解决方法,同时适用于所有参考request_rate_limiter.lua实现的基于redis限频组件,其次也讨论该方案其他不足。如果你对SCG RedisRateLimit有所了解或已知道其存在的几个问题或觉得TLDR;,可以直接跳到本文最后。