我最近开始使用 halo 作为我的博客框架,它现代、简洁、功能足够全面。我很想了解他的代码架构,但是在阅读了 halo 官方文档和代码后我仍然不能完全理解它,下面是我目前的认知和我的疑问,希望各位可以不吝赐教。
认知:
- 后端代码主体是 application 模块,这是一个 springboot 项目
- application 反向代理了 3000 和 4000 端口,3000 是控制台端口,4000 不知道是什么
- 后端使用了 webflux 而非常见的 springmvc,dao 层使用了非阻塞式的写法
- 数据库只有一张表,以 kv 形式存储,通过名字可以猜出来这里面储存着文章之类的数据。以 blob 类型存储。应该有对 blob 的处理代码但是我暂时还没有找到。
- 控制台是常见的前后端交互模式,博客主站是模板引擎渲染出来的页面。
疑问:
- 4000 端口是什么应用?
- 为什么要用 webflux 而不是 springmvc?
- console 和后端是两个进程,从部署方式上来看,halo 似乎在一个 docker 容器中同时启动了这两个进程,这是如何实现的?