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

部署图

所用到的主流技术

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

前后端分离项目部署图

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

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

总体部署方案概述

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

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

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

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

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

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

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

Docker环境下的前后端分离项目部署与运维的更多相关文章

  1. Docker环境下的前后端分离项目部署与运维(九)后端项目部署与负载均衡

    数据库准备 建立数据库 renren_fast ,然后运行renrenfast项目中的db文件夹内的脚本 -- 菜单 CREATE TABLE `sys_menu` ( `menu_id` bigin ...

  2. Docker环境下的前后端分离项目部署与运维(七)Redis高速缓存

    Redis高速缓存 利用内存保存数据,读写速度远超硬盘:可以减少I/O操作,降低I/O压力. 发红包.抢红包的数据可以存在高速缓存中,加快处理速度,不需要经过数据库 淘宝首页一些优惠活动商品等热数据可 ...

  3. Docker环境下的前后端分离项目部署与运维(六)搭建MySQL集群

    单节点数据库的弊病 大型互联网程序用户群体庞大,所以架构必须要特殊设计 单节点的数据库无法满足性能上的要求 单节点的数据库没有冗余设计,无法满足高可用 单节点MySQL的性能瓶领颈 2016年春节微信 ...

  4. Docker环境下的前后端分离项目部署与运维(十一)Docker Swarm技术

    Docker Swarm技术 docker swarm技术(之前的docker集群都是在 一个虚拟主机上的,但是如果这个主机挂掉了over了,docker技术就是多个虚拟主机形成一个集群) Swarm ...

  5. Docker环境下的前后端分离项目部署与运维(十二)使用Portainer管理Docker

    安装 docker hub地址:https://hub.docker.com/r/portainer/portainer/ # 每台服务器都要安装 docker pull portainer/port ...

  6. Docker环境下的前后端分离项目部署与运维(八)使用Docker部署RabbitMQ集群

    下载RabbitMQ镜像 镜像地址RabbitMQ Docker官方认证镜像地址:https://hub.docker.com/_/rabbitmq 安装命令安装之前,切记把Docker Hub设置为 ...

  7. 【Docker】1、 前后端分离项目 下载启动运行

    人人开源前后端分离项目下载与配置 文章目录 人人开源前后端分离项目下载与配置 前后端分离框架介绍 后端项目下载与配置 1.renren-fast后台项目介绍 2.开发环境搭建 3.下载后端renren ...

  8. nginx+vue+uwsgi+django的前后端分离项目部署

    Vue+Django前后端分离项目部署,nginx默认端口80,数据提交监听端口9000,反向代理(uwsgi配置)端口9999 1.下载项目文件(统一在/opt/luffyproject目录) (1 ...

  9. 前后端分离项目部署到Linux虚拟机

    最近做了一个springboot+vue的前后端分离项目,把它部署到Linux虚拟机上.下面是我的步骤和遇到的问题,需要的朋友可以看下(看的时候注意要全部看完到底部,因为我习惯是把我遇到的问题放到最后 ...

随机推荐

  1. rk3328设备树学习

    一.用到的rk3328好像使用了设备树 设备树我知道的有三种文件类型,dtbs是通过指令make dtbs编译的二进制文件,供内核使用. 基于同样的软件分层设计的思想,由于一个SoC可能对应多个mac ...

  2. ckeditor直接粘贴图片实现

    自动导入Word图片,或者粘贴Word内容时自动上传所有的图片,并且最终保留Word样式,这应该是Web编辑器里面最基本的一个需求功能了.一般情况下我们将Word内容粘贴到Web编辑器(富文本编辑器) ...

  3. Ubuntu redis 实战 持久化策略 主从复制 以及 故障恢复

    推荐文章 redis数据结构学习 redis持久化 redis主从复制 redis哨兵

  4. (42)嵌入式项目中常用到的C语言技能总结

    嵌入式项目中常用到的C语言技能 1.指针 .结构体. 枚举. 联合.数组.字符串.链表七个专题 2.结构体指针.结构体的多重嵌套[结构体中嵌套结构体.结构体中嵌套枚举.联合体.结构体中嵌套函数指针.一 ...

  5. Xyjj’s sequence

    Xyjj’s sequence #include<iostream> #include<cstdio> #include<cstring> #include< ...

  6. ES6 对象超类

    var parent = { foo() { console.log("Hello from the Parent"); } } var child = { foo() { sup ...

  7. 洛谷P4317 花(fa)神的数论题(数位dp解法)

    日常废话: 完了高一开学第二天作业就写不完了药丸(其实第一天就写不完了) 传传传传传送 显然爆搜肯定过不了这道题但是有60分 我们注意到在[1,n]中,有着相同的1的个数的数有很多.若有x个数有i个1 ...

  8. AOF — Redis 设计与实现

    w AOF — Redis 设计与实现http://redisbook.readthedocs.io/en/latest/internal/aof.html

  9. xcode archive灰色,无法打包的解决办法

    问题如图: 解决办法:目前的运行配置是使用模拟器,改成“iOS Device”即可 step1: step2: 修改后archive选项变为黑色,可点击状态了

  10. VMware 虚拟化编程(7) — VixDiskLib 虚拟磁盘库详解之三

    目录 目录 前文列表 VixDiskLib 虚拟磁盘库 VixDiskLib_GetMetadataKeys VixDiskLib_ReadMetadata 获取虚拟磁盘元数据 VixDiskLib_ ...