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

来源:互联网 发布:c语言包括哪些 编辑:程序博客网 时间:2024/05/21 12:47

在系统平稳运行一年的基础上,为提供更好的服务,现针对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包下载到服务器,解压,并配置就可使用,配置如下:

# Copyright 2015 Yahoo Inc. Licensed under the Apache License, Version 2.0# See accompanying LICENSE file.# This is the main configuration file for the application.# ~~~~~# Secret key# ~~~~~# The secret key is used to secure cryptographics functions.# If you deploy your application to several instances be sure to use the same key!play.crypto.secret="^<csmm5Fx4d=r2HEX8pelM3iBkFVv?k[mc;IZE<_Qoq8EkX_/7@Zt6dP05Pzea3U"play.crypto.secret=${?APPLICATION_SECRET}# The application languages# ~~~~~play.i18n.langs=["en"]play.http.requestHandler = "play.http.DefaultHttpRequestHandler"play.http.context = "/"play.application.loader=loader.KafkaManagerLoaderkafka-manager.zkhosts="10.1.115.181:2181,10.1.114.221:2181,10.1.114.231:2181/kafka"# kafka-manager.zkhosts=${?ZK_HOSTS}pinned-dispatcher.type="PinnedDispatcher"pinned-dispatcher.executor="thread-pool-executor"application.features=["KMClusterManagerFeature","KMTopicManagerFeature","KMPreferredReplicaElectionFeature","KMReassignPartitionsFeature"]akka {  loggers = ["akka.event.slf4j.Slf4jLogger"]  loglevel = "INFO"}basicAuthentication.enabled=truebasicAuthentication.username="admin"basicAuthentication.password="admin"basicAuthentication.realm="Kafka-Manager"basicAuthentication.excluded=["/api/health"] # ping the health of your instance without authentification

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

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

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

总结:

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

阅读全文
1 0