本教程将从零开始部署一个前后端分离的开源项目,利用docker虚拟机的容器技术,采用分布式集群部署,将项目转换成为高性能、高负载、高可用的部署方案。包括了MySQL集群、Redis集群、负载均衡、双机热备等等。

项目简介

本教程将从零开始部署一个前后端分离的开源项目,利用docker虚拟机的容器技术,采用分布式集群部署,将项目转换成为高性能、高负载、高可用的部署方案。包括了MySQL集群、Redis集群、负载均衡、双机热备等等。

部署图

img

所用到的主流技术

Docker容器、前后端集群、MySQL集群、Redis集群、Haproxy负载均衡、Nginx负载均衡、Keepalived实现双机热备

img

前后端分离项目部署图

img

前后端分离项目开源框架介绍

本次教程所采用的前后端分离的项目开源框架是人人网的renren-fast,前台开发语言采用Vue,后台是java。

前后端分离项目开源框架介绍

总体部署方案概述

数据库我们采用的是集群,每一个MySQL节点都是要发布到一个Docker虚拟机实例中(实例就是一个虚拟的空间,或者叫容器),每一个MySQL都要部署到独立的容器里面,这些MySQL之间有一个集群环境。

然后我们不能把所有的数据库的请求都定向给一个MySQL去处理,因为这样负载会很高,所以我们应该分散MySQL的处理数据的请求,那么我们该怎么做呢?

答案就是做一个负载均衡,后台程序发给数据库所有的请求都由负载均衡分散给其余的MySQL,这些MySQL就能去处理对应的请求了,这样每一个MySQL节点的负载相应的会低一点。

而后台项目要体现的就是高可用,任何一个节点挂掉后不影响整体的运行,所以后台项目也要搞集群,这个集群用的技术就是Nginx了。

再往前就是前端项目了,前端节点如果宕机肯定也不能掉链子,也要搞集群,前端集群中间件也采用的是Nginx。

以上的这些节点都是要部署在独立的容器里面。

除了数据库之外还要使用高速缓存,高速缓存用的是redis,也要部署在容器当中组成一个集群。

https://www.cnblogs.com/wyt007/p/10807746.html

评论