director

LVS结合keepalived配置测试

£可爱£侵袭症+ 提交于 2019-12-24 03:01:32
LVS/DR + keepalived配置 注意:前面虽然我们已经配置过一些操作,但是下面我们使用keepaliave操作和之前的操作是有些冲突的,所以若是之前配置过DR,请首先做如下操作: 三台机器: director(eth010.222.138.200, vip eth0:1: 10.222.138.10) real server1(eth0 rip: 10.222. 138.201, vip lo:0: 10.222.138.10) real server2(eth0 rip: 10.222.138.202, vip lo:0: 10.222.138.10) dr上执行: ipvsadm -C ifconfig eth0:1 down 前面的lvs虽然已经配置成功也实现了负载均衡,但是我们测试的时候发现,当某台real server把httpd进程停掉,那么director照样会把请求转发过去,这样就造成了某些请求不正常。所以需要有一种机制用来检测real server的状态,这就是keepalived。它的作用除了可以检测rs状态外,还可以检测备用director的状态,也就是说keepalived可以实现ha集群的功能,当然了也需要一台 备用director. 备用director也需要安装一下keepalived软件 yum install -y keepalived

大话设计模式--建造者模式 Builder -- C++实现实例

点点圈 提交于 2019-12-23 21:33:37
1. 建造者模式,将一个复杂对象的构建与它的表示分离, 使得同样的构建过程可以创建不同的表示。 用户只需要指定需要建造的类型就可以得到他们,而具体建造的过程和细节就不需要知道了。 关键类Director,用它来控制建造过程,用它来隔离用户与建造过程的关联。 适用场合主要是用于创建一些复杂的对象, 这些对象内部的构建间的建造顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。 在创建复杂对象的算法应该独立于该对象的组成部分以及他们的装配方式适用的模式。 建造者模式的好处就是使得建造代码与表示代码分离,由于建造者隐藏了该产品是如何组装的,所以若需要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以了。 实例骨架: product.h product.cpp #ifndef PRODUCT_H #define PRODUCT_H #include <iostream> #include <list> #include <string> using namespace std; class Product { public: Product(); void addPart(string part); void show(); private: list<string> *parts; }; #endif // PRODUCT_H #include "product.h"

LVS负载均衡

与世无争的帅哥 提交于 2019-12-21 03:18:15
一、负载均衡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、当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间 2、PREROUTING链首先会接收到用户请求,判断目标IP确定是本机IP,将数据包发往INPUT链 3、IPVS是工作在INPUT链上的

设计模式之建造者模式(Builder)

孤街醉人 提交于 2019-12-17 06:55:57
一个人活到70岁以上,都会经历这样的几个阶段:婴儿,少年,青年,中年,老年。并且每个人在各个阶段肯定是不一样的呀,我觉得可以说世界上不存在两个人在人生的这5个阶段的生活完全一样,但是活到70岁以上的人,都经历了这几个阶段是肯定的。实际上这是一个比较经典的建造者模式的例子了。 1.初识建造者模式 建造者模式实际上是常用的设计模式。顾名思义,builder的意思是建造者或者建筑工人,谈到建造自然会想到楼房。楼房是千差万别的,楼房的外形、层数、内部房间的数量、房间的装饰等等都不一样,但是对于建造者来说,抽象出来的建筑流程是确定的,往往建筑一座楼房包括下面的步骤:(1)打桩,建立基础(2)建立框架等。建造者模式的本质和建造楼房是一致的:即流程不变,但每个流程实现的具体细节则是经常变化的。建造者模式的好处就是保证了流程不会变化,流程即不会增加、也不会遗漏或者产生流程次序错误,这是非常重要的。我们熟知的楼歪歪事件,官方的解释就是由于先建立楼房后,再建设停车场造成的,这是典型的建造次序错乱。(看来这些人儿不知道建造者模式啊!!!) 我生活的地方有一个菜叫“锅包肉”。基本每个餐馆都有,但是每个餐馆的味道都不一样,原因是什么呢?因为这道菜的作法没有形成标准呗!每个人的作法都不一样,所以味道就不一样了。这实际上通过“建造者模式”让每个馆子的“锅包肉”都一样。同样的KFC做出来的东西

设计模式-构建者模式

南笙酒味 提交于 2019-12-14 23:48:02
**建造者(Builder)模式的定义:** 指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。 该模式的主要 **优点** 如下: 各个具体的建造者相互独立,有利于系统的扩展。 客户端不必知道产品内部组成的细节,便于控制细节风险。 其 **缺点** 如下: 产品的组成部分必须相同,这限制了其使用范围。 如果产品的内部变化复杂,该模式会增加很多的建造者类。 **建造者模式注重零部件的组装过程**  构建者模式一般用在构建流程或者组成部件固定的场合,将这些部件分开构建成为组件对象,再将这些组件对象整合成为目标对象。  最佳实例就是组装台式电脑的情况,我们可以分别购买主板、CPU、内存、硬盘等部件,然后将这些部件组装在一起就形成了一台完整的电脑。 在编写代码之前:举一个例子理解一下建造者模式。 ``` 我们要建一个厂,要选地址,买材料,设计。很繁琐。 这个时候我们可以找一个包工队,我们只需要把需求告诉包工队,其他的事情,包工队来做。 简单的说,我们给“钱”,其他的一切,包工队来做。 ``` 用通俗的话来说,建造者模式的优势就是 **把对象创建细节隐藏,使得使用者直接调用方法即可拿到对象

