节点服务器

haproxy+nginx

一曲冷凌霜 提交于 2019-11-30 04:12:20
Haproxy搭建web群集 常见的Web集群调度器 目前常见的Web集群调度器分为软件和硬件,软件通常使用开源的LVS,Haproxy,Nginx,硬件一般使用比较多的是F5,也有很多人使用国内的一些 产品,如梭子,绿盟等 Haproxy应用分析 LVS在企业应用中负载能力很强,但存在不足 LVS不支持正则处理,不能实现动静分离 对于大型网站,LVS的实施配置复杂,维护成本相对较高 Haproxy是一款可提供高可用性,负载均衡,及基于TCP和HTTP应用的代理软件 特别适用于负载特别大的Web站点 运行在当前的硬件上可支持数以万计的并发连接连接请求 Haproxy的三种算法 RR (Round Robin) RR算法是最简单最常用的一种算法,轮询调度 举例理解 有三个节点A,B,C第一个用户访问会被指派到节点A,第二个用户访问会被指派到节点B,第三个用户访问会被指派到节点 第四个用户访问继续指派到节点A,轮询分配访问请求实现负载均衡 LC (Least Connections ) LC算法即最小连接算法,根据后端的节点连接数大小动态分配请求 举例理解 有三个节点A,B,C,各节点的连接数A:4,B:5,C:6,此时如果有第一个用户连接请求,会被指派到A上,连接数为A:5,B:5,C:6 第二个用户请求会继续分配到A上,连接数变为A:6,B:5,C:6,再有新的请求会分配到B

高级PHP面试总结

故事扮演 提交于 2019-11-30 02:41:47
1、给你四个坐标点,判断它们能不能组成一个矩形,如判断([0,0],[0,1],[1,1],[1,0])能组成一个矩形。 勾股定理,矩形是对角线相等的四边形。只要任意三点不在一条直线上,任选一点,求这一点到另外三点的长度的平方,两个短的之和如果等于最长的,那么这就是矩形。 2、写一段代码判断单向链表中有没有形成环,如果形成环,请找出环的入口处,即P点 /* *单链表的结点类 */ class LNode{ //为了简化访问单链表,结点中的数据项的访问权限都设为public public int data; public LNode next; } class LinkListUtli { //当单链表中没有环时返回null,有环时返回环的入口结点 public static LNode searchEntranceNode(LNode L) { LNode slow=L;//p表示从头结点开始每次往后走一步的指针 LNode fast=L;//q表示从头结点开始每次往后走两步的指针 while(fast !=null && fast.next !=null) { if(slow==fast) break;//p与q相等,单链表有环 slow=slow.next; fast=fast.next.next; } if(fast==null || fast.next==null)

zookeeper入门

谁说我不能喝 提交于 2019-11-30 01:20:50
zookeeper 简介 Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。 zookeeper 单机使用 访问http://zookeeper.apache.org/releases.html 并下载最新版本的ZooKeeper,这里我使用的版本是3.4.8。 下载完成后解压缩。进入conf目录,创建zoo.cfg配置文件(可复制已有的zoo_sample.cfg修改)。 tickTime=2000 initLimit=10 syncLimit=5 dataDir=/tmp/zookeeper clientPort=2181 说明一下几个配置项的意义(initLimit和syncLimit暂时先不管,后面有说明): tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。 dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。 clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口

Redis常见面试题

做~自己de王妃 提交于 2019-11-29 23:26:55
redis介绍   Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API的非关系型数据库。 传统数据库遵循 ACID 规则。而 Nosql(Not Only SQL 的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称) 一般为分布式而分布式一般遵循 CAP 定理。 Github 源码:https://github.com/antirez/redis Redis 官网:https://redis.io/ Redis支持的数据类型? String字符串: 格式: set key value string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。 string类型是Redis最基本的数据类型,一个键最大能存储512MB。 Hash(哈希) 格式: hmset name key1 value1 key2 value2 Redis hash 是一个键值(key=>value)对集合。 Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。 List(列表) Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边

Haproxy搭建web群集

跟風遠走 提交于 2019-11-29 22:07:14
Haproxy搭建web群集 常见的Web集群调度器 目前常见的Web集群调度器分为软件和硬件,软件通常使用开源的LVS,Haproxy,Nginx,硬件一般使用比较多的是F5,也有很多人使用国内的一些 产品,如梭子,绿盟等 Haproxy应用分析 LVS在企业应用中负载能力很强,但存在不足 LVS不支持正则处理,不能实现动静分离 对于大型网站,LVS的实施配置复杂,维护成本相对较高 Haproxy是一款可提供高可用性,负载均衡,及基于TCP和HTTP应用的代理软件 特别适用于负载特别大的Web站点 运行在当前的硬件上可支持数以万计的并发连接连接请求 Haproxy的三种算法 RR (Round Robin) RR算法是最简单最常用的一种算法,轮询调度 举例理解 有三个节点A,B,C第一个用户访问会被指派到节点A,第二个用户访问会被指派到节点B,第三个用户访问会被指派到节点 第四个用户访问继续指派到节点A,轮询分配访问请求实现负载均衡 LC (Least Connections ) LC算法即最小连接算法,根据后端的节点连接数大小动态分配请求 举例理解 有三个节点A,B,C,各节点的连接数A:4,B:5,C:6,此时如果有第一个用户连接请求,会被指派到A上,连接数为A:5,B:5,C:6 第二个用户请求会继续分配到A上,连接数变为A:6,B:5,C:6,再有新的请求会分配到B

zookeeper的下载安装和选举机制(zookeeper一)

做~自己de王妃 提交于 2019-11-29 21:41:55
1. 简要概述 Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的框架。 Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架它负责存储和管理大家都关心的数据,然后接受观察者的注册,一但这些数据的状态发生变化, Zookeeper就将负责通知已经在 Zookeeper上注册的那些观察者做出相应的反应,从而实现集群中类似 Master/ Slave管理模式 Zookeeper=文件系统+通知机制 2. 特点 Zookeeper:一个领导者( leader),多个跟随者( follower)组成的集群 Leader负责进行投票的发起和决议,更新系统状态 Follower用于接收客户请求并向客户端返回结果,在选举 Leader过程中参与投票 4)集群中只要有半数以上节点存活, Zookeeper集群就能正常服务。 5)全局数据一致:每个 serer保存一份相同的数据副本, client无论连接到哪个 serer,数据都是一致的。 6)更新请求顺序进行,来自同一个 client的更新请求按其发送顺序依次执行 7)数据更新原子性,一次数据更新要么成功,要么失敗。 8)实时性,在一定时间范围内, client能读到最新数据。 3. 数据结构 Zookeeper数据模型的结枃与Unix文件系统很类似,整体上可以看作是一裸树,每个节点叫做一个

Redis实战(四) 集群机制

冷暖自知 提交于 2019-11-29 19:23:35
文章目录 Replication(主从复制) 1.1. 配置主服务器 1.2. 配置从服务器 1.3. 测试 Sentinel(哨兵) 2.1. 配置Sentinel 2.2. 启动 Sentinel 2.3. 测试 Twemproxy Codis Redis 3.0集群 5.1. 环境搭建 5.2. 创建集群 微信公众号 加入全国服务端技术社群「后端圈」(点击加入) <<< 下面介绍Redis的集群方案。 Replication(主从复制) Redis的replication机制允许slave从master那里通过网络传输拷贝到完整的数据备份,从而达到主从机制。为了实现主从复制,我们准备三个redis服务,依次命名为master,slave1,slave2。 配置主服务器 为了测试效果,我们先修改主服务器的配置文件redis.conf的端口信息 port 6300 配置从服务器 replication相关的配置比较简单,只需要把下面一行加到slave的配置文件中。你只需要把ip地址和端口号改一下。 slaveof 192.168.1.1 6379 我们先修改从服务器1的配置文件redis.conf的端口信息和从服务器配置。 port 6301 slaveof 127.0.0.1 6300 我们再修改从服务器2的配置文件redis.conf的端口信息和从服务器配置。 port

ZooKeeper架构原理你学会了吗?

