You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
土豆兄弟 bb1f6b672a [新增功能](master): 日志架构相关的操作
日志架构相关的操作
3 years ago
dev-protocol-common [新增功能](master): 日志架构相关的操作 3 years ago
dev-protocol-log [新增功能](master): 日志架构相关的操作 3 years ago
dev-protocol-test [新增功能](master): 初始化后项目 3 years ago
.gitignore [新增功能](master): 初始化后项目 3 years ago
README.md [新增功能](master): 日志架构相关的操作 3 years ago
pom.xml [新增功能](master): 日志架构相关的操作 3 years ago

README.md

百业代码规范及一些标准化过程示例 v0.1.1

0. 项目说明

对后端java代码进行一些标准化的过程说明,帮助整个技术团队提升自己的技术规范及水平

1. 项目内容说明

dev-protocol-test  
    - SpringBoot项目Test的编写规范及使用标准
    - 参考: https://mp.weixin.qq.com/s/W5v8zOCHbc2_NvobMGaU8w
dev-protocol-log
    - 分布式日志系统的设计及实现,主要涉及kafka Springboot ELK

1.1 基本命令(dev-protocol-log)

- Kafka
    查看topic列表命令(连接其中一个就好了)
        【旧版】kafka-topics.sh --zookeeper 172.16.26.183:2181 --list
        【新版】kafka-topics.sh --bootstrap-server 172.16.26.183:9092  --list
         zookeeper is not a recognized option主要原因是 Kafka 版本过高,命令不存在)
    创建topic主题
        kafka-topics.sh --bootstrap-server 172.16.26.183:9092  --create --topic topic1 --partitions 1 --replication-factor 3
            --create 命令后 --topic 为创建topic 并指定 topic name
            --partitions 为指定分区数量
            --replication-factor 为指定副本集数量
    向kafka集群发送数据
        【无key型消息】kafka-console-producer.sh --bootstrap-server 172.16.26.183:9092 --topic topic1
        【有key型消息】 kafka-console-producer.sh --bootstrap-server 172.16.26.183:9092 --topic topic1 --property parse.key=true
        默认消息键与消息值间使用“Tab键”进行分隔切勿使用转义字符(\t)
    kafka命令接受数据
        kafka-console-consumer.sh --bootstrap-server 172.16.26.183:9092 --topic topic1 --from-beginning
    kafka查看消费进度当我们需要查看一个消费者组的消费进度时则使用下面的命令(启动Consumer的时候才会真的生效)【这条命令对查询消费特别重要】
        kafka-consumer-groups.sh --bootstrap-server 172.16.26.183:9092 --describe --group group1

1.2 注意事项(dev-protocol-log)

一致性确定
    命令中的 --bootstrap-server 和配置文件中的要一致
        # 允许外部端口连接                                            
        listeners=PLAINTEXT://0.0.0.0:9092
        # 外部代理地址
        advertised.listeners=PLAINTEXT://121.201.64.12:9092
    https://blog.csdn.net/pbrlovejava/article/details/103451302
国内下载镜像加速
    https://www.newbe.pro/

1.3 海量日志收集架构设计(dev-protocol-log)

  • 海量日志收集架构示意图 avatar

  • 标准架构(海量): Beats(日志收集) -> kafka(日志堆积) -> Logstash(日志过滤) -> ElasticSearch(日志查询) -> Kibana(效果展示)
  • 简化收集方案1: 直接使用Log4j的插件和Logstash集成 -> ElasticSearch(日志查询) -> Kibana(效果展示)
  • 简化收集方案2: 使用Log4j自己封装一个appender -> ElasticSearch(日志查询) -> Kibana(效果展示)
  • 简化收集方案3: 直接使用kafka的appender(log4j提供的),直接实现 -> kafka(日志堆积) -> ElasticSearch(日志查询) -> Kibana(效果展示)
  • 先进技术: SkyWalking 的 Netty或者Agent的方式,直接传到另外一个Agent端

  • 实际落地架构图 avatar

  • 全域日志收集架构落地图 avatar

1.4 日志输出设计

    1. 使用 Log4j2 的相关技术进行日志定义 avatar
    1. 使用 filebeat 进行日志的收集 avatar

    启动前先进行检查 ./filebeat -c 配置文件.yml -configtest 启动顺序 kafka -> 自己的应用程序 -> filebeat