一、CAS服务的下载 CAS可以通过两种方式来下载。第一种方式是使用cas overlay template模板自行构建,这种方式适合需要在官方cas的基础上进行二次开发的情况;第二种方式是导入已经构建好的war包,适用于需要快速部署,不需要定制化开发的情况。以下是下载方式: CAS Overlay Template:CAS Overlay Tem…
RestTemplate是Spring提供的一个模板类,用于发送Http网络请求。利用它制作一个方向代理,可以使用RestTemplate的exchange方法来实现。具体分为以下几个步骤: 一、创建RestTemplate实例 创建RestTemplate实例直接new就行了,重要的是RestTemplate的配置。考虑到Http请求可能获取多种…
Zookeeper概述 在分布式系统之中,集群各个机器的协同工作是一个比较难解决的点。对此ZooKeeper应运而生,开发者可以通过ZooKeeper来实现一些分布式一致性服务。同样的,Zookeeper也可以是一个集群,但是ZooKeeper集群之中的细节可以被很好的隐藏。这样说会有些抽象,可以用示意图简单地描述ZooKeeper的集群架构,其示…
一个合格的分布式锁需要满足可重入、可重试、超时续约、主从一致性。而Redisson是一个基于Redis的分布式锁库,其满足了上述的条件。实现方式具体如下: 可重入:使用Redis的Hash结构,记录线程的ID以及可重入的次数 可重试:利用信号量和PubSub功能实现等待、唤醒、获取锁失败的重试机制 超时续约:使用watchDog,每隔一段时间就重置…
今天在使用LUA脚本解决Redis全局分布式锁的原子性,当调用lua脚本释放锁的时候,程序报出IllegalStateException异常。一开始以为是LUA脚本的问题,仔细检查之后并未发现问题。对此百思不得其解。 直到看到了一个博文,其中提到可能是返回值类型设定的问题。先来看一下最初的静态代码块中的初始化代码: static { UNLOCK_…
第四章 语法分析器的功能 分析出单词符号串的基础上,程序的语法结构是否符合语法规则。 按文法的产生式识别输入的符号串是否为一个句子。 自上而下分析面临的问题 带回溯的分析,如果有左递归可能会无限循环,效率低,虚假匹配的问题,难以知道出错的位置。 LL(1)文法 左递归的消除 直接左递归 间接左递归 例子 消除回溯,提左公因子 LL(1)分析的思想 …
调度算法 进程和作业调度算法 先来先服务(FCFS) 短作业优先(SJF) 高响应比优先(HRRN) 轮转调度算法(RR) 页面置换算法 最佳页面置换算法(OPT) 先进先出页面置换算法(FIFO) 最近最久未使用置换算法(LRU) 最少使用页面置换算法(LFU) 磁盘调度算法 FCFS SSTF SCAN CSCAN 二级页表 某计算机系统按字节…
磁盘存储器管理 外存的组织方式 连续组织方式 链接组织方式 索引组织方式 连续组织方式 会出现外部碎片,只有这一种方式文件不能动态增长 主要优点 顺序访问容易 顺序访问速度快 主要缺点 会产生许多外部碎片 必须事先知道文件的长度 不能灵活的插入和删除记录 无法满足文件动态增长的需求 链接组织方式 隐式组织方式 文件目录的目录项中存储着指向链接文件的…
文件管理 文件和文件系统 文件时具有文件名的若干相关元素的集合。元素通常是记录,记录又是一组有意义的数据项集合。 文件、记录和数据项 数据项 基本数据项:用于描述一个对象的某种属性的集合,是数据组织中可以命名的最小逻辑数据单位,又称为字段。 组合数据项:是由若干个基本数据项所组成 记录 一组相关的数据项的集合 文件 文件有有结构文件和无结构文件两类…
输入/输出系统 I/O系统的功能,模型与接口 I/O系统的基本功能 I/O系统的模型 I/O设备和设备控制器 I/O设备 设备的类型 按使用特征分类:(1)存储设备;(2)I/O设备。 按传输速率分类:(1)低速设备;(2)中速设备;(3)高速设备。 设备与设备之间的接口 设备控制器 基本功能 接受和识别命令 数据交换 标志和报告设备的状态 地址…