烂漫一生 提交于 2019-11-29 18:27:09
Zookeeper是分布式一致性问题的工业解决方案,是Apache Hadoop下解决分布式一致性的一个组件,后被分离出来成为Apache的顶级项目。 工程来源:是雅虎公司内部项目,据说雅虎内部很多项目都是以动物命名,这个动物管理员的名字起的很是形象。 被开源出来后得到开源社区的快速推进,服务端Java语言实现,棒,git有3000+的star: https://github.com/apache/zookeeper zookeeper集群结构 集群的角色,比较典型的是Master/Slave(主备模式),zk中的概念跟这个不一样,包含Leader、Follower、Observer三个角色,leader提供读和写的能力,follower只对外提供读的能力。 会话(session) 客户端跟服务端交互,是先与服务端建立一个TCP长连接,会话开始,通过心跳检测与服务端保持会话有效,向服务端发送请求和接收响应。 zk将所有的数据都加载在内存一份,同时有事务日志文件(持久化文件),服务端会定时dump快照数据,重启机器的时候会根据快照和事务日志恢复内存数据库的数据,这跟redis的AOF和RDB概念类似。 zookeeper上的数据结构 zk上的数据的结构跟linux文件系统很像,是个树状结构 节点(node)上的信息字段 节点类型包括: 持久型节点 顺序持久型节点 临时节点

一致性Hash介绍及使用场景

此生再无相见时 提交于 2019-11-29 17:19:24
转载自: https://blog.csdn.net/losetowin/article/details/53743135 适当做了一些修改,最后加了自己的一些理解 1、项目场景 (1) 单个节点的缓存容量达到上限,无法继续单点增加内存,如何解决? (2) 单个节点 支撑的 QPS (每秒查询率)达到上限, 如何解决 ? 2、 初步方案 增加 N 个 缓存节点 ,为了保证 缓存数据的均匀 ,一般情况会采用对 key值hash ,然后 取模 的方式,然后根据结果,确认数据落到哪台节点上:如下: hash(key)%N 很好,这个的确解决了上面的问题,实现了 初步的分布式缓存 , 数据均匀分散 到了各个节点上, 流量请求也均匀的分散 到了各个节点。 (1) 但是如果出现以下情况,会带来什么问题? 某台服务器 突然宕机 。缓存服务器从 N 变为 N-1 台。 缓存容量 达到 上限 或者 请求处理达到上限 ,需要 增加缓存服务器 ,假定增加1台,则缓存服务器从 N 变为 N+1 上面的情况带来的问题: 增加 或者 删除 缓存服务器的时候,意味着 大部分的缓存都会失效 。这个是 比较致命 的一点,缓存失效,如果 业务为缓存不命中 ,查询DB的话,会导致 一瞬间DB的压力陡增 。可能会 导致整个服务 不可用。 (2) 换种描述方式,我们需要解决怎么样的问题?或者需求是怎样的? 增删 机器时,

Hadoop系列之九:Hadoop集群伪分布式模式的实现详解

倾然丶 夕夏残阳落幕 提交于 2019-11-29 17:17:22
1、Hadoop依赖软件 Hadoop基于Java语言开发,因此其运行严重依赖于JDK(Java Development Kit),并且Hadoop的许多功能依赖于Java 6及以后的版本才提供的特性。Hadoop可以良好地运行于经过测试的各JDK,如Sun JDK、OpenJDK、Oracle JRockit、IBM JDK各自实现的某些版本。但迄今为止,HotSpot JVM仍是性能最好且与Hadoop搭配运行最稳定的实现。http://wiki.apache.org/hadoop/HadoopJavaVersions页面给出了Hadoop目前几大著名企业实现的Hadoop集群中所使用的JDK版本,Hortonworks已经为 JDK 1.6.0_31 在RHEL5/CentOS5、RHEL6/CentOS6、SLES11运行Hadoop、HBase、Pig, Hive、HCatalog、Oozie、Sqoop等进行了认证。建议参考它们的测试结果进行选择。 在选择安装版本,Sun JDK有几种不同格式的安装包,其使用及功能上并没有区别;但如果在安装Hadoop使用CDH的RPM格式的包的话,它们依赖于RPM格式的JDK,不过,ASF提供的RPM包并没有定义任何外在的依赖关系,因此,其可以使用基于任何方式安装配置的JDK,但这也意味着得手动解决依赖关系。无论如何