您现在的位置是:主页 > Web前端技术 > Web前端技术

如何实现Flune Client 开发开发技术

IDCBT2022-01-10服务器技术人已围观

简介如何实现Flune Client 开发,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 由于在实际工作中

如何实现Flune Client 开发,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

由于在实际工作中,数据的生产方式极具多样性,Flume 虽然包含了一些内置的机制来采集数据,但是更多的时候用户更希望能将应用程序和flume直接相通。所以这边运行用户开发应用程序,通过IPC或者RPC连接flume并往flume发送数据。

一、RPC client interface

Flume的RpcClient实现了Flume的RPC机制。用户的应用程序可以很简单的调用Flume Client SDK的append(Event) 或者appendBatch(List<Event>) 方法发送数据,不用担心底层信息交换的细节。用户可以提供所需的event通过直接实现Event接口,例如可以使用简单的方便的实现SimpleEvent类或者使用EventBuilder的writeBody()静态辅助方法。

自Flume 1.4.0起,Avro是默认的RPC协议。NettyAvroRpcClient和ThriftRpcClient实现了RpcClient接口。实现中我们需要知道我们将要连接的目标flume agent的host和port用于创建client实例,然后使用RpcClient发送数据到flume agent。

官网给了一个Avro RPCclients的例子,这边直接拿来做实际测试例子。

这里我们把client.init("host.example.org",41414);

改成 client.init("192.168.233.128",50000);  与我们的主机对接

[java] view plain copy

    import org.apache.flume.Event;  

    import org.apache.flume.EventDeliveryException;  

    import org.apache.flume.api.RpcClient;  

    import org.apache.flume.api.RpcClientFactory;  

    import org.apache.flume.event.EventBuilder;  

    import java.nio.charset.Charset;  

       

    public class MyApp {  

      public static voidmain(String[] args) {  

       MyRpcClientFacade client = new MyRpcClientFacade();  

       // Initializeclient with the remote Flume agent's host and port  

    //client.init("host.example.org",41414);  

    client.init("192.168.233.128",50000);  

       

       // Send 10events to the remote Flume agent. That agent should be  

       // configured tolisten with an AvroSource.  

       String sampleData = "Hello Flume!";  

       for (int i =0; i < 10; i++) {  

         client.sendDataToFlume(sampleData);  

    标签:

    很赞哦! ()

本栏推荐