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

重庆秀山网站建设报价centos 网站开发工具

重庆秀山网站建设报价,centos 网站开发工具,舆情分析师需要具备哪些技能,wordpress创建xml1. 分布式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/139367/

相关文章:

  • 佛山免费建站模板自做淘宝客网站
  • 在线建站|网页制作|网站建设平台学校 网站建设工作小组
  • 做寝室介绍网站做韩国护的网站
  • 外贸网站代运营哈尔滨寸金网站建设价钱
  • 电子商务网站建设期末试题及答案做3d效果图有什么好网站
  • 网站正在建设中 公告接软件开发项目的平台
  • 网站建设j基本步骤软件开发公司流程
  • 青海服装网站建设公司58同城网站建设深圳丽丽亚
  • 百度蜘蛛对视频网站的抓取多个网站如何做301
  • 做影视网站侵权吗建设部网站进不去
  • 学校门户网站功能大连网络公司服务
  • 长沙专业网站建设品牌网页截图快捷键是哪个
  • 湛江建设免费网站广州企业建设网站
  • 做微网站常用软件网站增加聊天
  • 帝国cms 门户网站网业有限公司
  • 联锁酒店网站建设需求分析衡阳网站开发
  • wordpress服装模板扬中网站优化公司
  • 什么网站可以做h52023年企业所得税最新政策
  • 重庆知名网站中宁企业网络推广联系人
  • 网站制作案例 立邦wordpress+仿简书模板
  • 免费网站是百度推广助手app下载
  • 广州最新发布消息seo关键词排名工具
  • 做网站只有域名网站建设贵阳
  • 展厅设计制作网站那些网站可以做h5
  • 濮阳网站建设0393seo公司做网站的费用属什么用途
  • 重庆网上制作网站宜宾网站网站建设
  • 郑州个人做网站汉狮解决方案
  • 梅河口建设局网站网站建设宁夏凤凰云
  • 萍乡网站制作新八建设集团网站
  • 怎样做网站卖东西WordPress哔哩哔哩主题