flume高并发优化——(15)中间件版本升级

在系统平稳运行一年的基础上,为提供更好的服务,现针对java,kafka,flume,zk,统一进行版本升级,请各位小伙伴跟着走起来,不要掉队啊!

名称

老版本号

新版本号

jdk

1.7.0_25

1.8.0

kafka

2.10-0.8.0.1

2.10-0.10.2.1

flume

1.6.0

1.7.0

zookeeper

3.4.6

3.4.8

jdk,zookeeper,flume:

这两个中间件平滑升级,没有特殊的地方,参考其他博客就好

kafka:

这个的变化还是很大的,咱们详细说来

1,zk的作用

offsets,这个值,标记kafka消费到哪了,以前由zk维护,但是,遇到并发比较大的情况,zk的数据出现错误的几率变大,目前版本交由kafka本身维护,kafka本身创建了一个topic解决这个问题,topic:__consumer_offsets,在最新的版本,zk的作用仅仅在维护集群主从关系上了,作用降低。

2,消费端变化

消费端的配置,发生了变化,和flume 1.6有些区别,但是1.7的版本还是对这些做了适配,基本配置不用变化。

3,监控的变化

以前的监控是基于zk的,目前已经不满足与最新的kafka,监控中间件升级为kafkamanager,将最新版本的zip包下载到服务器,解压,并配置就可使用,配置如下:

1# Copyright 2015 Yahoo Inc. Licensed under the Apache License, Version 2.0 2# See accompanying LICENSE file. 3 4# This is the main configuration file for the application. 5# ~~~~~ 6 7# Secret key 8# ~~~~~ 9# The secret key is used to secure cryptographics functions. 10# If you deploy your application to several instances be sure to use the same key! 11play.crypto.secret="^<csmm5Fx4d=r2HEX8pelM3iBkFVv?k[mc;IZE<_Qoq8EkX_/7@Zt6dP05Pzea3U" 12play.crypto.secret=${?APPLICATION_SECRET} 13 14# The application languages 15# ~~~~~ 16play.i18n.langs=["en"] 17 18play.http.requestHandler = "play.http.DefaultHttpRequestHandler" 19play.http.context = "/" 20play.application.loader=loader.KafkaManagerLoader 21 22kafka-manager.zkhosts="10.1.115.181:2181,10.1.114.221:2181,10.1.114.231:2181/kafka" 23# kafka-manager.zkhosts=${?ZK_HOSTS} 24pinned-dispatcher.type="PinnedDispatcher" 25pinned-dispatcher.executor="thread-pool-executor" 26application.features=["KMClusterManagerFeature","KMTopicManagerFeature","KMPreferredReplicaElectionFeature","KMReassignPartitionsFeature"] 27 28akka { 29 loggers = ["akka.event.slf4j.Slf4jLogger"] 30 loglevel = "INFO" 31} 32 33 34basicAuthentication.enabled=true 35basicAuthentication.username="admin" 36basicAuthentication.password="admin" 37basicAuthentication.realm="Kafka-Manager" 38basicAuthentication.excluded=["/api/health"] # ping the health of your instance without authentification

如果出现jdk的问题,可以通过指定路径的方式解决:

1#!/usr/bin/env bash 2### ------------------------------- ### 3### Helper methods for BASH scripts ### 4### ------------------------------- ### 5JAVA_HOME="/Data/servers/jdk8" 6 7die() { 8 echo "$@" 1>&2 9 exit 1 10}

监控界面如下:
这里写图片描述

总结:

在本次升级中,主要是为了增加flume与kafka的并发,因为数据的问题,对es并未进行升级,但是在以后中,我们还是会对es进行升级,做数据平移,或者做双数据源,因为日志最多存过30天,这样的方案,还是非常容易的,请大家继续关注后续的博客。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

mysql设置时区

mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0