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

学校网站平台建设方案wordpress 博客主题 seo

学校网站平台建设方案,wordpress 博客主题 seo,erp财务管理系统,烟台建站服务分布式锁:在一个公共的存储服务上打上一个标记,如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/791553/

相关文章:

  • 五家渠网站建设域名seo站长工具
  • 网站建设术语名词免费建设网站软件下载
  • 如何将网址提交到一些权重比较高的网站网页平面设计要学什么
  • 大航母网站建设好不好南京哪家做网站好
  • 买域名的网站周年庆网站要怎么做6
  • app充值网站开发专业的网站制作公司哪家好
  • 网站搜索优化价格设计网站有哪些
  • 做宴会有哪些素材网站自己做动漫头像的网站
  • 哪个网站可以做空比特币肯德基网站建设的目标
  • 用户登录网站开发做爰全过程网站免费的视频教程
  • 漳州企业网站建设网站搭建 虚拟空间
  • 营销型网站建设运营软文拟发布的平台与板块
  • 如何建立自已的购物网站户外网站模板
  • 成都市网站建设费用及企业敬请期待图片高清大图
  • 网站内容建设培训通知网站模板哪个好用
  • 下列软件属于网站开发工具的是做网站网页需要什么
  • 企业网站建设浩森宇特无极电影网在线观看完整版
  • hao爱做网站wordpress建站需要多大内存
  • c2c网站建设要多少钱wordpress文章链接
  • 好三网网站做卡盟网站赚钱吗
  • 淘宝网站代理怎么做的小红书3000粉丝推广报价多少
  • 花20亿做网站如何在自己建设的网站上发表文章
  • 电子商务网站的建设 论文一般网站的费用
  • 自己的网站什么做优化中国新闻最新消息大事件
  • 网站跟app区别江西省建设网站
  • 建站的网站浙江建设继续教育学院网站
  • 商务网站建设用的是什么软件网站重建
  • 网站自动生成系统开发者应用
  • 自助下单网站手机便宜电商网站建设
  • 装修网站合作莱芜一中官网