プロジェクト実施-09(お尻水路)

SpringBootドッキング水路

大規模データストリーム処理の中で、我々はによって収集されたプロジェクトは、ログのユーザーの行動から、必要なkafka計算エンジン、計算や分析に伝えます。これは、私たちに必要な収集したログファイルの一つであり、Flumeドッキングを完了すること。

①頼る座標

	  <!--引入Flume-->
        <dependency>
            <groupId>org.apache.flume</groupId>
            <artifactId>flume-ng-sdk</artifactId>
            <version>1.9.0</version>
        </dependency>

②導入水路ドッキングプロジェクトの依存関係

flume持つユーザーように、公式ウェブサイト上でオープンソース・プロジェクトを提供する日志采集完全な速いがドッキング。
:アドレスを取得https://pan.baidu.com/s/1chY1Ia7aBPtY7AVXZ_rrdQ
取得コード:cgi8を

このオープンソースプロジェクトパッケージcom最外層のパッケージは、このパッケージは、独自のプロジェクトに直接導入されjava、直接のサブディレクトリ(同じレベルで独自のパッケージとプロジェクトの第一段階)の下で、することができます。

③構成ログファイル

ログファイル内の設定項目 logback.xml


<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender" >
        <encoder>
            <pattern>%p %c#%M %d{yyyy-MM-dd HH:mm:ss} %m%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>
    <appender name="flume" class="com.gilt.logback.flume.FlumeLogstashV1Appender">
        <flumeAgents>
            pro1:44444, <!--这里配置集群,此处搭建的是个伪集群-->
            pro2:44444,
            pro1:44444
        </flumeAgents>
        <flumeProperties>
            connect-timeout=4000;
            request-timeout=8000
        </flumeProperties>
        <!--这里为了测试调低了,生成环境下要调高-->
        <batchSize>1</batchSize> 
        <!--每1ms发送一次这里为了测试调低了,生成环境下要调高-->
        <reportingWindow>1</reportingWindow>
        <additionalAvroHeaders>
            myHeader=myValue
        </additionalAvroHeaders>
        <application>smapleapp</application>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%p %c#%M %d{yyyy-MM-dd HH:mm:ss} %m%n</pattern>
        </layout>
    </appender>
    <!-- 控制台输出⽇志级别 -->
    <root level="ERROR">
        <appender-ref ref="STDOUT" />
    </root>
    <logger name="com.baizhi.service" level="DEBUG" additivity="false">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="flume" />
    </logger>
    <logger name="com.baizhi.interceptor" level="DEBUG" additivity="false">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="flume" />
    </logger>

</configuration>

④プロジェクトで参照

项目中,要对接 flume 就变的很容易了,只要是 log4j日志对象的输出,都将直接通过网络,输送到接收端。

  • 例:
package com.baizhi.interceptor;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

//将此组件交给工厂
@Component
public class UserInputFeatureInterceptor implements HandlerInterceptor {
    private static final Logger LOGGER = LoggerFactory.getLogger(UserInputFeatureInterceptor.class);

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    
        //获取信息
        String name = request.getParameter("name");
        String password = request.getParameter("password");
      
        LOGGER.info("请求参数为\t"+name+"\t"+password);
        /*2020-03-29 15:56:35.783  INFO 12620 --- [nio-9999-exec-8] c.b.i.UserInputFeatureInterceptor        : 请求参数为	测试数据2	000000	 */

        return true;
    }
}

⑤flume側の設定

/apache-flume-1.9.0-binルートディレクトリconfフォルダ、(カスタム)を作成しexample02.perprotiesたファイルを以下のように、構成は次のとおりです。

# 声明基本条件 Source Channel Sink
a1.sources = s1
a1.sinks = sk1
a1.channels = c1

#配置Source组件,从Socket中接收文本数据
a1.sources.s1.type = avro
a1.sources.s1.bind = pro2
a1.sources.s1.port = 44444

#配置Sink组件 将接收数据打印在日志控制台
a1.sinks.sk1.type = logger

#配置Channel通道,主要负责数据缓冲
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

#进行组件间的绑定
a1.sources.s1.channels = c1
a1.sinks.sk1.channel = c1

启动flume

准备接收数据

[root@pro2 apache-flume-1.9.0-bin] ./bin/flume-ng agent --conf conf/ --name a1 -conf-file conf/example02.perproties -Dflume.root.logger=INFO,console
公開された32元の記事 ウォンの賞賛1 ビュー1154

おすすめ

転載: blog.csdn.net/ASYMUXUE/article/details/105182699