ApiBoot Logging整合SpringCloud Eureka负载均衡上报日志
ApiBoot Logging支持整合服务注册中心(Eureka、Consul、Nacos Discovery、Zookeeper…)进行上报请求日志,Logging Client会从服务注册中心内找到指定ServiceID的Logging Admin具体可用实例,通过SpringCloud Discovery内部的负载均衡策略返回Logging Admin的部署服务器IP以及端口号,这样Logging Client就可以完成请求日志的上报流程。
搭建Eureka Server
我们先来搭建一个Eureka Server,请访问【/eureka-server.html】文章内容查看具体搭建流程。
将Logging Admin注册到Eureka
既然使用的是服务注册中心,我们需要将之前章节将的Logging Admin进行简单的改造,添加Eureka客户端相关的依赖,并在application.yml配置文件内添加Eureka Server的相关配置,如果对Logging Admin不了解的同学可以访问【/apiboot-report-logs-by-logging-to-admin.html】查看文章内容,文章底部有源码。
添加Eureka Client依赖
我们需要将Logging Admin注册到Eureka Server,对于Eureka Server而言Logging Admin是一个客户端(Eureka Client)角色。
我们在pom.xml文件内添加如下配置:
1 | <!--Eureka Client--> |
启用Eureka Client
添加依赖后我们还需要在XxxApplication入口类添加@EnableDiscoveryClient注解来启用Eureka Client的相关功能,如下所示:
1 |
|
配置注册到Eureka Server
我们在application.yml配置文件内添加连接到Eureka Server的相关配置信息,如下所示:
1 | # Eureka Config |
将Logging Client注册到Eureka
Logging Client其实就是我们的业务服务,不要被名称误导,我们在本章源码内创建一个user-service模块来作为测试的业务服务,我们也需要将user-service作为客户端注册到Eureka Server,可参考【使用ApiBoot Logging进行统一管理请求日志】文章内容创建项目。
添加Eureka Client依赖
在pom.xml配置文件内添加如下依赖:
1 | <!--Eureka Client--> |
启用Eureka Client
添加依赖后同样需要启用Eureak Client,这是必不可少的步骤,在我们的入口类XxxApplication上添加如下所示:
1 |
|
配置注册到Eureka Server
我们在application.yml配置文件内添加Eureka Server的相关配置信息,如下所示:
1 | # Eureka Config |
配置Logging Admin服务信息
这是本章的核心内容,我们在之前都是通过api.boot.logging.admin.server-address参数进行配置Logging Admin的IP地址以及服务端口号,而本章我们就要借助服务注册中心(Eureka Server)来从实例列表中获取Logging Admin服务信息,ApiBoot Logging提供了一个配置参数api.boot.logging.discovery.service-id进行配置Logging Admin的ServiceID,也就是spring.application.name参数对应的值,如下所示:
1 | # ApiBoot Config |
每当我们发起请求时,Logging Client就会从
Eureak Server内获取ServiceID = logging-admin的服务列表,负载均衡筛选后获取一个可用的实例信息进行上报日志。
运行测试
我们将本章源码内用到的三个服务eureka-server、logging-admin、user-service依次启动。
通过curl命令访问user-service提供的Controller地址,如下所示:
1 | ➜ ~ curl http://localhost:9090/test\?name\=admin |
我们可以在logging-admin控制台看到user-service上报的请求日志信息,如下所示:
1 | Receiving Service: 【user-service -> 127.0.0.1】, Request Log Report,Logging Content:[ |
自此我们已经成功的整合Eureka与ApiBoot Logging。
敲黑板,划重点
ApiBoot Logging内部提供的两种获取Logging Admin服务信息的方式,分别是:service-id、server-address,都是比较常用的,使用service-id方式可以无缝整合SpringCloud进行使用,而链路信息可以通过Openfeign、RestTemplate进行传递,这会在我们后期的知识点中讲到。
代码示例
如果您喜欢本篇文章请为源码仓库点个Star,谢谢!!!
本篇文章示例源码可以通过以下途径获取,目录为apiboot-logging-integrates-eureka-report-logs:
ApiBoot Logging整合SpringCloud Eureka负载均衡上报日志
https://blog.minbox.org/apiboot-logging-integrates-eureka-report-logs.html

OAuth vs SAML vs OpenID
