负载均衡

Kafka、RabbitMQ、RocketMQ、ActiveMQ

心已入冬 提交于 2019-12-15 05:27:06
一、资料文档 Kafka:中。有kafka作者自己写的书,网上资料也有一些。rabbitmq:多。有一些不错的书,网上资料多。zeromq:少。没有专门写zeromq的书,网上的资料多是一些代码的实现和简单介绍。rocketmq:少。没有专门写rocketmq的书,网上的资料良莠不齐,官方文档很简洁,但是对技术细节没有过多的描述。activemq:多。没有专门写activemq的书,网上资料多。 二、开发语言 Kafka:Scala rabbitmq:Erlang zeromq:c rocketmq:java activemq:java 三、支持的协议 Kafka:自己定义的一套…(基于TCP) rabbitmq:AMQP zeromq:TCP、UDP rocketmq:自己定义的一套… activemq:OpenWire、STOMP、REST、XMPP、AMQP 四、消息存储 Kafka:内存、磁盘、数据库。支持大量堆积。 kafka的最小存储单元是分区,一个topic包含多个分区,kafka创建主题时,这些分区会被分配在多个服务器上,通常一个broker一台服务器。分区首领会均匀地分布在不同的服务器上,分区副本也会均匀的分布在不同的服务器上,确保负载均衡和高可用性,当新的broker加入集群的时候,部分副本会被移动到新的broker上。根据配置文件中的目录清单

多核技术导论之操作系统对多核处理器的支持方法

孤街浪徒 提交于 2019-12-14 07:06:38
1.4 操作系统对多核处理器的支持方法 1.4.1 调度与中断 随着多核处理器的发展,对软件开发有非常大的影响,而且核心的瓶颈在软件上。软件开发在多核环境下的核心是多线程开发。这个多线程不仅代表了软件实现上多线程,要求在硬件上也采用多线程技术。可以说多核提供了可以大幅提升性能的机制,多核软件就是可以真正利用这一特点的策略。只有与多核硬件相适应的软件,才能真正地发挥多核的性能。多核对软件的要求包括对多核操作系统的要求和对应用软件的要求。 多核操作系统的关注点在于进程的分配和调度。进程的分配将进程分配到合理的物理核上,因为不同的核在共享性和历史运行情况都是不同的。有的物理核能够共享二级cache,而有的却是独立的。如果将有数据共享的进程分配给有共享二级cache的核上,将大大提升性能;反之,就有可能影响性能。进程调度会涉及到比较广泛的问题,比如负载均衡、实时性等。 面向多核体系结构的操作系统调度目前多核软件的一个热点,其中研究的热点主要有下面几方面:程序的并行研究;多进程的时间相关性研究;任务的分配与调度;缓存的错误共享;一致性访问研究;进程间通信;多处理器核内部资源竞争等等。这些探讨相互独立又相互依赖。考虑一个系统的性能时必须将其中的几点同时加以考虑,有时候对一些点的优化会造成另一些点的性能下降,需要用程序进行性能优化评测,所以合适的多核系统软件方案正在形成过程中。

Nginx+Tomcat负载均衡实战

纵然是瞬间 提交于 2019-12-14 06:40:50
Nginx+Tomcat负载均衡群集+反向代理 实验环境 Nginx服务器(192.168.13.177) Tomcat1服务器(192.168.13.151) Tomcat2服务器 (192.168.13.178) client测试机 一,负载均衡 1,在Tomcat1,Tomcat2上安装Tomcat服务 [ root @tomcat1 ~ ] # systemctl stop firewalld.service ##关闭防火墙 [ root @tomcat1 ~ ] # mkdir /abc [ root @tomcat1 ~ ] # mount.cifs //192.168.100.3/LNMP-C7 /abc/ [ root @tomcat1 ~ ] # cd /abc/tomcat/ [ root @tomcat1 tomcat ] # tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/ ##解压JDK [ root @tomcat1 tomcat ] # vim /etc/profile ##配置环境变量 ##大G末行加入 export JAVA_HOME = / usr / local / jdk1 . 8.0 _91 export JRE_HOME = ${JAVA_HOME} / jre export

