活动室预约系统分单机版和集群版,主要致力于集群版的开发,单机版是为了小型系统使用,使用的是 sqlite 数据库,不支持集群模式,
集群版增加了 redis 缓存中间件,通过 redis 实现了一些分布式系统必备的组件,分布式锁,基于 redis pub/sub 的 RedisEventBus,计数器等。
在线示例:
下面的配置想要体验的话可以用已有配置,如果要自己部署用的话建议自己注册换成自己的账号
本地演示(docker-compose)
项目提供了 docker-compose 的部署方式,你可以在项目根目录下找到 docker-compose.yml, docker-compose up
即可
生产部署
项目提供 k8s 部署所需的 yaml 配置
手动打包
下载源代码,切换目录到 /k8s/charts/reservation-server
helm dependency update # 更新依赖
helm package . # 打包 chart
helm install reservation reservation-server-1.0.0.tgz # install chart
AppHub
helm repo add apphub https://apphub.aliyuncs.com/ # add repo
helm install apphub/reservation-server --version 1.0.0
我自己部署了一个 demo,可以在 https://reservation.weihanli.xyz 体验
demo 部署架构
最外层有一个 nginx,nginx 转发请求到 k8s 内部服务,再由 k8s 去调度,选择哪一个 pod 处理请求,
使用到的 redis 和 elasticsearch 均部署在 k8s 的内部,通过 ClusterIP 的方式使用,不直接对外暴露
数据库使用外部的数据库(如果需要也可以像 redis 那样部署成集群内部使用),可以使用云数据库
k8s 部署详情:
k8s 部署 yaml 定义可以参考下面的链接: