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

做网站职业咋样重庆网站备案必须到核验点

做网站职业咋样,重庆网站备案必须到核验点,做网站优化价格,wordpress模板二次开发1. 分布式ID生成器的使用场景 在分布式系统中,分布式ID生成器的使用场景非常之多: 大量的数据记录,需要分布式ID。大量的系统消息,需要分布式ID。大量的请求日志,如restful的操作记录,需要唯一标识&#x…

1. 分布式ID生成器的使用场景

        在分布式系统中,分布式ID生成器的使用场景非常之多

  • 大量的数据记录,需要分布式ID。
  • 大量的系统消息,需要分布式ID。
  • 大量的请求日志,如restful的操作记录,需要唯一标识,以便进行后续的用户行为分析和调用链路分析。
  • 分布式节点的命名服务,往往也需要分布式ID。
  • ......

        传统的数据库自增主键已经不能满足需求。在分布式系统环境中,需要一种全新的唯一ID系统,这种系统需要满足以下需求:

(1)全局唯一:不能出现重复ID。

(2)高可用:ID生成系统是基础系统,被许多关键系统调用,一旦宕机,就会造成严重影响。

2. 分布式的ID生成器方案

        生成分布式ID的方案有哪些呢? 大概有以下几种方案

  • Java的UUID。
  • 分布式缓存Redis生成ID:利用Redis的原子操作INCR和INCRBY,生成全局唯一的ID。
  • Twitter的SnowFlake算法。
  • ZooKeeper生成ID:利用ZooKeeper的顺序节点,生成全局唯一的ID。
  • MongoDb的ObjectId:MongoDB是一个分布式的非结构化NoSQL数据库,每插入一条记录会自动生成全局唯一的一个“_id”字段值,它是一个12字节的字符串,可以作为分布式系统中全局唯一的ID。

3. Zookeeper实现分布式ID生成器

        接下来,我们可以通过创建ZooKeeper的临时顺序节点的方法,生成全局唯一的ID。

代码:

public class IDMaker {private final static  String CLUSTER_CONNECT_STR="192.168.31.5:2181,192.168.31.176:2181,192.168.31.232:2181";private static String createSeqNode(String pathPefix,CuratorFramework curatorFramework) throws Exception {//创建一个临时顺序节点String destPath = curatorFramework.create().creatingParentsIfNeeded().withMode(CreateMode.EPHEMERAL_SEQUENTIAL).forPath(pathPefix);return destPath;}public static String  makeId(String path,CuratorFramework curatorFramework) throws Exception {String str = createSeqNode(path,curatorFramework);if(null != str){//获取末尾的序号int index = str.lastIndexOf(path);if(index>=0){index+=path.length();return index<=str.length() ? str.substring(index):"";}}return str;}public static void main(String[] args) throws InterruptedException {//构建客户端实例CuratorFramework curatorFramework= CuratorFrameworkFactory.builder().connectString(CLUSTER_CONNECT_STR).retryPolicy(new ExponentialBackoffRetry(1000,3)) // 设置重试策略.build();//启动客户端curatorFramework.start();String pathPrefix = "/idmarker/id-";//模拟5个线程创建idfor(int i=0;i<5;i++){new Thread(()->{for (int j=0;j<10;j++){String id = null;try {id = makeId(pathPrefix,curatorFramework);System.out.println("线程{"+Thread.currentThread().getName()+"}第{"+j+"}次创建id为{"+id+"}");} catch (Exception e) {e.printStackTrace();}}},"thread"+i).start();}Thread.sleep(Integer.MAX_VALUE);}}

运行main方法:运行结果

http://www.yayakq.cn/news/23236/

相关文章:

  • 无锡微信网站建设价格甘肃建设厅网站首页
  • 网站界面一般用什么软件做丹阳网站制作
  • 设计灵感的网站wordpress4.7.1漏洞
  • 网站制作结算确认函wordpress 科技 主题
  • 天津网站建设咨询wordpress minty主题
  • 河北省地图福州seo排名优化公司
  • 咸阳网站设计建设公司lnmp wordpress
  • 电子商务网站营销的方法自己制作一个简单的app
  • 百度收录不到公司网站蓝色汽车配件公司网站 模板
  • 微信平台微网站开发外贸没有公司 如何做企业网站
  • 设计网站需要用到哪些技术wordpress后台中文设置
  • 无锡手机网站建设国都建设(集团)有限公司网站
  • 网站的收录情况怎么查门户网站建设情况简介
  • 开元棋牌网站怎么做做网站先要学
  • 专门做配电箱的网站小程序定制程序
  • 免费网站建设培训学校陕西建设厅人才网站
  • 西安网站制作设计定制长沙网站制作合作商
  • 网站开发设计制作公司用手机可以做网站吗
  • seo比较好的网站南宁网站建站公司
  • 旅游网站建设的相关报价即时通讯网站开发源码
  • 帮人家做网站难吗推广网站利润
  • 南通门户网站建设缤纷销客crm
  • 帝国cms企业门户网站仿站视频教程 网盘深圳专业建站公司有哪些
  • 南京装修公司做网站郑州建设信息网简介
  • 学校专业群建设专题网站社交网络推广方法
  • 网站建设座谈会上的发言企业网站设计推荐
  • 简单易做的网站建网站可行性分析
  • 线上设计师网站国家高新技术企业认定官网
  • php做的网站如何该样式网站速度优化
  • 网站开发服务 税怎样找素材做网站