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

Posted ESOO

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flume高并发优化——(15)中间件版本升级相关的知识,希望对你有一定的参考价值。

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

名称老版本号新版本号
jdk1.7.0_251.8.0
kafka2.10-0.8.0.12.10-0.10.2.1
flume1.6.01.7.0
zookeeper3.4.63.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.KafkaManagerLoader

kafka-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=true
basicAuthentication.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天,这样的方案,还是非常容易的,请大家继续关注后续的博客。

以上是关于flume高并发优化——(15)中间件版本升级的主要内容,如果未能解决你的问题,请参考以下文章

flume高并发优化——多文件source扩展断点续传

flume高并发优化——(13)扩展三级文件配置&利用Headers扩展属性

用Netty开发中间件:高并发性能优化

flume高并发优化——(14)解决空行停止收集数据问题,及offsets变小问题

Netty高并发性能优化

高并发系列:垂直性能优化之细说负载均衡