在同一台计算机上的不同应用程序之间共享数据并在数据发生更改时通知它们的最佳做法是什么?
我有4个应用程序使用相同的设置项目来更改其设置.当我更改项目中的设置时,其他应用程序必须对此更改执行操作,并且必须知道设置已更改.
我想过IPC进行设置更改,然后将更改信息广播给所有用户,但如果这样的库已经存在,那将会很棒.
编辑:
我找到了一个适合我的解决方案.我们决定不在此功能上花费大量时间,因为更新其他应用程序并非极端.
我们像以前一样将设置保存在XML文件中,并在该文件上注册了FileSystemWatcher以获取所有更改.因此,如果我更改设置,则所有4个应用程序都会读取设置文件,并确定是否必须执行操作.
目标:
我想在 docker 容器中运行 elk 堆栈。能够通过 nginx 代理访问 ELK Stack,以绕过服务的各个端口。
Kibana 服务(默认端口 5601)
http://<server>.com:5601
Run Code Online (Sandbox Code Playgroud)
应可通过以下地址访问:
http://<server>.com/kibana
Run Code Online (Sandbox Code Playgroud)
问题:
问题是,在我将 server.basePath 设置添加到配置后,无法访问 kibana 站点。只有将 Kibana 的每个基本 api 调用添加到 nginx 配置(/api、/ui、...)中,我才能启动该服务。
配置:
Kibana 的配置:
/opt/kibana/config/kibana.yml
Run Code Online (Sandbox Code Playgroud)
有以下条目:
server.host: "0.0.0.0"
server.basePath: "/kibana"
Run Code Online (Sandbox Code Playgroud)
其他一切都是默认的
多库server.basePath
Run Code Online (Sandbox Code Playgroud)# Enables you to specify a path to mount Kibana at if you are running behind a proxy. This only affects # the URLs generated by Kibana, your proxy is expected to remove the basePath value before forwarding requests # …