分布式(9)

目录

41.常见的JOB实现方案?

42.Cookie和Session有什么区别?

43.谈谈会话技术的发展?

44.分布式会话有哪些解决方案?

[45.什么是Session Stick?](#45.什么是Session Stick?)


41.常见的JOB实现方案?

基于上面Java任务演化出分布式Job方案:

quartz

JDBCJobStore 支持集群所有触发和Job都存储在数据库中无论服务器停止和重启都可以恢复任务同时支持事务处理

elastic job

elastic job是由当当网基于quartz二次开发之后的分布式调度解决方案,由两个相对独立的子项目Elastic Job Lite和Elastic JOB Cloud 组成。

Elastic Job Lite 定位为轻量级无中心化解决方案,使用jar包的形式提供分布式任务的协调服务。

Elastic Job Cloud使用Mesos+Docker(TBD)的解决方案,额外提供资源治理,应用分发以及进程隔离等服务

两点:

1.基于quartz定时任务框架为基础的,因此具备quartz的大部分功能

2.使用zookeeper做协调,调度中心,更加轻量级

3.支持任务的分片

4.支持弹性扩容,可以水平扩展,当任务再次运行时,会检查当前的服务器数量,重新分片,分片结束之后才会继续执行任务。

5.失效转移,容错处理,当一台调度服务器宕机或者跟zookeeper断开连接后,会立即停止作业,然后再去寻找其他空闲的调度服务器,来运行剩余的任务。

6.提供运维界面,可以管理作业和注册中心。

xxl job

一个轻量级分布式任务调度框架,主要分为调度中心和执行器两部分,调度中心在启动初始化的时候,会默认生成执行器的RPC代理

对象(http协议调用),执行器项目启动之后,调度中心在触发定时器之后通过jobHandle来调用执行器项目里面的代码,核心功能和elastic job差不多

42.Cookie和Session有什么区别?

Cookie和Session的方案虽然分别属于客户端和服务端,但是服务端的session的实现对客户端的cookie有依赖关系的,服务端执行session机制时候会生成session的id值,这个id值会发送给客户端,客户端每次请求都会把这个Id值放到http请求的头部发送给服务器,而这个id值在客户端会保存下来,保存的容器就是cookie,因此当我们完全禁掉浏览器的cookie的时候,服务端的session也会不能正常使用。

43.谈谈会话技术的发展?

单机 Session+Cookie

多机器

在负载均衡侧 Session粘滞

Session数据同步

多机器,集群,session集中管理,比如redis;目前方案上用的最多的是SpringSession,早前也有用tomcata集成方式的。

无状态token,比如JWT

44.分布式会话有哪些解决方案?

Session Stick

Session Replication

Session数据集中存储

Cookie Based

JWT

45.什么是Session Stick?

方案即将客户端的每次请求都转发至同一台服务器,这就需要负载均衡器能够根据每次请求的会话标识(Session ID)进行请求转发,如下图所示。

这种方案实现比较简单,对于Web服务器来说和单机的情况一样。但是可能会带来如下问题:

如果有一台服务器宕机或者重启,那么这台机器上的会话数据会全部丢失。

会话标识是应用层信息,那么负载均衡要将同一个会话的请求都保存同一个Web服务器上的话没救需要进行应用层(第7层)的解析,这个开销比第4层大。

负载均衡器将编程一个有状态的节点,要将会话保存到具体的web服务器的映射。和无状态节点相比,内存消耗更大,容灾方面也会更麻烦。

PS:为什么这种方案到目前还有很多项目使用呢?因为不需要在项目代码侧改动,而是只需要在负载均衡侧改动。

相关推荐
李洋-蛟龙腾飞公司38 分钟前
HarmonyOS Next 应用元服务开发-分布式数据对象迁移数据文件资产迁移
分布式·华为·harmonyos
技术路上的苦行僧3 小时前
分布式专题(10)之ShardingSphere分库分表实战指南
分布式·shardingsphere·分库分表
GitCode官方4 小时前
GitCode 光引计划投稿 | GoIoT:开源分布式物联网开发平台
分布式·开源·gitcode
小扳6 小时前
微服务篇-深入了解 MinIO 文件服务器(你还在使用阿里云 0SS 对象存储图片服务?教你使用 MinIO 文件服务器:实现从部署到具体使用)
java·服务器·分布式·微服务·云原生·架构
zquwei15 小时前
SpringCloudGateway+Nacos注册与转发Netty+WebSocket
java·网络·分布式·后端·websocket·网络协议·spring
道一云黑板报18 小时前
Flink集群批作业实践:七析BI批作业执行
大数据·分布式·数据分析·flink·kubernetes
飞来又飞去20 小时前
kafka sasl和acl之间的关系
分布式·kafka
MZWeiei21 小时前
Zookeeper的监听机制
分布式·zookeeper
莹雨潇潇21 小时前
Hadoop完全分布式环境部署
大数据·hadoop·分布式
浩哲Zhe1 天前
RabbitMQ
java·分布式·rabbitmq