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

网站做快捷方式一个app软件

网站做快捷方式,一个app软件,网络推广代理,石家庄市网站建设培训班分布式锁:在一个公共的存储服务上打上一个标记,如Redis的setnx命令,是先到先得方式获得锁,ZooKeeper有点像下面的demo,比较大小的方式判决谁获得锁。 package com.ldj.mybatisflex.demo;import java.util.*; import java.util.co…

 分布式锁:在一个公共的存储服务上打上一个标记,如Redis的setnx命令,是''先到先得''方式获得锁,ZooKeeper有点像下面的demo,比较大小的方式判决谁获得锁。

package com.ldj.mybatisflex.demo;import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;/*** User: ldj* Date: 2025/1/12* Time: 1:50* Description: 基于文件系统制作的分布式锁demo*/
public class LockDemo {public static void main(String[] args) throws InterruptedException {//模拟文件存储系统List<String> files = new CopyOnWriteArrayList<>();List<Integer> hashCodes = new ArrayList<>();//使用3个线程模拟3台服务往文件存储系统写消息writeMsg(files, hashCodes);System.out.println("result:" + hashCodes.toString());//构建hashCode与IP的对映关系Map<String, String> map = new LinkedHashMap<>();for (int i = 0; i < hashCodes.size(); i++) {map.put(hashCodes.get(i).toString(), files.get(i).split(";")[0]);}System.out.println(map.toString());//排序获取最大数值Collections.sort(hashCodes);String key = hashCodes.get(hashCodes.size() - 1).toString();System.out.println("key: " + key);//比较3个消息code那个数字最大,最大的就是获得锁System.out.println("获得分布式锁的服务IP是: " + map.get(key));//模拟获得锁服务处理业务TimeUnit.SECONDS.sleep(3);//处理完成业务,通知文件存储系统清理消息文件(或者文件系统的定时任务自己处理也行)files.clear();System.out.println(files.toString());/*假设一个场景,1号服务获得锁,处理业务过程中挂了,会怎么样???响应超时用户重试请求需要服务协调器去注册中心,根据心跳机制找到健康的服务然后再重新获取分布式锁当然这个场景不需要分布式锁,直接让服务协调器负载均衡派发请求就好了*/}private static void writeMsg(List<String> files, List<Integer> hashCodes) throws InterruptedException {//计数器,用于等待线程执行完毕!CountDownLatch count = new CountDownLatch(3);new Thread(() -> {files.add("192.168.208.1;" + UUID.randomUUID().toString().replaceAll("-", ""));count.countDown();}).start();new Thread(() -> {files.add("192.168.208.2;" + UUID.randomUUID().toString().replaceAll("-", ""));count.countDown();}).start();new Thread(() -> {files.add("192.168.208.3;" + UUID.randomUUID().toString().replaceAll("-", ""));count.countDown();}).start();//等待3个线程(服务器)往文件系统写消息count.await();System.out.println("3个模拟服务器往文件存储器完毕!");System.out.println(files.toString());//将消息字符串转为正整数字if (files.size() > 0) {for (String file : files) {hashCodes.add(Math.abs(file.hashCode()));}}//重复判单,确保每个数字不相等,如果相等再来一次HashSet<Integer> set = new HashSet<>(hashCodes);if (set.size() != hashCodes.size()) {files.clear();hashCodes.clear();writeMsg(files, hashCodes);}}
}

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

相关文章:

  • 网站开发 打标签wordpress 域名替换
  • 丰镇市网站网站备案期间 搜索引擎
  • 外贸网站建设的好处哪个网站做的简历比较好
  • 交互网站建设开个免费的网站多少钱
  • 南通小企业网站建设网站优化 方案
  • 做特卖的网站爱库存衡水提供网站制作公司哪家好
  • 佛山制作网站企业福田产品设计
  • 建设网站服务器自营方式怎么做公众号网站吗
  • 做月亮的网站背景图片购物网站服务器价格
  • 盘锦建设小学网站知名品牌vi设计案例分析
  • 金华网站建设行业汕头网站上排名
  • php 开源cms 企业网站nike官网宣传片
  • 的建站公司网站qq代码
  • 内涵图网站源码定制网站系统开发
  • 市北区网站建设苏州网页设计师培训
  • 网站建设可行性分析报告范文网站字体颜色大小
  • 东莞网站建设dgjwz全国最大的网站建设公司排名
  • 济南网站建设seo优化建筑网站视频大全
  • 外贸建站什么意思表白网站制作平台
  • 厦门企业网站建设专家网站建设公司生存现状
  • c2c代表网站微商城系统网站模板
  • 做网站卖产品设计装饰公司排名
  • 网站建设一百互联阿里巴巴做网站分录
  • 容城县网站开发购物网站大全分类
  • 门户网站内容建设品牌建设之道有哪些
  • 公司企业网站设计尺寸seo优化推广业务员招聘
  • 做网站一年能赚多少钱网站备案后应该做什么
  • 设计网站100个免费宿迁网站建设哪家最好
  • 网站的建设方法包括哪些内容cname解析对网站影响
  • 深圳响应式设计企业网站wikiesu wordpress