1、背景最近在折腾Kafka日志集群,由于公司部署的应用不断增加,日志采集程序将采集到的日志发送到Kafka集群时出现了较大延迟,总的TPS始终上不去,为了不影响业务团队通过日志排查问题,采取了先解决问题,再排查的做法,对Kafka集群进行扩容,但扩容后尴尬的是新增加的5台机器中,有两台机器的消费发送响应时间比其他机器明显高出不少,为了确保消息服务的稳定性,又临时对集群进行缩容,将这台机器从集群中
数据迁移与扩容实践:    工具目前从 mycat1.6,准备工作:1、mycat 所在环境安装 mysql 客户端程序。 2、mycat 的 lib 目录下添加 mysql 的 jdbc 驱动包。 3、对扩容缩容的表所有节点数据进行备份,以便迁移失败后的数据恢复。  步骤:1、复制 schema.xml、rule.xml 并重命名为 newSchema.xml、newRule
MySQL不停机主从部署引言搭建数据库备份主库数据——XtraBackup工具安装制作全量备份从库恢复全量备份数据设置主从主库操作获取binlog和pos位置从库 引言在日常开发中,MySQL数据库的使用非常频繁。在MySQL的使用过程中,我们需要面对两个方面的问题:性能问题容灾问题性能问题指的是随着应用、并发量的增加,原本的一个数据库无法再承受更多的连接和访问,因此需要使用从库,以减轻主库的负
目录一、简介二、升级操作2.1 es配置2.2 logstash设置2.3 守护进程配置2.4 查看结果一、简介单机伪集群是什么概念呢,就是同一台服务器有多个es节点先介绍一下,原先的环境为在一台服务器192.168.0.15上安装了es、kibana、logstash,通过守护进程来启动服务,单机单节点。现在升级为单机多节点。 二、升级操作查看服务进程supervi
SDSSDS本质上就是char *,但是因为有了表头sdshdr结构的存在,所以SDS比传统C字符串在某些方面更加优秀。一般传统C字符串是有结束符的,遇到’\0‘则认为已经到达末尾,忽略结尾以后的所有字符。**SDS表头的buf被定义为字节数组,判断是否到达字符串结尾的依据是表头的len成员。**因此获取字符串长度时间复杂度为O(1)。总结下sds的特点是:可动态扩展内存、二进制安全、快速遍历字符
持之以恒,贵在坚持,每天进步一点点!作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:https://github.com/sunshinelyz/mykit-delayPS: 欢迎各位Star源码,也可以pr
主要简单总结下,mysql在线扩容和缩容一般涉及到的内容,主要包括三个方面,1.在线也就意味着需要把增量的数据重新分布到新的拓扑结构中,我们一般称做增量复制,2.原有的数据需要一条不漏的扫出来重新分布到新的拓扑结构中,这个一般叫做全量复制,3.全量做完,增量正在同步,把应用的数据路由拓扑切到新的路由拓扑上来,并且做到无数据丢失,这个我们叫做停写切换。做好这三个方面的工作,能够达到的效果就是应用在最
每个Broker启动时,都会创建对应分区状态机和副本状态机实例,但只有Controller所在的Broker才会调用startup方法启动它们,若Controller变更了,老的Controller需要调用状态机shutdown方法进行关闭。1、ReplicaStateMachine副本状态机,用于管理集群中副本的状态信息副本状态NewReplica:副本被创建之后所处的状态。OnlineRepl
最近我们生产环境的kafka集群有增加节点的需求,然而kafka在新增节点后并不会像elasticsearch那样感知到新节点加入后自动将数据reblance到新集群中,因此这个过程需要我们手动分配。一番折腾之后,实现了增加kafka集群节点并将原有数据均匀分配到扩容后的集群。下面结合一个例子谈一下整个过程。一. 环境说明1.假定当前的cluster中只有(0,1,2)三个kafka节点,有一个名
ext4不停机在线扩容    1、修改虚拟机磁盘容量大小    2、重新识别磁盘容量大小# ls /sys/class/scsi_disk/ # echo 1 > /sys/class/scsi_disk/2\:0\:1\:0/device/rescan # fdisk  -l    3、调整目标分区大小# fdisk /dev/sdb     d     n     p     1    
原创 2019-10-11 15:01:33
3083阅读
partition:分区,每个topic下可以有多个partition,每个partition都是一个有序的队列kafka消费topic是以group为单位来的,一个group消费一个topic。一个group能容纳多个consumer。consumer消费是以分区(partition)来的,一个consumer可以消费一个或多个partition,一个partition只能被一个consumer
目录:一、正常情况下发服务演化之路1.单体应用2.RPC应用3.分库分表二、单元化三、最后的总结刚开始工作的菜鸟,总会有各种疑问,刚开始是对 JDK API 的疑问,对 NIO 的疑问,对 JVM 的疑问。当工作几年后,对服务的可用性,可扩展性也有了新的疑问,什么疑问呢?其实是老生常谈的话题:服务的扩容问题。正常情况下的服务演化之路让我们从最初开始。1、单体应用 每个创业公司基本都是从类似 SSM
实际上,不停机扩容,实操起来是个非常麻烦而且很有风险的操作一、第一阶段:在线双写,查询走老库1. 建立好新的库表结构,数据写入久库的同时,也写入拆分的新库 2. 数据迁移,使用数据迁移程序,将旧库中的历史数据迁移到新库 3. 使用定时任务,新旧库的数据对比,把差异补齐二、在线双写,查询走新库1. 完成了历史数据的同步和校验 2. 把对数据的读切换到新库 三、第三阶段:旧库下线旧库不再写入新的数据经
需求说明类似订单表,用户表这种未来规模上亿甚至上十亿百亿的海量数据表,在项目初期为了快速上线,一般只是单表设计,不需要考虑分库分表。随着业务的发展,单表容量超过千万甚至达到亿级别以上,这时候就需要考虑分库分表这个问题了,而不停机分库分表迁移,这应该是分库分表最基本的需求,毕竟互联网项目不可能挂个广告牌"今晚10:00~次日10:00系统停机维护",这得多low呀,以后跳槽面试,你跟面试官说这个迁移
坐标:浙江省杭州市概述:鄙人才疏学浅,了解到不停机部署方案有热加载、热部署、集群分批部署三种方式,这里只针对这三种方式进行讨论。一、热加载  原理:热加载的实现原理主要依赖jvm的类加载机制,在运行时对被修改过的类进行重新载入。  实现方式:在容器启动的时候起一条后台线程,定时的检测类文件的时间戳变化,如果类的时间戳变掉了,则将类重新载入。  适用场景:热加载会直接修改jvm中的字节码,这种方式对
以下内存参考蒋德钧老师讲义如何保存更多的数据为了保存更多的数据,通常使用大内存云主机和切片集群两种方法。实际上,这两种方法分别对应着redis应对数据量增多的两种方法:纵向扩展和横向扩展。纵向扩展:升级单个redis实例的资源配置,包括增加内存容量、增加磁盘容量、使用更高配置的cpu。就像下图中,原来的实例内存是8GB,硬盘是50GB,纵向扩展后,内存增加到24GB,磁盘增加到150GB。横向扩展
Kafka在Yelp的应用十分广泛,Yelp每天通过各种集群发送数十亿条消息,在这背后,Kafka使用Zookeeper完成各种分布式协调任务。因为Yelp非常依赖Kafka,那么问题来了,它是否可以在不引起Kafka及其他Zookeeper用户注意的情况下切换Zookeeper集群呢?本文将揭晓答案。Kafka在Yelp的应用十分广泛。事实上,我们每天通过各种集群发送数十亿条消息。在这背后,Ka
原创 精选 2019-02-25 11:22:10
2389阅读
# MySQL 不停机升级实现方法 ## 一、流程概述 在实现 MySQL 不停机升级时,我们可以采用主从复制的方式,通过搭建主从复制关系,在升级主库时,可以保证从库对外提供服务,从而实现不停机升级。 下面是实现 MySQL 不停机升级的具体步骤: | 步骤 | 操作 | | ------------- |:-------------:| | 步骤一
原创 5月前
218阅读
## 实现Java不停机部署的流程 为了实现Java的不停机部署,我们可以采用以下步骤来完成: ### 步骤概览 | 步骤 | 描述 | | ---- | ---- | | 1. | 构建自动化部署脚本 | | 2. | 将应用程序打包为可执行的JAR文件 | | 3. | 配置应用程序的启动和停止脚本 | | 4. | 启动应用程序 | | 5. | 更新应用程序 |
原创 8月前
275阅读
# Java不停机升级 ## 简介 Java作为一种广泛应用于企业级应用开发的编程语言,其不停机升级能力是其受欢迎的一个重要原因之一。不停机升级是指在系统运行期间,对Java应用程序进行更新或修复,而不需要关闭或重启整个系统。 ## 为什么需要不停机升级 在复杂的企业级应用中,往往需要在运行期间对系统进行更新或修复。传统的停机升级方式会导致系统的停运,给用户带来不便和影响企业的业务连续性。
原创 8月前
99阅读
  • 1
  • 2
  • 3
  • 4
  • 5