LVS工作原理及集群类型

雨燕双飞 提交于 2019-12-10 09:47:15
Cluster概念 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,高性能 www.top500.org 分布式系统: 分布式存储: Ceph,GlusterFS,FastDFS,MogileFS 分布式计算:hadoop,Spark ① 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其 任务调度 则是集群系统中的核心技术。 ② 集群是一组 相互独立的、通过高速网络互联 的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。 ③ 集群组成后

设计模式之建造者模式

て烟熏妆下的殇ゞ 提交于 2019-12-10 03:51:44
2018-09-18 22:19:07 依赖倒转原则   高层模块不依赖低层模块,二者都不依赖细节。抽象不应该依赖细节,细节应该依赖于抽象。这句话什么意思呢,就是说你有一个虚基类(抽象),这个基类每一个方法都有明确的含义,稳定的传参形式和返回类型。不管子类如何实现这些方法(细节),只要完成了基类要求的功能即可。 建造者模式   如果,你需要将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示时,此时就需要建造者模式(Builder)又叫做生成器模式。建造者模式可以将一个产品内部表象与产品的生成过程分隔开来,从而可以使一个建造过程具有不同的内部表象的产品对象。如果我们用了建造者模式,那么用户就只需要指定需要建造的类型就可以得到它们,而具体的建造过程和细节就不需要知道了。   建造者(Builder)模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。   使用建造者流程:1.抽象出一个稳定的建造流程(就是一个包含一些列方法的虚基类咯);           2.当需要构建一个符合这个建造流程的对象时,我们只需要从虚基类中派生出一个子类,子类按照自己的特殊要求去实现基类的方法即可。           3.构建指挥者(Director)类,这在建造者模式中是非常重要的一个类,用它来控制建造流程,也用它来隔离用户与建造过程的关联

LVS简介及使用

廉价感情. 提交于 2019-12-09 21:49:10
一.LVS是什么? LVS的英文全称是Linux Virtual Server,即Linux虚拟服务器。它是我们国家的章文嵩博士的一个开源项目。在linux内存2.6中,它已经成为内核的一部分,在此之前的内核版本则需要重新编译内核。 二.LVS能干什么? LVS主要用于多服务器的负载均衡。它工作在网络层,可以实现高性能,高可用的服务器集群技术。它廉价,可把许多低性能的服务器组合在一起形成一个超级服务器。它易用,配置非常简单,且有多种负载均衡的方法。它稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果。另外可扩展性也非常好。 三.工作原理 如上图,LVS可分为三部分: 1.Load Balancer:这是LVS的核心部分,它好比我们网站MVC模型的Controller。它负责将客户的请求按照一定的算法分发到下一层不同的服务器进行处理,自己本身不做具体业务的处理。另外该层还可用监控下一层的状态,如果下一层的某台服务器不能正常工作了,它会自动把其剔除,恢复后又可用加上。该层由一台或者几台Director Server组成。 2.Server Array:该层负责具体业务。可有WEB Server、mail Server、FTP Server、DNS Server等组成。注意,其实上层的Director Server也可以当Real server用的。 3.Shared

十一、建造者模式

巧了我就是萌 提交于 2019-12-05 14:48:57
建造者模式 模式的定义与特点 建造者(Builder)模式的定义:指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。 该模式的主要优点如下: 各个具体的建造者相互独立,有利于系统的扩展。 客户端不必知道产品内部组成的细节,便于控制细节风险。 其缺点如下: 产品的组成部分必须相同,这限制了其使用范围。 如果产品的内部变化复杂,该模式会增加很多的建造者类。 建造者(Builder)模式和工厂模式的关注点不同:建造者模式注重零部件的组装过程,而工厂方法模式更注重零部件的创建过程,但两者可以结合使用。 模式的结构与实现 建造者(Builder)模式由产品、抽象建造者、具体建造者、指挥者等 4 个要素构成,现在我们来分析其基本结构和实现方法。 1. 模式的结构 建造者(Builder)模式的主要角色如下。 产品角色(Product):它是包含多个组成部件的复杂对象,由具体建造者来创建其各个滅部件。 抽象建造者(Builder):它是一个包含创建产品各个子部件的抽象方法的接口,通常还包含一个返回复杂产品的方法 getResult()。 具体建造者(Concrete Builder):实现 Builder

Openstack部署过程

我的未来我决定 提交于 2019-12-05 04:53:24
一、director 安装准备 [root@localhost ~]# useradd stack [root@localhost ~]# passwd stack Changing password for user stack. New password: BAD PASSWORD: The password is shorter than 8 characters Retype new password: passwd: all authentication tokens updated successfully. [root@localhost ~]# echo "stack ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/stack stack ALL=(root) NOPASSWD:ALL [root@localhost ~]# chmod 0440 /etc/sudoers.d/stack [root@localhost ~]# su - stack [stack@localhost ~]$ pwd /home/stack [stack@localhost ~]$ mkdir ~/images [stack@localhost ~]$ mkdir ~/templates [stack@localhost ~]$ ls