冒着被开除的风险也要给你们看的 Spring Cloud 入门总结

扶醉桌前 提交于 2019-12-13 09:46:10
首先我给大家看一张图,如果大家对这张图有些地方不太理解的话,我希望你们看完我这篇文章会恍然大悟。 什么是Spring cloud 构建分布式系统不需要复杂和容易出错。Spring Cloud 为最常见的分布式系统模式提供了一种简单且易于接受的编程模型,帮助开发人员构建有弹性的、可靠的、协调的应用程序。Spring Cloud 构建于 Spring Boot 之上,使得开发者很容易入手并快速应用于生产中。 官方果然官方,介绍都这么有板有眼的。 我所理解的 Spring Cloud 就是微服务系统架构的一站式解决方案,在平时我们构建微服务的过程中需要做如 服务发现注册 、配置中心 、消息总线 、负载均衡 、断路器 、数据监控 等操作,而 Spring Cloud 为我们提供了一套简易的编程模型,使我们能在 Spring Boot 的基础上轻松地实现微服务项目的构建。 Spring Cloud 的版本 当然这个只是个题外话。 Spring Cloud 的版本号并不是我们通常见的数字版本号,而是一些很奇怪的单词。这些单词均为英国伦敦地铁站的站名。同时根据字母表的顺序来对应版本时间顺序,比如:最早 的 Release 版本 Angel,第二个 Release 版本 Brixton(英国地名),然后是 Camden、 Dalston、Edgware、Finchley、Greenwich

springcloud之ribbon

时间秒杀一切 提交于 2019-12-13 08:45:24
springcloud之ribbon 概念也就是说在自动装配里面利用拦截器来做到负载均衡 • @ConditionalOnClass(RestTemplate.class): RestTemplate 类必须存在于当前工程的环境中。 • @ConditionalOnBean(LoadBalancerClient.class): 在Spring 的Bean工程中必须有LoadBalancerClient的实现 Bean。 在该自动化配置类中, 主要做了下面三件事: • 创建了 一 个LoadBalancerInterceptor的Bean, 用千实现对客户端发起请求时进行拦截, 以实现客户端负载均衡。 • 创建了一 个RestTemplateCustomizer的Bean,用于给RestTemplate增加LoadBalancerInterceptor拦截器。 • 维护了一 个被@LoadBalanced 注解修饰的RestTempllate对象列表,并在这里进行初始化, 通过调用RestTemplateCustomizer的实例来给需要客户端负载均衡的RestTemplate增加LoadBalancerinIerceptor拦截器。 流程:通过 LoadBalancerinterceptor拦截器对 RestTemplate的请求进行拦截, 并利用Spring

Dubbo---负载均衡

本小妞迷上赌 提交于 2019-12-13 04:15:00
负载均衡策略 Dubbo内置了四种负载均衡策略: RandomLoadBalance:随机负载均衡,默认的策略 RoundRobinLoadBalance:轮询负载均衡 LeastActiveLoadBalance:最少活跃调用数 ConsistenHashLoadBalance:一致性哈希,相同参数的请求总是会落在同一个机器上。 1.随机负载均衡 随机主要是根据权重来抉择的,权重大的概率就会大一点。 如果所有的机器的权重是一样的,算法就简单了,机器中直接随机就好了。 如果机器的权重不一样,例如,a的权重10,b的权重20,c的权重30,那么总的权重的10+20+30=60,a的范围就是0-10,b的范围是10-30,c的范围是30-60,然后在0——60中生成一个随机数,数字落在哪个区间就选择哪个机器。 2.轮询负载均衡 存在一个问题,就是当某一台机器慢的情况下,但是还没挂,时间长了会累计请求。 3.最小活跃数 活跃数指的是接收一次请求活跃计数器+1,请求处理完成-1,在某一时刻,服务提供者当前的活跃数。也就是说还有多少个正在处理的请求。 最小活跃数,意思就是选择服务提供者空闲状态的机器。(能者多劳)。 如果活跃数相同,则会根据随机负载均衡策略选择一台机器。 4.一致性哈希 某个节点宕机,影响的是邻近的下一个节点。如果节点少,容易出现数据倾斜的问题。 配置方式 服务端: 服务级别

