分布式分片选择的一个坑

前端时间做分片选择, 采用 String的hash值再取余, 结果发现hash值有负数,立马改成Math.abs(value.hashCode())% unit。今天看了一下Math.abs的源码, 发现注释中说Integer.minValue 时, 绝对值会溢出。 试了一下,果然返回同样的负数。只好自己再封装一层,当值等于  Integer.minValue 时,直接返回0. 单元测试通过。

猜你喜欢

转载自zhenggm.iteye.com/blog/2300640