当前位置: 首页 > wzjs >正文

建设银行网站账户注销湖南做网站的公司

建设银行网站账户注销,湖南做网站的公司,江苏华江建设集团有限公司网站,商城网站设计价格在我们的项目中,我们需要定义一些全局唯一的 ID,比如订单号,支付单号等等。 这些ID有以下几个基本要求: 1、不能重复 2、不可被预测 3、能适应分库分表 为了生成一个这样一个全局的订单号,自定义了一个分布式 ID …

在我们的项目中,我们需要定义一些全局唯一的 ID,比如订单号,支付单号等等。

这些ID有以下几个基本要求:

1、不能重复

2、不可被预测

3、能适应分库分表

为了生成一个这样一个全局的订单号,自定义了一个分布式 ID 生成器,其中包含了三部分



定义了一个全局的 ID 生成器——DistributeID,其中定义了方法——generateWithSnowflake

他就是借助雪花算法生成唯一 ID 的,这个方法的声明如下:

/*** 利用雪花算法生成一个唯一ID*/
public static String generateWithSnowflake(BusinessCode businessCode,long workerId,String externalId) {long id = IdUtil.getSnowflake(workerId).nextId();return generate(businessCode, externalId, id);
}

需要三个参数:

BusinessCode businessCode

  • 主要是区分业务的,比如订单号、支付单号、优惠券单号等等,不同的业务定义一个不同的 BusinessCode

long workerId

  • 用于区分不同的 worker,这个 woker 其实就是一个机器实例,我们需要能保证不同的机器上的 workerId 不一样。

String externalId

  • 这个就是一个业务单号,比如买家 ID,这个字段会用于基于基因法进行订单号生成。

主要介绍下这个workerId我们如何获取。

在我的项目中,workerId 的获取我们是通过WorkerIdHolder实现的。

代码如下:

@Component
public class WorkerIdHolder implements CommandLineRunner {@Autowiredprivate RedissonClient redissonClient;public static long WORKER_ID;@Overridepublic void run(String... args) throws Exception {RAtomicLong atomicLong = redissonClient.getAtomicLong("workerId");WORKER_ID = atomicLong.incrementAndGet() % 32;}
}

这个类实现了CommandLineRunner接口,那么在 Spring 容器启动的过程中,run方法就会被调用。



run 方法中的主要逻辑就是去 redis 中获取一个自增 id,然后我们再基于拿到的这个自增 id对32取模,就能得到一个 workerId 了。



为什么是32?主要是因为雪花算法对这个 workerId 有要求,不能超过32,否则会报错。



当我们有10台机器依次启动的过程中,就会获取到10个自增 id,比如是1000-1010吧,那么把他们对32取模就能得到一个10个不同的数字,就可以把这个数组保存在一个常量中,当作 workderId 来用了。

http://www.dtcms.com/wzjs/284068.html

相关文章:

  • 营销型网站建设的公司seo软件视频教程
  • 哪家网站制作 优帮云搜索引擎的工作原理是什么?
  • 德国和俄罗斯和做视频网站关键词制作软件
  • 交换广告是两个网站做友情链接吗百度统计手机app
  • 手机网站的尺寸做多大的阿里巴巴logo
  • 北京模板网站建设互动营销案例都有哪些
  • 网站建设 天津seo网站优化系统
  • jsp网站怎么做珠海关键词优化软件
  • 网站怎么做排行榜在线seo外链工具
  • 网站建设内部下单流程图收录优美图片app
  • 网站公安备案时间限制高端网站设计公司
  • 电子商务网站的开发方式有哪三种时事新闻热点摘抄
  • ps中网站页面做多大的制作自己的网站
  • 网站开辟两学一做专栏信息流广告推广
  • 合肥比较好的网站建设公司有没有免费的推广网站
  • 开发网站公司多少钱广告软文范例大全100
  • 海淀教育互动平台西安seo技术培训班
  • 气球网站建设中国销售网
  • 网站建设 cms 下载福州百度开户多少钱
  • 宝安自适应网站建设公司品牌宣传
  • 品牌网站建设-建站之路搜狗网页
  • 成都较出名的广告公司南宁seo公司
  • 品牌展示榜ui做的好的网站志鸿优化网官网
  • 沈阳网站页面设计公司有趣的软文
  • 免费模板素材软件三台网站seo
  • 惠州seo优化西安网站seo优化公司
  • 深圳龙华做网站的公司百度seo和sem
  • 山东建设管理局网站抖音关键词排名查询工具
  • 嘉兴专业网站建设做网站价格
  • 网站建设公司特点sem搜索引擎