美文网首页
分布式集群场景化解决方案

分布式集群场景化解决方案

作者: 极速魔法 | 来源:发表于2022-04-11 19:49 被阅读0次

分布式和集群

  • 分布式一定是集群,集群不一定是分布式
  • 分布式:把一个系统拆分为多个子系统,每个子系统各司其职,独立部署
  • 集群:多个实例共同工作

一致性Hash

环的开始是1,结束是2^32-1,首尾相连。服务器的ip进行hash求值,对应到环上的某个位置。客户端请求过来也进行hash求值,按顺时针方向去最近的服务器节点

时钟同步

ntpdate -u ntp.api.bz

分布式id

雪花算法数据结构

  • 符号位(1bit),时间戳(41bit),机器id(10bit),序列号(12bit)

定时任务

定时任务形式

每隔一定时间/某一时刻执行

分布式调度

  • 运行在分布式集群环境下的调度任务。同一个定时任务部署多份,只有一个定时任务执行。
  • 把一个大的作业任务拆分为多个小的作业任务,同时执行

Quartz

  1. 创建任务调度器
  2. 创建任务
  3. 创建任务时间触发器
  4. 任务调度器根据时间触发器执行任务
// 创建任务调度器
ScheduleFactory factory = new StdScheduleFactory();
Scheduler scheduler = factory.getScheduler();

// 创建任务,DemoJob实现 org.quartz.Job接口
JobBuilder  builder = JobBuilder.newJob(DemoJob.class);
builder.withIdentify("jobName","myJob");
JobDetail jobDetail = builder.build();

// 创建任务时间触发器,每隔2s执行
CronTrigger trigger = TriggerBuilder.newTrigger()
                .withIdentify("triggerName","myTrigger")
                .startNow()
                .withSchedule(CronScheduleBuilder.cronSchedule("*/2 * * * * ?"))
                .build();
        
// 任务调度器根据时间触发器执行任务
scheduler.scheduleJob(jobDetail,trigger);
scheduler.start();

Session共享

Session一致性解决方案

  • Nginx的IP_Hash策略
  • Session复制
  • Session集中存储

相关文章

网友评论

      本文标题:分布式集群场景化解决方案

      本文链接:https://www.haomeiwen.com/subject/jcrwsrtx.html