nginx学习初阶段

为君一笑 提交于 2019-12-13 02:39:24
NGINX基础知识 1:nginx是什么: 可作为http服务器,也可作为反向代理服务器; 2:http服务器: 我们平时的项目或者代码里面,前端页面(也说客户端)访问(请求)一个URL,后台返回数据,这个后台 3:前面提到了nginx可以作为反向代理服务器,那么,什么是代理服务器呢,什么又叫反向代理呢? 4:负载均衡: 就是将请求通过负载均衡 分配给到不同的后台服务器 (前提是要部署多台后台服务器),这样就减轻了服务器的压力,nginx 作为负载均衡,可以知道服务器每台的 吞吐量,然后进行有效的分配,使服务器高效稳定的处理请求。负载均衡有三种算法来支持分配请求 之前也听说过nginx这个东西,知道是用来做负载均衡的,但是了解的不深,今天听到同事在聊这个东西,发现自己完全忘记了,所以些一篇博客来记载一下对nginx的理解。 1:nginx是什么: 可作为http服务器,也可作为反向代理服务器; 2:http服务器: 我们平时的项目或者代码里面,前端页面(也说客户端)访问(请求)一个URL,后台返回数据,这个后台 就是http服务器;浏览器发送一个请求到服务器,返回一个web页面,这里浏览器就是http的客户端,服务器就是http服务器(如果对 HTTP 不了解的童鞋可以去看下http的东西,在这里就不说明了); 3:前面提到了nginx可以作为反向代理服务器,那么

负载均衡与缓存

倖福魔咒の 提交于 2019-12-13 00:47:42
 反向代理 ¶ 反向代理服务器配置nginx.conf #配置域名为test.web1.test的虚拟主机 server{ listen 80; server_name test.web1.test; #域名test.web1.test的请求全部转发到Web服务器192.168.1.101 location / { proxy_pass http://192.168.1.101 ; } } #配置域名为test.web2.test的虚拟主机 server{ listen 80; server_name test.web2.test; #域名test.we2.test的请求全部转发到Web服务器192.168.1.102 location / { proxy_pass http://192.168.1.102 ; } } 实验客户端配置,hosts文件,...103为nginx反向代理服务器地址 192.168.1.103 test.web1.test 192.168.1.103 test.web2.test 反向代理其他指令 proxy_set_header 在将客户端请求发送给后端服务器之前,更改来自客户端的请求头信息 proxy_connect_timeout 配置与后端服务器尝试建立连接的超时时间 proxy_read_ timeout 配置向后端服务器组发出read请求后

LVS负载均衡群集——理论篇

十年热恋 提交于 2019-12-12 17:23:55
LVS负载均衡群集 理解负载均衡群集的原理 掌握LVS-NAT的部署 企业群集应用概述 群集的含义: 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

什么是CDN

若如初见. 提交于 2019-12-12 13:38:59
CDN 全称:Content Delivery Network或Content Distribute Network,即内容分发网络 是将源站内容分发至最接近用户的节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。 基本思路 尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。 目的 解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度和成功率。 控制时延无疑是现代信息科技的重要指标,CDN的意图就是尽可能的减少资源在转发、传输、链路抖动等情况下顺利保障信息的连贯性。 CDN就是扮演者护航者和加速者的角色,更快准狠的触发信息和触达每一个用户,带来更为极致的使用体验。 基本原理 最简单的CDN网络由一个DNS服务器和几台缓存服务器组成: 当用户点击网站页面上的内容URL,经过本地DNS系统解析