优先级

01-keepalived 双机热备

十年热恋 提交于 2020-03-20 11:02:04
keepalived 双机热备 1. keepalived 双机热备的原理 首先,要知道 keepalived 有三个模块,分别是core、check和vrrp。其中core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析,check模块负责健康检查,vrrp模块是来实现VRRP协议的。 keepalived 工作在网络层,通过VRRP 协议,将信号广播到网络内的所有机器。当网络组中的主机收到广播后,就会检测自己的优先级,如果发现本机的优先级是最高,则将VIP绑定到本机的网卡。 所以,keepalived 软件主要是靠VRRP 协议通信。所以,当keepalived 机器组里的机器不能正常通信后,就会出现脑裂问题——即有两台以上的主机在抢占VIP 。 keepalived 通常用在组建双机热备,当master 出现故障后,备机会获得vip绑定,替代出现故障的机器提供服务。当然热备的主机数量可以不止两台。 2. 搭建双机热备的思路 有两台nginx 提供web服务功能,在nginx 服务器上各安装keepalived 软件,其中一台配置为master,另一台配置成backup。keepalived 的配置文件可以统一完成这些需求。keepalived 还可以自定义检测nginx健康情况的脚本。这个检测nginx的脚本功能是

任务管理和计划任务

萝らか妹 提交于 2020-03-17 23:02:11
程序是静态的,进程的动态的有一定的生命周期,是动态产生和消亡的 进程id:pid 父进程id:ppid 前台进程: 后台进程:后台进程必须是非交互式的 例如ping & 写一个文件搜索的计划任务 进程状态: 就绪:已经为进程分配的cpu时间 运行:进程正在运行(直到消耗完分配的时间) 等待:(等待某种事件的发生) from: :0 代表从xwindow登陆的 JCPU:cpu执行程序耗费的时间 PCPU:cpu执行程序所耗费的时间 what:用户正在执行的操作 load average:分别显示过去 1 5 15 过去的分钟内的平均负载程度 进程查看命令:ps (process status) a:(all)所有用户的进程 u:(user)显示用户名和启动时间 x:显示没有控制终端的进程(一般进程都会有终端的,但是很多系统用户启动的进程是没有终端的) e:显示所有进程,包括没有控制终端的进程 l: 长格式显示 w:宽行显示,可以用多个w加宽显示 ps 获得自己的一些简单信息 ps -u or -l 查看隶属于自己进程的详细信息 ps -uU root 查看系统中指定用户执行的进程 pid:进程号 ppid:父进程的进程号 tty:进程启动的终端 stat:进程的当前状态 S(sleep):休眠状态:D(drop):不可终端的休眠状态,R(running):运行状态 Z()僵死状态

Java学习笔记4(多线程)

