director

利用ldirectord实现lvs后端realserver健康状态检查

╄→尐↘猪︶ㄣ 提交于 2019-12-04 08:50:32
ldirectord用来实现LVS负载均衡资源在主、备节点间的故障转移。在首次启动时,ldirectord可以自动创建IPVS表。此外,它还可以监控各RealServer的运行状态,一旦发现某RealServer运行异常时,还可以将其从IPVS表中移除。 ldirectord进程通过向RealServer的RIP发送资源访问请求并通过由RealServer返回的响应信息来确定RealServer的运行状态。在Director上,每一个VIP需要一个单独的ldirectord进程。如果RealServer不能正常响应Director上ldirectord的请求,ldirectord进程将通过ipvsadm命令将此RealServer从IPVS表中移除。而一旦RealServer再次上线,ldirectord会将其重新添加至IPVS表中。 例如,为了监控一组提供web服务的RealServer,ldirectord进程使用HTTP协议请求访问每台RealServer上的某个特定网页。ldirectord进程根据自己的配置文件中事先定义的RealServer正常响应结果来判断当前的返回结果是否正常。比如,在每台web服务器的网站目录中存放一个页面".ldirectord.html",其内容为"Nice",ldirectord进程每隔一段时间就访问一次此网页

03.交互--鼠标,键盘

穿精又带淫゛_ 提交于 2019-12-03 01:45:11
"""交互 一个两层的场景。一个显示当前被按下的键(一次,一个或多个),另一个显示鼠标位置的文本,然后单击以移动文本。 """ import cocos import pyglet from cocos.director import director class KeyDisplay(cocos.layer.Layer): # 允许图层接收Director.window事件 is_event_handler = True def __init__(self): super(KeyDisplay, self).__init__() self.text = cocos.text.Label('', x=100, y=280) # 记录按键set集合 # self.key_pressed = [] self.key_pressed = set() self.update_text() self.add(self.text) def update_text(self): """更新text""" # 转为符号字符串 key_names = [pyglet.window.key.symbol_string(k) for k in self.key_pressed] text = 'Keys:' + ','.join(key_names) self.text.element.text =

负载均衡:Linux Virtual Server(lvs)

匿名 (未验证) 提交于 2019-12-02 21:53:52
负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。这里主要是学习 LVS 并对其进行了详细的总结记录。**** Cluster集群 集群,为解决某个特定问题将多台计算机组合起来形成的单个系统 Linux Cluster 类型: LB : Load Balancing ,负载均衡 HA : High Availiablity ,高可用, SPOF ( single Point Of failure ) MTBF : Mean Time Between Failure 平均无故障时间 MTTR : Mean Time To Restoration ( repair )平均恢复前时间 A = MTBF /( MTBF + MTTR ) ( 0 , 1 ): 99 %, 99.5 %, 99.9 %, 99.99 %, 99.999 % HPC : High - performance computing ,高性能 一、负载均衡LVS基本介绍 LVS 是 Linux Virtual Server 的简称,也就是 Linux 虚拟服务器。这是一个由章文嵩博士发起的一个开源项目,它的官方网是 http : //www.linuxvirtualserver

暂时lvs

喜欢而已 提交于 2019-12-01 05:08:14
负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有nginx、lvs、haproxy,商业的硬件负载均衡设备F5、Netscale。这里主要是学习 LVS 并对其进行了详细的总结记录。 一、负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director Server上,然后它把用户的请求根据设置好的调度算法,智能均衡地分发到后端真正服务器(real server)上。为了避免不同机器上用户请求得到的数据不一样,需要用到了共享存储,这样保证所有用户请求的数据是一样的。 LVS是 Linux Virtual Server 的简称,也就是Linux虚拟服务器。这是一个由章文嵩博士发起的一个开源项目,它的官方网是 http://www.linuxvirtualserver.org 现在 LVS 已经是 Linux 内核标准的一部分。使用 LVS 可以达到的技术目标是:通过 LVS 达到的负载均衡技术和 Linux 操作系统实现一个高性能高可用的 Linux 服务器集群,它具有良好的可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的性能。LVS 是一个实现负载均衡集群的开源软件项目,LVS架构从逻辑上可分为调度层、Server集群层和共享存储。 二、LVS的基本工作原理 1.

浅谈Builder建造者模式

别等时光非礼了梦想. 提交于 2019-11-30 01:16:46
一、前言 Builder建造者模式和模板模式非常像,但是也有区别,模板模式中父类对子类中的实现进行操作,在父类之中进行一件事情的处理,但是在Builder模式之中,父类和子类都不用关心怎么处理,而是用另一个类来完成对这些方法的有机组合,这个类的职责就是‘监工’,规定了到底要怎么样有机的组合这些方法。在监工类(Director)中,将父类组合进去,然后调用父类的操作来抽象的实现一些事情,这就是面向接口(抽象)的妙处,当然这个Builder可以是接口也可以是抽象类,在这里我们使用抽象类。 二、Builder模式代码 Builder抽象类: package designMode.builder; public abstract class Builder { public abstract void makeString(String str); public abstract void makeTitle(String title); public abstract void makeItems(String[] items); public abstract void close(); } HtmlBuilder实现类: package designMode.builder; import java.io.FileWriter; import java.io.IOException;

设计模式:建造者模式

