繁体   English   中英

在端口上带有事件记录器的应用程序:8080 在 SpringBoot 中监听来自 API 端口:8090 的调用

[英]App with Event logger on port:8080 listening calls from API port:8090 in SpringBoot

我正在尝试创建一个带有通知服务的应用程序,只要在 API 上进行调用。我是否可以在端口:8080 上创建一个记录器,当应用程序在服务器上运行时,它会监听在另一台服务器上运行的 api。 这两个应用程序都在本地机器上运行,用于测试目的,使用 Docker。

到目前为止,我一直在阅读https://www.baeldung.com/spring-boot-logging以实现它,但我在理解路径映射方面遇到了问题。 有任何想法吗?

首先让我们命名这两个应用程序:

  1. API - 您要监控的 API 服务
  2. 监视器 - 想要查看对 (1) 进行了哪些调用

有几种方法可以实现这一点。

a) 在 Monitor 上为入站流量打开一个套接字。 将 IP 地址和套接字端口手动传递给 API 服务器,让它打开与监视器的连接并沿着这个“管道”发送一些数据包。 这是最低级别的方法,简单但非常脆弱,因为您必须协调服务的启动,并决定应用程序如何交换数据的“协议”。

b) REST:在接受 POST 的 Monitor 应用程序上创建一个 RESTful controller。 手动将 IP 地址和端口通信到 API 服务器。 在需要时向 Monitor 应用发起 POST 请求。 这更健壮,但仍然需要小心启动服务器

c) 消息队列。 安装消息队列系统,如 RabbitMQ 或 ActiveMQ(在 Docker 容器中可用)。 API 服务器向Queue发布消息。 Monitor订阅队列。 必须更健壮,仍然需要告知每个应用程序 MQ 服务器的地址,但现在您可以按任何顺序停止/启动这两个应用程序

d) java 日志记录文章很好地开始了 java 日志记录。 大多数用例记录到本地服务器上的本地文件。 有一些后端日志记录的实现可以将日志发送到远程位置(我不认为那篇文章涵盖了它们),并且有一些方法可以添加您自己的此日志流量的自定义接收器。 在此选项中,在 API 端,它将使用普通的日志记录代码,而不知道日志记录的下游消耗。 您的监视器应用程序需要使用这种方法紧密集成到特定的日志记录系统中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM