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

后端项目下载与配置

部署我们采用的是Linux、Docker虚拟机,我们不需要在Linux上再次去建立一个编译的环境。

这个编译的环境只需要在Windows上去完成就可以了,在Windows系统上将代码编译出来,拷贝到Linux上进行部署。

本节我们将在Windows上部署和配置编译环境,首先来了解一下这个人人网后端开源项目使用了哪些技术。

人人网开源项目名称叫“renren-fast”,这个项目采用了目前最为流行的SpringBoot构建出来的,具体所用的框架如下所示:

主要包含了:SSM框架、SpringBoot、权限管理用到的Shiro、高速缓存用到的Redis、后台API的调试用到的Swagger、保存、认证和授权信息用到的JWT

Swagger

Swagger是一个后台API调试的技术,在前后端分离的后端项目里,往往需要开放一些网络调用的接口,支持的是Http协议的调用,在测试这些接口传入的参数返回的结果的时候,用的就是专有的测试客户端Swagger技术。

JWT

一个单体的后端项目应该向着微服务的架构去演进。

在微服务架构里,假设有A和B两个后端项目,这两个后端项目完成的业务是不一样的。

比如说有一个用户需要在A这个后端项目上去完成一些操作,正常登陆然后完成这个操作以后,下一个操作可能会在B这个后端项目上继续完成。

在访问B这个后端项目的时候不需要我们重新登陆,只要在任何一个微服务节点上登陆成功以后,正常访问其他微服务节点是不需要登录的,这个就叫做单点登录功能。

在传统的Session里保存用户认证授权信息的时候,这个Session和某一个项目是绑定在一起的,这个Session是不能在AB两个后端项目里共享的,这样子对我们的微服务是无法实现单点登录的。

JWT技术不在Session中保存认证授权信息,而是将这个信息保存在浏览器客户端上,客户端访问A后端项目就将这个认证信息发过来,访问B这个后端项目就将认证信息再发过来一次。

后端项目认证一下发过来的信息没问题的话就认为是登录成功了,这就是JWT技术,对于微服务架构特别重要。

Maven环境配置

Apache Maven是一套软件工程管理和整合工具

借助于Maven和项目里的pom.xml文件就可以把这个工程构建出来

首先下载Maven

Maven官网

下载完成后找到bin目录,并复制目录地址,并自行在环境变量中配置好

更改Maven镜像源为阿里云:

<mirror>  
      <id>alimaven</id>  
      <name>aliyun maven</name>  
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
      <mirrorOf>central</mirrorOf>          
</mirror>  

在eclipse中配置Maven

img

后端项目源码下载及导入

我这里下载的是以前的版本:https://gitee.com/renrenio/renren-fast/tree/6c0dccf4d0ab0a01800242d1c809ca882afc10e7/

img

解压缩然后导入eclipse即可。过程中Maven会下载jar文件。

img

然后请自行导入项目的数据库,过程就不再演示了。

修改数据库连接信息,连接信息在src/main/resources下的application-dev.yml中修改即可。

修改端口为8080

运行

访问:http://localhost:8080/renren-fast/swagger/index.html

测试登录

来源:https://www.cnblogs.com/wyt007/p/10807773.html

评论