我需要一种简单的方法来监视分布在许多HP-UX服务器上的多个文本日志文件.它们是来自多个分布式遗留系统的文本和XML日志文件的混合.目前我们只是ssh到服务器并使用tail -f和grep,但是当你有许多日志要跟踪时,这不会扩展.
由于日志采用不同的格式,文件只是文件夹(当达到一定大小时自动旋转),我需要远程收集它们并以不同的方式解析每个文件.
我最初的想法是创建一个简单的守护进程,我可以在每个服务器上运行每个文件类型的自定义文件阅读器,将其解析为可以通过套接字通过网络导出的通用格式.在本地运行的另一个查看器程序将连接到这些套接字,并在一些简单的选项卡式GUI中显示已解析的日志或聚合到控制台.
如果我以这种方式实现它,我应该尝试转换为什么日志格式?
还有其他更简单的方法吗?我是否应该尝试将日志文件转换为log4j格式以与Chainsaw一起使用,或者是否有更好的日志查看器可以连接到远程套接字?我可以按照另一个日志问题的建议使用BareTail吗?这不是一个大规模分布式系统,并且不能将所有应用程序的当前日志记录实现更改为使用UDP广播或将消息放在JMS队列上.
我正在尝试构建一个简单的PoC来替换当前依赖于主Java(Spring MVC 4.2)Web应用程序中加载的JAR文件的应用程序,以在启动时声明其他控制器.它看起来非常像:
Client <--HTTP--> Gateway+app (Spring MVC + order.jar)
Exposed endpoints:
/ping via controller in core Spring app
/orderApp/doSomething via controller in order.jar
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望将每个JAR文件作为独立的Spring Boot应用程序,使用Spring Integration 4.2(通过AMQP)与面向外部世界的HTTP网关交换数据.一点架构:
Client <--HTTP--> Gateway (Spring MVC) <--AMQP--> Standalone orderApp (Spring Boot)
Exposed endpoints:
/ping via controller in core Spring MVC app
/{appName}/** via controller in core Spring MVC app
Run Code Online (Sandbox Code Playgroud)
我在MVC应用程序的控制器中有逻辑,找到哪个AMQP交换机应该接收基于的消息appName
,我使用网关串行化HTTP请求,将其发送到正确的应用程序,可以处理它,将回答发送回主要Spring应用程序将响应转发给客户端.这里没问题.
但是,我希望尽可能重用@RequestMapping
我目前在JAR文件中使用的方便注释.这些JAR基本上包含额外的控制器,在给定的根下暴露端点.
@RequestMapping
如果输入URL,请求正文和标题,如何手动触发逻辑?例如,假设我有一个类似的实现:
@RequestMapping("projects/{projectId}")
public Project projectById(@PathVariable final String projectId) {
(...)
return project;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法从我的独立应用程序中的某个地方的自定义服务代码我可以做一个调用handler.getResponse("projects/123abc", requestBody, …