Sink Prosessor - Flume的可靠性保证:故障转移、负载均衡

Flume的一些组件(如Spooling Directory Source、File Channel)能够保证agent挂掉后不丢失数据。

1、负载均衡

1)Load balancing Sink Processor

source里的event流经channel,进入sink组,在sink组内部根据负载算法(round_robin、random)选择sink,后续可以选择不同机器上的agent实现负载均衡。

实例如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

# Name the components on this agent

a1.sources = r1

a1.sinks = k1 k2

a1.channels = c1

 

# Describe/configure the source

a1.sources.r1.type = exec

a1.sources.r1.channels=c1

a1.sources.r1.command=tail -F /home/flume/xx.log

#define sinkgroups

a1.sinkgroups=g1

a1.sinkgroups.g1.sinks=k1 k2

a1.sinkgroups.g1.processor.type=load_balance

a1.sinkgroups.g1.processor.backoff=true

a1.sinkgroups.g1.processor.selector=round_robin

#define the sink 1

a1.sinks.k1.type=avro

a1.sinks.k1.hostname=192.168.1.112

a1.sinks.k1.port=9876 

#define the sink 2

a1.sinks.k2.type=avro

a1.sinks.k2.hostname=192.168.1.113

a1.sinks.k2.port=9876

# Use a channel which buffers events in memory

a1.channels.c1.type = memory

a1.channels.c1.capacity = 1000

a1.channels.c1.transactionCapacity = 100

 

# Bind the source and sink to the channel

a1.sources.r1.channels = c1

a1.sinks.k1.channel = c1

a1.sinks.k2.channel=c1

2)Load balancing Log4J Appender

不同的agent处理同一个client产生的数据。


1

2

3

log4j.rootLogger=INFO,flume

log4j.appender.flume = org.apache.flume.clients.log4jappender.LoadBalancingLog4jAppender

log4j.appender.flume.Hosts = 192.168.1.111:41414 192.168.1.111:41414

2、故障转移

Failover Sink Processor

配置一组sink,这组sink组成一个Failover Sink Processor,当有一个sink处理失败,Flume将这个sink放到一个地方,等待冷却时间,可以正常处理event时再拿回来。

event通过通过一个channel流向一个sink组,在sink组内部根据优先级选择具体的sink,一个失败后再转向另一个sink,流程图如下:

实例如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

# Name the components on this agent

a1.sources = r1

a1.sinks = k1 k2

a1.channels = c1

 

# Describe/configure the source

a1.sources.r1.type = exec

a1.sources.r1.channels=c1

a1.sources.r1.command=tail -F /home/flume/xx.log

#define sinkgroups

a1.sinkgroups=g1

a1.sinkgroups.g1.sinks=k1 k2

a1.sinkgroups.g1.processor.type=failover

a1.sinkgroups.g1.processor.priority.k1=10

a1.sinkgroups.g1.processor.priority.k2=5

a1.sinkgroups.g1.processor.maxpenalty=10000

#define the sink 1

a1.sinks.k1.type=avro

a1.sinks.k1.hostname=192.168.1.112

a1.sinks.k1.port=9876

#define the sink 2

a1.sinks.k2.type=avro

a1.sinks.k2.hostname=192.168.1.113

a1.sinks.k2.port=9876

# Use a channel which buffers events in memory

a1.channels.c1.type = memory

a1.channels.c1.capacity = 1000

a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel

a1.sources.r1.channels = c1

a1.sinks.k1.channel = c1

a1.sinks.k2.channel=c1

来自为知笔记(Wiz)

时间: 2024-08-04 03:21:17

Sink Prosessor - Flume的可靠性保证:故障转移、负载均衡的相关文章

SQL Server 2014 日志传送部署(7):日志传送故障转移和删除日志传送

13.4 故障转移 13.4.1 故障定位 在前几节明确的提及到,日志传送由三个基本的作业组成:备份作业.复制作业和还原作业.通过上一节日志传送监控功能来定位哪一个作业出了问题: 如果备份作业出了问题,检查主服务器状态. 如果还原作业出了问题,检查辅助服务器状态:或者辅助数据库处于STANDBY模式时用户正在使用辅助数据库. 如果复制作业出了问题,检查除了辅助服务器状态外,还需要检查网络状态. 13.4.2 故障转移 日志传送的故障转移除了考虑切换技术操作以外,更需要考虑主服务器和辅助服务器之间

MySQL 高可用MHA安装部署以及故障转移详细资料汇总 转

http://blog.itpub.net/26230597/cid-87082-list-2/ 1,简介 1.1mha简介 MHA,即MasterHigh Availability Manager and Tools for MySQL,是日本的一位MySQL专家采用Perl语言编写的一个脚本管理工具,该工具仅适用于MySQLReplication(二层)环境,目的在于维持Master主库的高可用性. MHA(Master High Availability)是自动的master故障转移和Sl

Windows Azure 故障转移模式及高可用个模式探讨!

?? 目前国内很多用户对于云服务的可用性存在误解,什么样子的误解呢?比如某云服务商,在华南某地有一个机房,在华东有一个机房. 这个客户就提到一个需求,你提供的99%可用性的概念是什么意思呢?是不是我的机器在南方机房出了问题,我的机器就自动的转到华东机房么? 从目前在和客户的沟通与交流来看,貌似大部分用户都有这种想法,认为云服务应该从跨区域和跨站点的方向进行高可用,殊不知这个是一个很难达到的目标. 在金融行业经常存在两地三中心的概念,在两地三中心的概念中,我们经常可以看到如下定义的描述: 主数据中

sql server 2008 故障转移群集

数据库群集的分类: (1)主动/被动群集(常用模式) 布署简单.比较安全.应用广泛 .资源利用率低 (2)主动/主动群集 没有闲置节点,资源利用率高.安全性差,争抢资源 (3)N+1群集(较好模式) 一定程度上克服了资源利用率低和争抢资源的问题  .多个实例同时出问题时才存在争抢资源的问题 操作系统参数表 主机名 操作系统 IP地址 磁盘 用户 备注 DC01 Win Ser2008 R2 Enterprise Public:192.168.1.101 子网:255.255.255.0 DNS:

MHA mysql主从故障转移

MHA 一.MHA介绍 1 二.部署MHA 2 1.部署MHA Node 2 2.安装MHA Manager 3 3.配置SSH登录无密码验证 3 4.搭建主从复制环境 3 5.配置MHA 4 6.检查SSH配置 8 7.检查SSH配置 8 8.检查MHA Manager状态 8 9.开启MHA Manager监控 8 10.关闭MHA Manager监控 8 11.MHA引入VIP 8 三.自动Failover 17 四.手动Failover(MHA Manager必须没有运行) 19 五.在

在Windows Server 2012 R2中搭建SQL Server 2012故障转移集群

需要说明的是我们搭建的SQL Server故障转移集群(SQL Server Failover Cluster)是可用性集群,而不是负载均衡集群,其目的是为了保证服务的连续性和可用性,而不是为了提高服务的性能. SQL Server始终在负载均衡集群方面都缺少自己的产品,多由第三方厂家提供,但SQL Server故障转移集群却由来已久,在SQL Server 2012还提供了一个可用性组(AlwaysOn High Availability Groups)的新特性,我们知道微软的故障转移集群(W

MySQL 高可用MHA安装部署以及故障转移详细资料汇总

1,简介 1.1mha简介 MHA,即MasterHigh Availability Manager and Tools for MySQL,是日本的一位MySQL专家采用Perl语言编写的一个脚本管理工具,该工具仅适用于MySQLReplication(二层)环境,目的在于维持Master主库的高可用性. MHA(Master High Availability)是自动的master故障转移和Slave提升的软件包.它是基于标准的MySQL复制(异步/半同步). MHA有两部分组成:MHA M

windows server2008R2故障转移群集

1 首先规划下自己的环境 都是在VMWARE里进行 服务器AA  Public IP 192.168.1.120 心跳Private IP 10.0.0.10 服务器BB Public IP 192.168.1.121 心跳Private IP 10.0.0.11 域控服务器DG IP 192.168.1.130 存储服务器IP 192.168.1.140 说明:存储服务器是用FREENAS软件模拟出来的. 2 修改两台服务器主机名,并且配置好所有IP,保证都可以PING通,关闭防火墙. 3 安

文件服务器故障转移群集

文件服务器故障转移群集 u 案例需求 怎样配置文件服务器的故障转移群集? u 知识提示 DHCP服务器要跨网段分配IP地址,需要使用DHCP中继.由于DHCP依靠广播进行通讯,而不同网段通讯需要路由,而路由器默认隔离广播,所有要跨网段分配IP地址需要使用DHCP中继. 案例:某公司需要搭建一个文件服务器用于保存公司核心业务的数据.文件,并且需要该服务器拥有较高的安全性.该公司目前有一个基于iSCSI的SAN(存储区域网络),并且有一个iSCSI网关.应该如何搭建该文件服务器以保证较高的可用性?