◇◆丶佛笑我妖孽 提交于 2019-11-29 23:35:40
无论是在现实世界中还是在软件系统中,都存在一些复杂的对象,它们拥有多个组成部分,如汽车,它包括车轮、方向盘、发送机等各种部件。而对于大多数用户而言,无须知道这些部件的装配细节,也几乎不会使用单独某个部件,而是使用一辆完整的汽车,可以通过建造者模式对其进行设计与描述, 建造者模式可以将部件和其组装过程分开,一步一步创建一个复杂的对象。用户只需要指定复杂对象的类型就可以得到该对象,而无须知道其内部的具体构造细节。 建造者模式(Builder Pattern) 又名生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。 建造者模式的优点 1、客户端不必知道产品内部组成的细节,将产品本身与产品的创建过程解耦,使得相同的创建过程可以创建不同的产品对象。 2、每一个具体建造者都相对独立,而与其他的具体建造者无关,因此可以很方便地替换具体建造者或增加新的具体建造者,用户使用不同的具体建造者即可得到不同的产品对象 。 3、可以更加精细地控制产品的创建过程 。将复杂产品的创建步骤分解在不同的方法中,使得创建过程更加清晰,也更方便使用程序来控制创建过程。 4、增加新的具体建造者无须修改原有类库的代码,指挥者类针对抽象建造者类编程,系统扩展方便,符合 “开闭原则”。 什么情况不要用建造者模式 1

Builder建造者模式

人走茶凉 提交于 2019-11-29 06:33:18
目标:将一个复杂对象的构建与表示分离,使同样的构建过程可以创建不同的表示。 使用场景:典型的KFC儿童餐包括一个主食,一个辅食,一杯饮料和一个玩具(例如汉堡、炸鸡、可乐和玩具车)。这些在不同的儿童餐中可以是不同的,但是组合成儿童餐的过程是相同的。 优点: 使用建造者模式可以使客户端不必知道产品内部组成的细节。 具体的建造者类之间是相互独立的,对系统的扩展非常有利。 由于具体的建造过程的独立的,因此可以对建造过程逐步细化,而不对其他模块产生影响。 实现: Builder:抽象建造者。他声明为创建一个Product对象的各个部件指定的抽象接口。 ConcreateBuilder:具体建造者。实现抽象接口,构建和装配各个部件。 Director:指挥者。构建一个使用Builder接口的对象。它主要是用于创建一个复杂的对象,它主要有两个作用,一是:隔离了客户与对象的生产过程,二是:负责控制产品对象的生产过程。 Product:产品角色。一个具体的产品对象。 public class BuilderTest { /*** * 抽象的建造者只关心对象有哪些步骤, * 具体的建造者只关心如何实现每一个具体的步骤, * 指挥者只关心构建的顺序, * 三方各司其职,很好的隔离了构建对象的步骤和顺序, * 一但指挥者和建造者确定了,开发者只需要关心如何实现和更新具体步骤就行了, */ public

LVS介绍及相关配置

…衆ロ難τιáo~ 提交于 2019-11-29 03:13:38
一. LVS概述 LVS是一种工作在四层协议上的负载均衡解决方案,在1998年5月由章文嵩博士创建。目前广泛使用的负载均衡模型主要有: 1)工作在四层协议(LVS):主要用于四层协议上的负载均衡,性能相较于工作在七层的协议更好。但是协议栈是工作在传输层,对于传输层以上的高级特性支持不足。 2)工作在七层协议(Nginx、HAproxy):主要解决七层协议上的负载均衡(Nginx也可以工作在四层,需要在编译的时候添加--with-streams参数),更加适合于HTTP服务、邮件服务等高层协议的服务。相较于四层协议负载均衡,牺牲了少量的性能,提供了更有针对性的服务。 二. LVS工作模式 2.1.两段式工作原理: LVS工作原理和iptables的工作原理相似,他们都具有一个位于内核空间的框架(Netfilter、ipvs)+用户空间的管理工具(iptables、ipvsadm)。用户空间的管理工具提供了我们操作规则的入口,我们通过配置相关的规则到内核空间的框架中,使之生效来实现相对应的功能。 LVS模型涉及到的设备主要可以分成两类:一类是Director调度器(用来接收客户端的请求,并通过IPVS规则及算法转发到后端真正提供服务的设备),另一类是RealServer(即后端真正提供服务的设备)。LVS安装在Director调度器上

LVS--4种工作模式场景及优势

≡放荡痞女 提交于 2019-11-28 13:05:15
一、NAT lvs的nat集群会将请求报文中的目标地址和目标端口修改为选定到的真实服务器的Ip和端口,从而实现报文的转发。 lvs-nat集群应用时由以下几点注意实现: 1.RIP和DIP必须在同一个Ip网络中,且应使用私网地址,RS的网关要指向DIP; 2.请求报文和响应报文必须经由Director转发; 3.支持端口映射,可修改请求报文的目标端口; 4.director必须为Linux系统,RS可以为任意系统; 此集群类型的优点在于RS可支持任意TCP/IP操作系统,且仅需一个合法的公网Ip即可部署。但是其缺点为当集群扩展到一定程度后,Director容易成为整个集群系统的瓶颈。 上图为lvs-nat的常见的使用场景,其工作流程如下: 1、客户端的请求发往Director 的VIP。 2、Director发到客户端请求报文后,将报文中的目标Ip修改为集群中的选定的RIP,目标端口80也修改成8080,然后将请求报文发往RS。 3、当RS收到请求报文后,在检查报文的目标IP为自己的RIP后,会接受报文并进行处理响应。响应的源Ip为RIP,目标IP为CIP,端口不变。 4、Director收到RS的响应报文,修改响应报文的源IP为VIP,端口为80,然后转发给客户端。 5、客户端接受响应报文,其源IP为VIP,端口为80,整个过程对于客户端来说是透明无感知的。 二、DR lvs