选主机测评网
主机测评优惠网

java微服务日志处理的最合适方案是什么

情况及需求描述:

1.java spring boot开发的微服务有多个,每个微服务在4台云服务器上部署4个节点

2.有1个网关,部署在一台服务器上,所有请求都通过网关进行转发和负载均衡

3.需要对网关发起的每一请求都记录日志,例如请求的时间、ip、参数、耗时、返回结果等

4.网关的访问日志需要保证安全持久化,即不能丢失,以便后期对账

5.希望网关的访问日志的保存,能够具有一定的实时性,以便后台能够即时看到访问的变化、做数据分析等

6.每个微服务、节点上的错误日志能够远程访问查看,而不是登录每一台与服务器去查日志文件

7.一共有4台云服务器,2台阿里、2台华为,每台双核16g,数据库只有一个阿里的rds和redis

尝试方案1:

在网关配置logback,将访问日志输出到logstash,再由logstash输出到elastic,最后kibana展示,即ELK方案

问题:1.logstash的过滤器grok配置有点难,默认如果log.info(RequestModel)这样打日志,RequestModel中的信息会在logstash中单独以一个\”message\”字段进行保存,这对后面kibana写过滤表达式很难处理。后来采取java代码中\”log.info(\”{} {} {}\”, request_uri, request_ip, request_param)\”这种日志产生后,仅希望将这些request_*字段输出至logstash,多余的字段不要,可用grok过滤,但一些自定义的字段不太会处理,正则表达式也不怎么会用

2.对elastic掌握还不是很深,之前有遇到过数据丢失的情况,由于这次需求要保证数据不能丢失,所以暂不太敢贸然使用

尝试方案2:

仍然在网关配置logback,但输出至db mysql,然后用logstash把数据导到elastic,最后kibana展示

问题:仍然是关于仅保存自定义字段的需求,网上了解了一圈,默认是要3张表,肯定不是我要的;还有用继承重写方法的,但看起来仍然没有达到我要的要求。并且还有一个连接池的问题没有解决,就也没有研究下去。

尝试方案3:

网关处理好需要保存的日志信息后,直接调用dao层持久化到db mysql,然后用logstash把数据导到elastic,最后kibana展示

问题:网关上的请求肯定是量很大的,考虑单独架设一个mysql服务,专门用来保存日志,也就是只有写操作,不去影响到业务db。保存的话,肯定不能单条写入,那就想到用队列,队列满一定条数后,批量写入,但这似乎又不能达到实时性的要求

所以想问,分布式服务的访问日志以及后台业务日志,究竟应该如何设计,使其具备一定实时性、持久化、可分析、可扩展、可视化等要求

如何随时监控服务器网络带宽使用情况

网络带宽利用率是指:带宽每秒收到、发送信息的效率。带宽分配是为了在有限的带宽内保证实时业务的传输,不至于因为业务量太大而出现网络阻塞现象。

我们访问互联网的过程中存在这两种行为:一是上传数据,二是下载数据。上行带宽指的是上传的速度,而下行带宽指的是下载数据时的速度。

云帮手通过对服务器多网卡的上行带宽和下行带宽传输情况进行实时监控,使用户可以精准了解到各网卡的运行情况,做到合理带宽分配,保证网络畅通。

什么是服务器并发量并发量如何计算

并发的意思是指网站在同一时间访问的人数,人数越大,瞬间带宽要求更高。服务器并发量分为:1.业务并发用户数;2.最大并发访问数;3.系统用户数;4.同时在线用户数;

说明服务器实际压力,能承受的最大并发访问数,既取决于业务并发用户数,还取决于用户的业务场景,这些可以通过对服务器日志的分析得到。

一般只需要分析出典型业务(用户常用,最关注的业务操作)

给出一个估算业务并发用户数的公式(测试人员一般只关心业务并发用户数)

C=nL/T

C^=C+3×(C的平方根)

C是平均的业务并发用户数、n是login session的数量、L是login session的平均长度、T是指考察的时间段长度、C^是指业务并发用户数的峰值。

假设OA系统有1000用户,每天400个用户发访问,每个登录到退出平均时间2小时,在1天时间内用户只在8小时内使用该系统。

C=400×2/8=100

C^=100+3×(100的平方根)=100+3×10=130

另外,如果知道平均每个用户发出的请求数u,则系统吞吐量可以估算为u×C

精确估算,还要考虑用户业务操作存在一定的时间集中性(比如上班后1小时内是OA系统高峰期),采用公式计算仍然会存在偏差。

285-104-1346

未经允许不得转载:选主机测评网 » java微服务日志处理的最合适方案是什么
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!