架构设计(日志系统)


架构设计(日志系统)

            

                        

                               

日志系统

              

日志系统组件

logback:日志框架,可将日志输出到控制台、文件、数据库、logstash等目的地
filebeat:日志文件采集组件,一个filebeat处理一个数据源,相比logstash更轻量级,消耗资源更少
kafka:对采集的日志数据缓冲处理,防止logstash负载过高
logstash:可直接采集日志,也可接受filebeat数据源,对日志进行分析过滤
elasticsearch:日志数据通常使用elasticsearch存储
kibana:可视化展示日志数据

                 

logstash采集日志数据(同步或者异步传输)

                

            

filebeat同步采集传输日志:filebeat直传logstash

                

             

filebeat异步采集传输日志:使用kafka异步传输到logstash

                

             

                      

                               

容量分析

           

采集200台服务器日志,每天的日志总量2TB,每条日志大小约为1kb,
日志处理后进行监控和报警,监控报警延时不能超过5分钟,
每台服务器的日志峰值吞吐量10000/s,所有服务器瞬时峰值之和为1000000/s

# 每台机器平均每秒处理的日志量
2TB/200/1kb/(24*60*60)=115/s
115/s小于10000/s,单台服务器可以满足要求

# 网络负载
单台kafka的处理峰值:100000/s
需要kafka机器数:1000000/100000=10
网络负载:100000*1kb=100mb,千兆网卡可以满足需求

# 延时处理
假设每条日志的处理时间为20ms,
1000000*20ms/1000/5分钟=66.7,需要66个cpu处理峰值的吞吐量延时才不会超过5分钟
假设每条服务器4个cpu、8g内存,需要的机器数:66/4=16,
需要16台机器部署logstash对日志进行解析处理

一般需要对系统做5到10倍的冗余处理,防止系统超载,使用docker部署可动态拓展机器

           

                        

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Spring Boot是一个用于构建独立的、生产级别的Spring应用程序的框架。它采用了约定优于配置的原则,简化了Spring应用程序的开发和部署过程。下面是Spring Boot系统架构设计的一般步骤: 1. 定义需求:首先,需要明确系统的需求和功能,包括业务逻辑、数据模型、用户界面等方面。 2. 设计数据库:根据需求设计数据库结构,包括表、字段、关系等。可以选择关系型数据库(如MySQL、Oracle)或非关系型数据库(如MongoDB)。 3. 设计业务逻辑:根据需求设计系统的业务逻辑,包括服务层、控制层、数据访问层等。可以使用Spring框架提供的注解和接口来实现依赖注入、AOP等功能。 4. 设计用户界面:根据需求设计系统的用户界面,可以选择使用前端框架(如React、Vue.js)来实现交互效果。 5. 配置Spring Boot:在项目中引入Spring Boot依赖,并配置相关的属性,如数据库连接信息、日志配置、缓存配置等。 6. 开发业务功能:根据需求和设计,编写业务功能的代码,包括实体类、服务类、控制器等。 7. 测试和调试:进行单元测试和集成测试,确保系统的功能和性能符合需求。 8. 部署和发布:将系统打包成可执行的jar文件或war文件,并部署到服务器上。可以选择使用Docker等容器技术来实现快速部署和扩展。 9. 监控和优化:监控系统的运行状态,收集日志和指标数据,进行性能优化和故障排查。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值