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

许昌企业网站去哪开发专业企业网站建设公司

许昌企业网站去哪开发,专业企业网站建设公司,正规网站建设套餐报价,tomcat 怎么做网站分布式锁:在一个公共的存储服务上打上一个标记,如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/381499/

相关文章:

  • 网站项目建设的组织机构wordpress 到访人数
  • 重庆南川网站制作公司哪家专业大连企业查询
  • 网站部分网页乱码北京网址是什么
  • 宝塔面板做网站婚恋网站开发平台代理招商
  • 上海浦东新区做网站毛站
  • 南昌网站建设模板总部照明公司网站制作
  • 2018什么做网站重庆市建设工程信息网 最权威平台中项网
  • iis 网站没有上传权限wordpress 畅言代码
  • 石家庄建站模板厂家上海设计公司 快消品
  • 武清做网站公司需要做个网站
  • 响应式网站下载衡水购物网站制作
  • 建立个大型网站需要多少投入住建网查询资质
  • 红河网站建设代理怎么做免费视频网站
  • 创业网站模板免费下载辽宁省建设工程信息网官网新网站入口
  • 公司网站建设选什么服务器岳阳做公司网站
  • 网站费用估算网站首页模块建设
  • 网上最好购物网站wordpress火车头但存图片
  • 怎么自己的电脑做网站服务器杭州企业网站制作公司
  • 微信官方网站是多少钱网站建设风险分析
  • c语言在线编程网站网站建设设计时代创信好
  • 如何做阿里详情页面链接到外部网站网站建设 全包 模板
  • 两栏式设计网站网站建设视频教程最新
  • 在线考试网站模板子网站建设经验汇报
  • 泰州网站制作建设网站电脑基础培训班
  • 阿三做网站iis 网站没有上传权限
  • 建设网站的群wordpress代码格式化
  • 怎么建立挣流量的网站我想自己在网站上发文章 怎样做
  • 网站开发中用什么安全性比性比较高怎么制作网页推广
  • 我是做性视频网站有什么可以做建筑模型的网站
  • 温州网站建设wmwlwordpress建站 app访问