Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

数据库自动同步的文章数据halo不展示 #5412

Closed
htc10 opened this issue Feb 27, 2024 · 11 comments
Closed

数据库自动同步的文章数据halo不展示 #5412

htc10 opened this issue Feb 27, 2024 · 11 comments
Labels
priority/awaiting-more-evidence Lowest priority. Possibly useful, but not yet enough support to actually get it done. triage/needs-information Indicates an issue needs more information in order to work on it.

Comments

@htc10
Copy link

htc10 commented Feb 27, 2024

System information

Halo 2.12.0+版本
postgres 15.4

What is the project operation method?

Docker Compose

What happened?

我有2个不同的节点,halo和postgres独立部署。
我在A节点添加一篇文章,由数据同步工具同步到B节点数据库,并且B数据库中数据可查最新添加的文章。
问题:
A节点文章在前后台都展示,B节点文章在前后台均不展示。
目前解决方案:
重启B节点,文章可展示
或者在B节点访问后台文章的posts/editor地址,文章可展示。
实际是我不止AB两个节点,所有节点操作一遍很麻烦,希望解决该问题。

Halo 2.12.0版本开始出现 Halo 2.11.0未出现该问题。

Relevant log output

没有异常日志

Additional information

No response

@guqing
Copy link
Member

guqing commented Feb 27, 2024

目前 Halo 并不支持多节点部署包括插件和数据同步以及登陆等都是需要考虑的点,Halo 目前只能优先考虑目前更加迫切需要的功能,多实例部署目前这不是 Halo 的重点,由于现在没有使用场景得看后续反馈,你可以说一下你多实例部署的原因吗,是遇到了什么瓶颈或者出于什么考虑以给我们提供参考

/triage needs-information
/priority awaiting-more-evidence

@f2c-ci-robot f2c-ci-robot bot added triage/needs-information Indicates an issue needs more information in order to work on it. priority/awaiting-more-evidence Lowest priority. Possibly useful, but not yet enough support to actually get it done. labels Feb 27, 2024
@htc10
Copy link
Author

htc10 commented Feb 27, 2024

目前 Halo 并不支持多节点部署包括插件和数据同步以及登陆等都是需要考虑的点,Halo 目前只能优先考虑目前更加迫切需要的功能,多实例部署目前这不是 Halo 的重点,由于现在没有使用场景得看后续反馈,你可以说一下你多实例部署的原因吗,是遇到了什么瓶颈或者出于什么考虑以给我们提供参考

/triage needs-information /priority awaiting-more-evidence

我的多实例部署的应用场景是全球任何地方都能快速访问到我的博客。
我认为这是BUG,因为2.11版本数据完成同步后可正常展示文章,2.12版本开始就不展示了。

@ruibaby
Copy link
Member

ruibaby commented Feb 27, 2024

这个问题的具体原因是 2.12 在 #5121 中实现的索引机制,由于目前索引是存在内存的,所以没有办法在两台机器上共享。

我不认为这是一个问题,如 #5412 (comment) 中所说,不仅索引会有问题,其他地方也可能出现问题,从 Halo 2 最开始到现在都还没有考虑过多实例的场景。

@htc10
Copy link
Author

htc10 commented Feb 27, 2024

这个问题的具体原因是 2.12 在 #5121 中实现的索引机制,由于目前索引是存在内存的,所以没有办法在两台机器上共享。

我不认为这是一个问题,如 #5412 (comment) 中所说,不仅索引会有问题,其他地方也可能出现问题,从 Halo 2 最开始到现在都还没有考虑过多实例的场景。

我觉得可以通过定时任务更新索引来解决这个问题。如果贵团队没有意愿解决该问题,我只能每天定时重启halo,虽然这样很Low。

@ruibaby
Copy link
Member

ruibaby commented Feb 27, 2024

@htc10 这虽然不是我们目前的重点,但后续是有计划针对内存缓存和索引做优化的,比如可配置 Redis 或者文件存储的方式。

@ruibaby
Copy link
Member

ruibaby commented Feb 27, 2024

我的多实例部署的应用场景是全球任何地方都能快速访问到我的博客。

如果仅仅是为了这个需求,我个人建议用全球可访问的 CDN 服务,使用 Halo 单实例。

@htc10
Copy link
Author

htc10 commented Feb 27, 2024

@ruibaby halo这个项目毋容置疑非常的棒,但是从架构上来说往有状态服务越做越深,不利于未来无状态服务的改造。

@htc10
Copy link
Author

htc10 commented Feb 27, 2024

我的多实例部署的应用场景是全球任何地方都能快速访问到我的博客。

如果仅仅是为了这个需求,我个人建议用全球可访问的 CDN 服务,使用 Halo 单实例。

感谢您的建议,我大部分节点已完成纯静态化的改造,但是由于地理位置的问题,不得不需要有就近halo服务提供后端接口,比如搜索、评论的功能。

@ruibaby
Copy link
Member

ruibaby commented Feb 27, 2024

@htc10 如果当前没有办法处理的话,你可以暂时先使用 2.11 版本。

但是从架构上来说往有状态服务越做越深,不利于未来无状态服务的改造。
感谢您的建议,我大部分节点已完成纯静态化的改造

当前你多台机器部署是如何处理的呢?比如插件、主题、附件等。可以给我们参考下。

@htc10
Copy link
Author

htc10 commented Feb 27, 2024

@htc10 如果当前没有办法处理的话,你可以暂时先使用 2.11 版本。

但是从架构上来说往有状态服务越做越深,不利于未来无状态服务的改造。
感谢您的建议,我大部分节点已完成纯静态化的改造

当前你多台机器部署是如何处理的呢?比如插件、主题、附件等。可以给我们参考下。

我的处理方法未实现自动化:
插件和主题都是手搓,即一个节点通过后台安装或更新完毕后,将插件、主题目录同步到其他节点,重启halo。这个问题我觉得可以参考下jenkins的架构,他也是插件热部署,但是他支持集群模式。
附件存储是自建的minio,多节点部署,一个附件上传,所有节点自动同步,这个并不困难。

@guqing
Copy link
Member

guqing commented Feb 27, 2024

@ruibaby halo这个项目毋容置疑非常的棒,但是从架构上来说往有状态服务越做越深,不利于未来无状态服务的改造。

我们得先确保基础功能完善的前提下才能去做这方面的改造 还没到那个体量就过度超前设计现有的精力达不到 另一方面是很多功能还处于验证阶段并不稳定 需要等成熟以后才会进行进一步的完善

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority/awaiting-more-evidence Lowest priority. Possibly useful, but not yet enough support to actually get it done. triage/needs-information Indicates an issue needs more information in order to work on it.
Projects
None yet
Development

No branches or pull requests

3 participants