分布式(9)

目录

41.常见的JOB实现方案?

42.Cookie和Session有什么区别?

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/336984.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mendeley Word 文献引用

这里写目录标题 1. 下载Mendeley 并插入到Word1.1 下载安装1.2 在Word 中添加Mendeley 插件文献引用相关 1. 下载Mendeley 并插入到Word 1.1 下载安装 Mendeley 官网下载 1.2 在Word 中添加Mendeley 插件 打开 Mendeley,点击 Tools —>Install Mendeley Cite…

Python学习笔记-使用Anaconda+VSCode配置开发环境

文章目录 概述一、安装Anaconda1.1 下载软件1.2 安装anaconda1.3 配置环境 二、配置虚拟环境2.1 使用conda创建一个新的虚拟环境2.1.1 使用search指令查看支持的python的版本:2.1.2 使用create创建指定版本的虚拟环境:2.1.3 使用env list查看虚拟环境列表…

面试宝典进阶之redis缓存面试题

R1、【初级】Redis常用的数据类型有哪些? (1)String(字符串) (2)Hash(哈希) (3)List(列表) (4)Se…

Linux 网络层收发包流程及 Netfilter 框架浅析

1. 前言 本文主要对 Linux 系统内核协议栈中网络层接收,发送以及转发数据包的流程进行简要介绍,同时对 Netfilter 数据包过滤框架的基本原理以及使用方式进行简单阐述。 内容如有理解错误而导致说明错误的地方,还请指正。如存在引用而没有添…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷①

2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷1 目录 需要竞赛软件包环境以及备赛资源可私信博主!!! 2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷1 模块一 …

QT开发 QT5.15.2安装(换源极速安装)

▬▬▬▬▬▶QT安装◀▬▬▬▬▬ 🎄QT下载器获取 点我下载(●’◡’●) 🎄下载器放自定义文件夹(路径全英文) 文件名改短好操作 🎄在自定路径唤出cmd窗口 🎄输入命令开始换源安装 ins.exe --mirror https://mirrors.ustc.ed…

什么是Modbus协议?

Modbus协议是一种在工业自动化领域广泛应用的通信协议,它允许不同设备之间进行可靠的数据交换和控制。该协议最初由Modicon公司于1979年创建,旨在提供一种简单而有效的方法,使PLC(可编程逻辑控制器)和其他自动化设备能…

8年经验之谈 —— 服务端性能瓶颈定位思路总结!

01、软件性能测试目标 软件性能测试的目的主要有以下三点: 评价系统当前性能,判断系统是否满足预期的性能需求。 寻找软件系统可能存在的性能问题,定位性能瓶颈并解决问题。 判定软件系统的性能表现,预见系统负载压力&#xff…

Java中的输入输出处理(一)

文件 文件:文件是放在一起的数据的集合。比如1.TXT。 存储地方:文件一般存储在硬盘,CD里比如D盘 如何访问文件属性:我们可以通过java.io.File类对其处理 File类 常用方法: 方法名称说明boolean exists()判断文件或目…

vue文件在<template>中使用多个<el-main>报错(已解决)

目录 1.原理 2. 根据你的需求,自定义每个 组件的内容。你可以在 标签内部插入文本、其他组件、样式等。 3. 根据需要添加样式或其他属性到每个 组件。你可以使用 class、style 或其他属性来自定义每个组件的外观和行为。 4.一个可以运行的总代码如下 5.我的一…

【免费送书】Java从入门到精通:轻松领会Java程序开发的精髓

内容简介 《Java从入门到精通(第7版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细讲解了使用Java语言进行程序开发需要掌握的知识。全书分为4篇共24章,内容包括初识Java,开发工具&#xf…

【FPGA/verilog -入门学习17】vivado 实现串口自发自收程序

1,需求 PC使用串口助手给FPGA板发送9600 波特率的数据,FPGA板接收到数据后,回复同样的数据给PC 2,需求分析 按模块可以划分为: rx接收模块,将输入的8位并行rx 数据转换成[7:0]rx_data 信号,当…