负载均衡

数据库水平切分的实现原理(分库,分表,主从,集群,负载均衡)

与世无争的帅哥 提交于 2019-12-01 03:34:41
第1章 引言 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的 互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层 已经成为架构研发人员首选的方式。水平切分数据库,可以降低单台机器的负载,同时最大限度的降低了了宕机造成的损失。通过负载均衡策略,有效的降低了单台 机器的访问负载,降低了宕机的可能性;通过集群方案,解决了数据库宕机带来的单点数据库不能访问的问题;通过读写分离策略更是最大限度了提高了应用中读取 (Read)数据的速度和并发量。目前国内的大型互联网应用中,大量的采用了这样的数据切分方案,Taobao,Alibaba,Tencent,它们大 都实现了自己的分布式数据访问层(DDAL)。以实现方式和实现的层次来划分,大概分为两个层次(Java应用为例):JDBC层的封装,ORM框架层的 实现。就JDBC层的直接封装而言,现在国内发展较好的一个项目是被称作“变形虫”(Amoeba)的项目,由阿里集团的研究院开发,现在仍然处于测试阶 段(beta版),其运行效率和生产时效性有待考究。就ORM框架层的实现而言,比如Taobao的基于ibatis和Spring的的分布式数据访问 层,已有多年的应用,运行效率和生产实效性得到了开发人员和用户的肯定

小记---------FLUM负载均衡配置

匆匆过客 提交于 2019-12-01 01:42:19
sink group允许组织多个sink到一个实体上,sink processors能够提供在组内所有sink之间实现负载均衡的能力,而且在失败的情况下能够进行故障转移从一个sink到另一个sink,简单的说就是一个source对应一个,即多个sink,这里考虑的是可靠性与性能,即故障转移与负载均衡的设置 Property Name Default Description sinks - 以空格分割sink列表 processor.type default 组件类型名称,需要是默认值,故障转移或负载平衡 Processors类型:default(默认:无)、failover(故障转移)和load_balance(负载均衡),目前自定义processors还不支持 例: a1.sinkgroups=g1 a1.sinkgroups.g1.sinks=k1 k2 a1.sinkgroups.g1.processor.type=load_balance Default Sink Processor 接收单一的sink,不强制用户为sink创建processor。就是原始的写法 Failover Sink Processor(故障转移) 会通过配置维护一个优先级列表,保证每一个有效的事件都会被处理,故障转移的工作原理是将连续失败sink分配到一个池中,被分配一个冷冻期,在冷冻期内

分布式框架-Dubbox介绍

不羁的心 提交于 2019-12-01 00:26:02
1. Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架 其核心部分包含: 1. 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。 2. 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。3. 自动发现: 基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。 2. Dubbo能做什么? 1.透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。 2.软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点。 3. 服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。 Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可

LVS负载均衡群集篇

六月ゝ 毕业季﹏ 提交于 2019-12-01 00:22:37
群集应用概述 群集的含义 1.Cluster,集群、群集 2.由多台主机构成,但对外只表现为一个整体 在互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器力不从心 解决方法 1.使用价格昂贵的小型机、大型机 2.使用普通服务器构建服务群集 企业群集分类 根据群集所针对的目标差异,可分为三种类型: 1.负载均衡群集(轮询,最小连接的加权重) 2.高可用群集(访问的速度,可靠性) 3.高性能运算群集(并发处理任务) 负载均衡群集(Load Balance Cluster) 1.以提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、负载(LB) 的整体性能 2.LB的负载分配依赖于主节点的分流算法 高可用群集(High Availability Cluster) 1.以提高应用系统的可靠性、尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA) 的容错效果 2.HA的工作方式包括双工和主从两种模式 高性能运算群集(High Performance Computer Cluster) 1.以提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC)能力 2.高性能运算群集的高性能依赖于"分布式运算”、“并行计算” ,通过专用硬件和软件将多个服务器的CPU

Kubernetes上的负载均衡详解