孤者浪人 提交于 2020-03-17 22:55:28
多线程 多个程序块同时运行的现象被称作 并发执行 。多线程就是指一个应用程序中有多条并发执行的线索,每条线索都被称作一条 线程 ,它们会交替执行,彼此间可以进行通信。 进程: 在一个操作系统中,每个独立执行的程序都可称作为一个进程,也就是 “正在运行的程序”。在计算机中,所有的程序都是由CPU执行的,CPU在某个时间点只能执行一个进程,在极短的时间下在不同的进程之间进行切换,给人程序在同时进行的感觉。 线程: 每个运行的程序都是一个进程,在一个进程中可以有多个执行单元同时运行,这些执行单元可以看作程序执行的一条条线索,被称为线程。多条线程看似同时执行,其实不然,它和进程一样,都是 CPU轮流执行的。 继承 Thread类创建多线程 通过继承 Thread类,并重写Thread类中的run()方法便可以实现多线程,在Thread类中提供了start()方法用于启动新线程。 class MyThread extends Thread{ //重写run()方法 public void run(){ while(true){ System.out.println("MyThread类的run()方法在运行"); } } } public class Test{ public static void main(String[] args) { MyThread myThread = new

STM32中断优先级

时间秒杀一切 提交于 2020-03-17 22:27:10
把STM32中断优先级搞懂了 现在与大家分享: 一:综述 STM32 目前支持的中断共为 84 个(16 个内核+68 个外部), 16 级可编程中断优先级 的设置(仅使用中断优先级设置 8bit 中的高 4 位)和16个抢占优先级(因为抢占优先级最多可以有四位数)。 二:优先级判断 STM32(Cortex-M3)中有两个优先级的概念——抢占式优先级和响应优先级,有人把响应优先级称作'亚优先级'或'副优先级',每个中断源都需要被指定这两种优先级。 具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套,或者说高抢占式优先级的中断可以嵌套低抢占式优先级的中断。 当两个中断源的抢占式优先级相同时,这两个中断将没有嵌套关系,当一个中断到来后,如果正在处理另一个中断,这个后到来的中断就要等到前一个中断处理完之后才能被处理。如果这两个中断同时到达,则中断控制器根据他们的响应优先级高低来决定先处理哪一个;如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。 三:优先级分组 既然每个中断源都需要被指定这两种优先级,就需要有相应的寄存器位记录每个中断的优先级;在Cortex-M3中定义了8个比特位用于设置中断源的优先级,这8个比特位在NVIC应用中断与复位控制寄丛器(AIRCR)的中断优先级分组域中,可以有8种分配方式,如下:

Quartz使用总结

◇◆丶佛笑我妖孽 提交于 2020-03-17 08:29:26
Quartz可以用来做什么? Quartz是一个任务调度框架。比如你遇到这样的问题 想每月25号,信用卡自动还款 想每年4月1日自己给当年暗恋女神发一封匿名贺卡 想每隔1小时,备份一下自己的爱情动作片 学习笔记到云盘 这些问题总结起来就是:在某一个有规律的时间点干某件事。并且时间的触发的条件可以非常复杂(比如每月最后一个工作日的17:50),复杂到需要一个专门的框架来干这个事。 Quartz就是来干这样的事,你给它一个触发条件的定义,它负责到了时间点,触发相应的Job起来干活。 一个简单的示例 这里面的所有例子都是基于Quartz 2.2.1 public class QuartzTest { public static void main(String[] args) { Quart(HelloQuartz.class,"*/1 * * * * ?"); } private static void Quart(Class<? extends Job> clazz,String cron) { try { //创建scheduler Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); //定义一个Trigger Trigger trigger = TriggerBuilder.newTrigger()

CSS权重和优先级

a 夏天 提交于 2020-03-17 06:30:18
CSS权重和优先级 第一题 第二题 第三题 第四题 第五题 第六题 详解 CSS优先级(重点) 1). 权重计算公式 2). 权重叠加 3). 继承的权重是0 第一题 <!DOCTYPE> <html> < head > < meta http-equiv = " content-type " content = " text/html;charset=utf-8 " /> < title > 第1题 </ title > < style type = " text/css " > div div { color : blue ; } div { color : red ; } </ style > </ head > < body > < div > < div > < div > 试问这行字体是什么颜色的? </ div > </ div > </ div > </ body > </ html > 第二题 <!DOCTYPE> <html> < head > < title > 第2题 </ title > < style type = " text/css " > #father { color : red ; } p { color : blue ; } </ style > </ head > < body > < div id = " father " > < p >

计算机四级操作系统-3-进程线程模型

本小妞迷上赌 提交于 2020-03-16 18:29:25
第3章 进程线程模型 操作系统中最核心的概念是进程,这是对正在运行程序的一个抽象。操作系统的其他所有 内容都是围绕着进程的概念展开的,所以,透彻地理解进程是非常重要的。即使可以利用的 CPU 只有一个,但是通过进程,可以使系统具有支持并发操作的能力,可将一个单独的 CPU 变换 成多个虚拟的 CPU 。 本章通过大量的细节探究进程,以及进程中的运行实体 —— 线程。 3.1多道程序设计模型 采用多道程序设计可以提高 CPU 的利用率。多道程序设计技术充分发挥了处理器与外围 设备以及外围设备之间的并行工作能力,从而提高处理器和其他各种资源的利用率。下面从程 序的顺序执行、程序的执行环境和程序的并发执行几方面介绍多道程序设计模型。 3.1.1 程序的顺序执行 程序是一个在时间上按严格次序前后相继的操作序列,这些操作是机器指令或高级语言编 写的语句。人们习惯的传统程序设计方法是顺序程序设计,计算机也是以顺序方式工作的 : CPU 一次执行一条指令,对内存一次访问一个字节或字,对外部设备一次传送一个数据块。顺序处理 也是人们习惯的思考方法,为了解决一个复杂的问题,人们把它分解成一些较为简单、易于分析 的小问题,然后逐个解决。也可以把一个复杂的程序划分为若干个程序段,然后按照某种次序逐 个执行这些程序段。 我们把一个具有独立功能的程序独占 CPU 直到得到最终结果的过程称为程序的顺序执行。

css中!important的作用

心已入冬 提交于 2020-03-16 12:04:34
css中!important的作用   {*rule !important}这个css规则当今在网页制作的时候的普及已经非常流行了,以前我对它的理解就停留在‘浏览器是否识别阶段’ 而没有真正去研究过,可是现在发生了变化。众所周知,!important这个规则对Ie6.0,Ie7.0和Firefox能写hack,现在就来讲解 这是什么原理:   *对于Ie系列浏览器都能够识别, firefox 浏览器则不能识别;   !important只有Ie7.0和firefox可以识别,但是Ie6.0不能成功应用.   (1)区别ie与firefox的hack为:border:2px solid #f00;*border:1px solid #f00; (2)区别Ie6.0 与Ie7.0、firefox的hack为:border:1px solid #f00!important;border:2px solid #f00;   在(1)中,之所以把*放在后面是因为ff不识别*而导致只对它设置了一次border;而ie 系列进行了两次border设置后,后一个属性覆盖了前一个属性,故为一像素的边框。    在(2)中,之所以把!important放在第一个border 设置,是因为它把这次border的优先级提高了,即使后面在一次甚至在N次设置border 也无效,但是Ie6.0对这个规则不接受

css中!important的用法

家住魔仙堡 提交于 2020-03-16 12:04:12
 {*rule !important}这个css规则当今在网页制作的时候的普及已经非常流行了,以前我对它的理解就停留在‘浏览器是否识别阶段’ 而没有真正去研究过,可是现在发生了变化。众所周知,!important这个规则对Ie6.0,Ie7.0和Firefox能写hack,现在就来讲解 这是什么原理:   *对于Ie系列浏览器都能够识别, firefox 浏览器则不能识别;   !important只有Ie7.0和firefox可以识别,但是Ie6.0不能成功应用.   (1)区别ie与firefox的hack为:border:2px solid #f00;*border:1px solid #f00; (2)区别Ie6.0 与Ie7.0、firefox的hack为:border:1px solid #f00!important;border:2px solid #f00;   在(1)中,之所以把*放在后面是因为ff不识别*而导致只对它设置了一次border;而ie 系列进行了两次border设置后,后一个属性覆盖了前一个属性,故为一像素的边框。    在(2)中,之所以把!important放在第一个border 设置,是因为它把这次border的优先级提高了,即使后面在一次甚至在N次设置border 也无效,但是Ie6.0对这个规则不接受,而导致它应用了第二次的border

转:css中!important的作用

女生的网名这么多〃 提交于 2020-03-16 12:03:55
 转: http://www.cnblogs.com/guoguo-15/archive/2011/08/24/2151859.html {*rule !important}这个css规则当今在网页制作的时候的普及已经非常流行了,以前我对它的理解就停留在‘浏览器是否识别阶段’ 而没有真正去研究过,可是现在发生了变化。众所周知,!important这个规则对Ie6.0,Ie7.0和Firefox能写hack,现在就来讲解 这是什么原理:   *对于Ie系列浏览器都能够识别, firefox 浏览器则不能识别;   !important只有Ie7.0和firefox可以识别,但是Ie6.0不能成功应用.   (1)区别ie与firefox的hack为:border:2px solid #f00;*border:1px solid #f00; (2)区别Ie6.0 与Ie7.0、firefox的hack为:border:1px solid #f00!important;border:2px solid #f00;   在(1)中,之所以把*放在后面是因为ff不识别*而导致只对它设置了一次border;而ie 系列进行了两次border设置后,后一个属性覆盖了前一个属性,故为一像素的边框。    在(2)中,之所以把!important放在第一个border 设置