这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天
最近把一些环境给部署到服务器上了,主要做了Redis、RabbitMQ、Nginx
Redis
我一开始是部署的单机版的,后面想了一下还是改成了部署主从的,目前是一个主机和两个从机,以及带了一个哨兵,这样子可以提供高可用性。主节点接受读写请求,多个从节点用来同步主节点的数据,这样子当主节点出现故障的时候,从节点可以手动或者说主动的升级,提供服务。其次从节点还能用做数据恢复,也可以读写分离提高性能,具体的我其实也有点不明白,打算学习一下看看。
RabbitMQ
我主要是想用RabbitMQ来实现异步的效果,有一些操作,在进行校验后,就可以返回成功提示,由其他的程序继续执行。例如当用户点赞或评论时,应用程序会将点赞或评论的信息发送到消息队列中。然后,后台任务或工作进程会从队列中获取消息并处理这些操作,例如将点赞数或评论数写入数据库。这样子在点赞或者说评论的时候不会阻塞应用程序,用户可以获得更快的响应。另外,在后台独立处理点赞和评论操作可以更好的利用硬件资源,从而提高系统的吞吐量和可扩展性。RabbitMQ还支持消息持久化,可以确保在系统故障时消息不会丢失,这个我还没看,得去研究一下。
Nginx
我打算将Nginx 作为负载均衡和反向代理使用,将客户端的请求均匀地分配给后端服务器,以提高系统的吞吐量和可用性。然后通过反向代理将客户端请求转发到后端服务器,并将后端服务器的响应返回给客户端,通过这样子去隐藏后端服务器的真实地址,不会直接暴露服务器的ip地址在外面。