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