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

分布式和集群

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

一致性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集中存储
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容