之前写过一个帖子在这里: https://v2ex.com/t/828646
Repo: https://github.com/madawei2699/free4chat
最近花了一周时间重写了 http://free4.chat ,加入了文字聊天功能(花费 1 天时间)。新的技术栈:
后端用 Elixir/Erlang 的好处是自带集群功能,目前两台服务器组建集群,客户端随机负载均衡策略选择某个服务器做接入,同一房间的用户可以分布在不同节点的服务器,相比之前 Go 语言的版本,有了极大的 Scale 能力。Elixir/Erlang 还有极其强大的可观测能力,可以在运行时 remote 到 VM 中查看 process 的状态。
前端用 NextJS 和 Tailwindcss 的好处在于大量的组件可以拿来即用,Tailwindcss 相比之前一些 UI 库好用到爆,可以让我这种前端小白在短时间糊出来还不错的页面,强烈推荐! RxJS 做组件间的通信工具,感觉比 Redux 要简单多了,Redux 是有点复杂。
DevOps 的话,后端部署是用 GitHub Actions 将 Docker 容器远程部署在 AWS EC2 上。前端是部署在 @Cloudflare Pages ,后端 API 服务器没有用 Nginx ,通过 iptables 将 80/443 端口流量转发至容器监听的端口,HTTPS/TLS 是由 @Cloudflare 自动配置的。
监控的话就用 Elixir hoenix 的 LiveDashboard 了。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.