。_饼干妹妹 提交于 2019-11-30 23:44:57
如果您的应用程序是面向大量用户、会吸引大量流量,那么一个不变的目标一定是在高效满足用户需求的同时、不让用户感知到任何类似于“服务器繁忙!”的情况。这一诉求的典型解决方案是横向扩展部署,以便有多个应用程序容器可以为用户请求提供服务。但是,这种技术需要可靠的路由功能,需要可以有效地在多个服务器之间分配流量。本文分享的内容就是要解决负载均衡解决方案的问题。 Rancher 1.6是Docker和Kubernetes的容器编排平台,为负载均衡提供了功能丰富的支持。在Rancher 1.6中,用户可以通过使用开箱即用的HAProxy负载均衡器,来提供基于HTTP / HTTPS / TCP主机名/路径的路由。 而在本文中,我们将探讨如何在原生使用Kubernetes进行编排的Rancher 2.0平台上实现这些流行的负载均衡技术。 Rancher 2.0 负载均衡功能 通过Rancher 2.0,用户可以开箱即用地使用由NGINX Ingress Controller支持的原生Kubernetes Ingress功能进行7层负载均衡。因为Kubernetes Ingress仅支持HTTP和HTTPS协议,所以目前如果您使用的是Ingress支持,那么负载均衡仅限于上述这两种协议。 对于TCP协议,Rancher 2.0支持在部署Kubernetes集群的云上配置第4层TCP负载均衡器

SpringCloud微服务学习笔记

旧街凉风 提交于 2019-11-30 23:34:15
SpringCloud微服务学习笔记 项目地址: https://github.com/taoweidong/Micro-service-learning 单体架构(Monolithic架构) Monolithic比较适合小项目 单体架构优点: 开发简单直接,集中式管理, 基本不会重复开发功能都在本地,没有分布式的管理开销和调用开销。 单体架构缺点: 开发效率低:所有的开发在一个项目改代码,递交代码相互等待,代码冲突不断 代码维护难:代码功能耦合在一起,新人不知道何从下手 部署不灵活:构建时间长,任何小修改必须重新构建整个项目,这个过程往往很长 稳定性不高:一个微不足道的小问题,可以导致整个应用挂掉 扩展性不够:无法满足高并发情况下的业务需求 微服务架构 ​ 微服务是指开发一个单个小型的但有业务功能的服务,每个服务都有自己的处理和轻量通讯机制,可以部署在单个或多个服务器上。微服务也指一种种松耦合的、有一定的有界上下文的面向服务架构。也就是说,如果每个服务都要同时修改,那么它们就不是微服务,因为它们紧耦合在一起;如果你需要掌握一个服务太多的上下文场景使用条件,那么它就是一个有上下文边界的服务,这个定义来自DDD领域驱动设计。 ​ 微服务架构模式(MicroservicesArchitecture Pattern)的目的是将大型的、复杂的、长期运行的应用程序构建为一组相互配合的服务

linux Nginx负载均衡

不想你离开。 提交于 2019-11-30 21:53:26
原文章: https://www.cnblogs.com/taiyonghai/p/6728707.html 一、Nginx简介 Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度一下有很多,下面直接进入安装步骤 二、Nginx安装 1、下载Nginx及相关组件 Linux系统是Centos 6.5 64位,我直接切换到root用户下安装 进入用户目录下载程序 下载相关组件 [root@localhost src]# wget http://nginx.org/download/nginx-1.10.2.tar.gz 省略安装内容... [root@localhost src]# wget http://www.openssl.org/source/openssl-fips-2.0.10.tar.gz 省略安装内容... [root@localhost src]# wget http://zlib.net/zlib-1.2.11.tar.gz 省略安装内容... [root@localhost src]# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz 省略安装内容... 安装c++编译环境,如已安装可略过

基于Haproxy构建负载均衡集群

痴心易碎 提交于 2019-11-30 21:14:09
1、HAPROXY简介 HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种负载均衡解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露到网络上。 官网:http://www.haproxy.com 2、HAProxy的特点是: 1、HAProxy支持虚拟主机。 2、HAProxy的优点能够补充Nginx的一些缺点,比如 支持Session的保持,Cookie的引导;同时支持通过获取指定的url来检测后端服务器的状态。 3、HAProxy跟LVS类似,本身就只是一款负载均衡软件;单纯从效率上来讲HAProxy会比Nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的。 4、HAProxy 支持TCP协议的负载均衡转发 ,可以对MySQL读进行负载均衡,对后端的MySQL节点进行检测和负载均衡,可以用LVS+Keepalived对MySQL主从做负载均衡。 5、HAProxy负载均衡策略非常多,HAProxy的负载均衡算法现在具体有如下8种:   ① roundrobin,表示简单的轮询,这个不多说