作者|vivo互联网服务器团队-YouShuo副本迁移是Kafka最高频的操作,对于一个拥有几十万个副本的集群,通过人工去完成副本迁移是一件很困难的事情。CruiseControl作为Kafka的运维工具,它包含了Kafka服务上下线、集群内负载均衡、副本扩缩容、副本缺失修复以及节点降级等功能。显然,CruiseControl的出现,使得我们能够更容易的运维大规模Kafka集群。备注:本文基于Kafka2.1.1开展。一、 Kafka负载均衡1.1生产者负载均衡Kafka客户端可以使用分区器依据消息的key计算分区,如果在发送消息时未指定key,则默认分区器会基于roundrobin算法为每条
作者|vivo互联网服务器团队-YouShuo副本迁移是Kafka最高频的操作,对于一个拥有几十万个副本的集群,通过人工去完成副本迁移是一件很困难的事情。CruiseControl作为Kafka的运维工具,它包含了Kafka服务上下线、集群内负载均衡、副本扩缩容、副本缺失修复以及节点降级等功能。显然,CruiseControl的出现,使得我们能够更容易的运维大规模Kafka集群。备注:本文基于Kafka2.1.1开展。一、 Kafka负载均衡1.1生产者负载均衡Kafka客户端可以使用分区器依据消息的key计算分区,如果在发送消息时未指定key,则默认分区器会基于roundrobin算法为每条
一、怎么保证你的业务可靠想一个问题:假设你有10台服务器对外提供相同的服务,你如何保证这10台服务器能稳定处理外部请求?这里可能有很多种解决方案,但本质上都是处理下述两个问题:①客户端的请求应该分配去哪一台服务器比较好?②万一其中某些服务器故障了,如何隔离掉故障服务器?问题①处理不好,可能会导致10台服务器中的一部分服务器处于饥饿状态,没有被分配客户端请求或者是分配得很少;而另一部分则一直在处理大量的请求,导致不堪负重。问题②处理不好,则CAP原则中的可用性(A)可能就没法保证,除非系统不需要A。要解决上述问题,你必须实现一套控制器,能调度业务请求和管理业务服务器。很不幸的是,大多数情况下这个
一、怎么保证你的业务可靠想一个问题:假设你有10台服务器对外提供相同的服务,你如何保证这10台服务器能稳定处理外部请求?这里可能有很多种解决方案,但本质上都是处理下述两个问题:①客户端的请求应该分配去哪一台服务器比较好?②万一其中某些服务器故障了,如何隔离掉故障服务器?问题①处理不好,可能会导致10台服务器中的一部分服务器处于饥饿状态,没有被分配客户端请求或者是分配得很少;而另一部分则一直在处理大量的请求,导致不堪负重。问题②处理不好,则CAP原则中的可用性(A)可能就没法保证,除非系统不需要A。要解决上述问题,你必须实现一套控制器,能调度业务请求和管理业务服务器。很不幸的是,大多数情况下这个
近期朋友刘鑫的网站成功上线并运营了,PV达到了亿级/日的访问量,最前端用的HAProxy+Keepalived双机作的负载均衡器/反向代理,整个网站非常稳定;这让我更坚定了HAProxy+Keepalived作为Web最前端的负载均衡器网站架构设计方案,在这里我也有一点要跟大家申明下:很多朋友担心软件级别的负载均衡在高并发流量冲击下的稳定情况,事实是我们通过成功上线的许多网站发现,HAProxy作为前端的负载均衡的稳定性是非常好的,宕机的可能性微乎其微,由于HAProxy我们多用于7层负载均衡,在大流量的冲击下,发现确实对CPU有一定消耗,这里推荐大家用DELL710|910服务器。另外,HA
近期朋友刘鑫的网站成功上线并运营了,PV达到了亿级/日的访问量,最前端用的HAProxy+Keepalived双机作的负载均衡器/反向代理,整个网站非常稳定;这让我更坚定了HAProxy+Keepalived作为Web最前端的负载均衡器网站架构设计方案,在这里我也有一点要跟大家申明下:很多朋友担心软件级别的负载均衡在高并发流量冲击下的稳定情况,事实是我们通过成功上线的许多网站发现,HAProxy作为前端的负载均衡的稳定性是非常好的,宕机的可能性微乎其微,由于HAProxy我们多用于7层负载均衡,在大流量的冲击下,发现确实对CPU有一定消耗,这里推荐大家用DELL710|910服务器。另外,HA
Nginx+tomcat是目前主流的javaweb架构,如何让nginx+tomcat同时工作呢,也可以说如何使用nginx来反向代理tomcat后端均衡呢?直接安装配置如下:(贴一下很早的文章,供大家参考)1、JAVAJDK安装:#下载相应的jdk软件包,然后解压安装,我这里包名称为:jdk-7u25-linux-x64.tar.gztar -xzf jdk-7u25-linux-x64.tar.gz ;mkdir -p /usr/java/ ;mv jdk1.7.0_25/ /usr/java/ 下.#然后配置环境变量,这样可以任何地方引用jdk,如下配置:#vi /etc/p
Nginx+tomcat是目前主流的javaweb架构,如何让nginx+tomcat同时工作呢,也可以说如何使用nginx来反向代理tomcat后端均衡呢?直接安装配置如下:(贴一下很早的文章,供大家参考)1、JAVAJDK安装:#下载相应的jdk软件包,然后解压安装,我这里包名称为:jdk-7u25-linux-x64.tar.gztar -xzf jdk-7u25-linux-x64.tar.gz ;mkdir -p /usr/java/ ;mv jdk1.7.0_25/ /usr/java/ 下.#然后配置环境变量,这样可以任何地方引用jdk,如下配置:#vi /etc/p
安装环境:Centos6.5x86_64系统最小化安装实验环境: Nginx1:172.16.35.206 Nginx2:172.16.35.81 http1:172.16.35.249 http2:172.16.35.75 VIP:172.16.35.211拓扑图: 背景: 既然有了Lvs+keepalived这样高性能的组合,那为何还要有Nginx+keepalived呢,keepalived的初衷就是为了Lvs而设计的,我们都知道Lvs是一个四层的负载均衡设备,虽然有着高性能的优势,但同时它却没有后端服务器的健康检查机制,keep
安装环境:Centos6.5x86_64系统最小化安装实验环境: Nginx1:172.16.35.206 Nginx2:172.16.35.81 http1:172.16.35.249 http2:172.16.35.75 VIP:172.16.35.211拓扑图: 背景: 既然有了Lvs+keepalived这样高性能的组合,那为何还要有Nginx+keepalived呢,keepalived的初衷就是为了Lvs而设计的,我们都知道Lvs是一个四层的负载均衡设备,虽然有着高性能的优势,但同时它却没有后端服务器的健康检查机制,keep