- 博客(151)
- 收藏
- 关注
原创 学成在线代码获取
代码获取代码库地址前后端代码均在这个库里https://github.com/imxushuai/xcEdu拉取代码git clone https://github.com/imxushuai/xcEdu.gitnginx配置Nginx配置文件如下:#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/erro
2020-07-17 10:30:21
1684
原创 学成在线笔记十五:分布式事务(完结)
分布式事务概述什么是分布式系统部署在不同结点上的系统通过网络交互来完成协同工作的系统。比如:充值加积分的业务,用户在充值系统向自己的账户充钱,在积分系统中自己积分相应的增加。充值系统和积分系统是两个不同的系统,一次充值加积分的业务就需要这两个系统协同工作来完成。什么是事务事务是指由一组操作组成的一个工作单元,这个工作单元具有原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)。原子性:执行单元中的操作要么全部执行成功,要么
2020-07-17 10:28:54
555
原创 学成在线笔记十四:用户授权
用户授权需求分析管理员给用户分配权限,权限数据写到数据库中。认证服务在进行用户认证时从数据库读取用户的权限数据(动态数据)权限数据模型五张表,标准的权限模型设计。比较简单易懂。xc_user用户表,存储了系统用户信息,用户类型包括:学生、老师、管理员等xc_role角色表,存储了系统的角色信息,学生、老师、教学管理员、系统管理员等xc_user_role用户角色表,一个用户可拥有多个角色,一个角色可被多个用户所拥有xc_menu模块表,记录了菜单及菜单下的权
2020-07-17 10:27:38
434
原创 学成在线笔记十三:用户中心以及Zuul网关
用户认证认证流程分析客户端请求认证服务进行认证。认证服务认证通过向浏览器cookie写入token(身份令牌)认证服务请求用户中心查询用户信息。认证服务请求Spring Security申请令牌。认证服务将token(身份令牌)和jwt令牌存储至redis中。认证服务向cookie写入 token(身份令牌)。前端携带token请求认证服务获取jwt令牌前端获取到jwt令牌并存储在sessionStorage。前端从jwt令牌中解析中用户信息并显示在页面。前端携带coo
2020-07-17 10:26:45
455
1
原创 学成在线笔记十二:Spring Security Oauth2 JWT
用户认证需求分析用户认证与授权什么是用户身份认证?用户身份认证即用户去访问系统资源时系统要求验证用户的身份信息,身份合法方可继续访问。常见的用户身份认证表现形式有:用户名密码登录,指纹打卡等方式。什么是用户授权?用户认证通过后去访问系统的资源,系统会判断用户是否拥有访问资源的权限,只允许访问有权限的系统资源,没有权限的资源将无法访问,这个过程叫用户授权。单点登录需求本项目包括多个子项目,如:学习系统,教学管理中心、系统管理中心等,为了提高用户体验性需要实现用户只认证一次便可以在多个拥有访问权限
2020-07-17 10:25:24
792
原创 学成在线笔记十一:媒资管理系统集成
学习页面查询课程计划后端开发修改xc-service-searcj服务中的代码API定义 @ApiOperation("根据id查询课程信息") Map<String, EsCoursePub> getAll(String id);EsCourseController @Override @GetMapping("getall/{id}") public Map<String, EsCoursePub> getAll(@PathVar
2020-07-17 10:24:16
533
原创 学成在线笔记十:媒资管理
视频处理需求分析原始视频通常需要经过编码处理,生成m3u8和ts文件方可基于HLS协议播放视频。通常用户上传原始视频,系统自动处理成标准格式,系统对用户上传的视频自动编码、转换,最终生成m3u8文件和ts文件,处理流程如下:用户上传视频成功。系统对上传成功的视频自动开始编码处理。用户查看视频处理结果,没有处理成功的视频用户可在管理界面再次触发处理。视频处理完成将视频地址及处理结果保存到数据库。视频处理流程如下:视频处理进程的任务是接收视频处理消息进行视频处理,业务流程如下:监听MQ
2020-06-15 22:09:12
388
原创 学成在线笔记九:在线学习
准备环境(必须)配置hosts文件# xcEdu127.0.0.1 localhost127.0.0.1 eureka01127.0.0.1 eureka02127.0.0.1 www.xuecheng.com127.0.0.1 ucenter.xuecheng.com127.0.0.1 video.xuecheng.com192.168.136.110 img.xuecheng.com配置nginx新增配置如下: #学成网媒体服务 server {
2020-06-15 22:08:20
380
原创 学成在线笔记八:课程搜索
课程发布关联改动课程发布时,同步索引库数据CoursePubRepositorypackage com.xuecheng.manage_course.dao;import com.xuecheng.framework.domain.course.CoursePub;import org.springframework.data.jpa.repository.JpaRepository;public interface CoursePubRepository extends JpaReposi
2020-06-15 22:07:31
465
原创 学成在线笔记七:注册中心与课程预览发布实现
Eureka注册中心在前后端分离架构中,服务层被拆分成了很多的微服务,微服务的信息如何管理?Spring Cloud中提供服务注册中心来管理微服务信息。为什么要用注册中心?1、微服务数量众多,要进行远程调用就需要知道服务端的ip地址和端口,注册中心帮助我们管理这些服务的ip和端口。2、微服务会实时上报自己的状态,注册中心统一管理这些微服务的状态,将存在问题的服务踢出服务列表,客户端获取到可用的服务进行调用。注册中心工程搭建依赖<?xml version="1.0" encoding="U
2020-06-15 22:06:39
430
原创 学成在线笔记六:分布式文件系统
FastDFS相关FastDFS简介参考:http://www.xushuai.fun/2018/12/22/FastDFS简介/FastDFS安装及配置参考:http://www.xushuai.fun/2018/12/22/FastDFS安装/文件上传微服务需求分析在很多系统都有上传图片/上传文件的需求,比如:上传课程图片、上传课程资料、上传用户头像等,为了提供系统的可重用性专门设立文件系统服务承担图片/文件的管理,文件系统服务实现对文件的上传、删除、查询等功能进行管理。各各子系统不再开
2020-06-15 22:05:23
235
原创 学成在线笔记五:页面发布及课程管理
页面发布技术方案本项目使用MQ实现页面发布的技术方案如下:技术方案说明:平台包括多个站点,页面归属不同的站点。发布一个页面应将该页面发布到所属站点的服务器上。每个站点服务部署cms client程序,并与交换机绑定,绑定时指定站点Id为routingKey。指定站点id为routingKey就可以实现cms client只能接收到所属站点的页面发布消息。页面发布程序向MQ发布消息时指定页面所属站点Id为routingKey,将该页面发布到它所在服务器上的cms client。页面发布流
2020-06-15 22:04:24
670
原创 学成在线笔记四:页面静态化
页面静态化流程页面静态化流程如下图:、静态化程序首先读取页面获取DataUrl。静态化程序远程请求DataUrl得到数据模型。获取页面模板。执行页面静态化。CMS模板文件上传CMS页面模板文件上传功能实现,该功能在新增或编辑模板的时候可进行模板文件的上传最终页面效果如下:后端CmsTemplateControllerApi新增接口定义 @ApiOperation("上传模板文件") String uploadTemplate(MultipartFile file
2020-06-15 22:03:28
277
原创 学成在线笔记三:CMS管理页面开发
注意:我是用的element-ui的版本位:2.10.1,若要使用本博客中的前端代码,建议修改为相同版本。修改方式:修改根目录下的package.json中dependencies中的element-ui的版本号为:2.10.1 即可自定义条件查询需求分析页面自定条件包含:站点ID:精确匹配模板ID:精确匹配页面别名:模糊匹配…服务端开发CmsPageService修改findList方法public QueryResponseResult findList(int page,
2020-06-15 22:01:22
503
原创 学成在线笔记二:前端开发
CMS前端开发导入工程(省略)创建cms模块在src/module下创建如下结构:页面Vue这里我直接放入我写好的代码修改src/module/cms/page/page_list.vue中的内容 <template> <div> <el-button type="primary" icon="el-icon-search" @click="query" style="margin-top: 20px">查询</el-but
2020-06-15 21:59:11
256
原创 学成在线笔记一:项目概述与CMS接口开发
项目介绍项目概述学成在线借鉴了MOOC(大型开放式网络课程,即MOOC(massive open online courses))的设计思想,是一个提供IT职业课程在线学习的平台,它为即将和已经加入IT领域的技术人才提供在线学习服务,用户通过在线学习、在线练习、在线考试等学习内容,最终掌握所学的IT技能,并能在工作中熟练应用。功能模块当前市场的在线教育模式多种多样,包括:B2C、C2C、B2B2C等业务模式,学成在线采用B2B2C业务模式,即向企业或个人提供在线教育平台提供教学服务,老师和学生通过平
2020-06-15 21:58:00
1463
原创 CentOS 7安装部署GitLab
前言好久没有更新过博客了,最近的工作确实比较忙(可以说忙的要死),前几个月也在搞黑马的在线教育,基本上已经差不多完成了,在线教育项目的文章也完成了大半,今天刚好有时间做个gitlab安装记录。最近公司换了新的代码服务器,之前服务器是在亚马逊上,价格相对贵点,为了节约成本这次换到了国内的云服务器;公司把Git私服也换了,之前用的gitblit,此次更新到了gitlab-ce(社区版);特此记录下...
2019-12-20 18:09:17
322
原创 十次方人工智能笔记二:人工智能
人工智能与机器学习什么是人工智能 人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人...
2019-09-17 16:51:52
397
原创 十次方人工智能笔记一:网络爬虫
爬虫框架WebMagic架构解析WebMagic的设计目标是尽量的模块化,并体现爬虫的功能特点。这部分提供非常简单、灵活的API,在基本不改变开发模式的情况下,编写一个爬虫。WebMagic的结构分为Downloader、PageProcessor、Scheduler、Pipeline四大组件,并由Spider将它们彼此组织起来。这四大组件对应爬虫生命周期中的下载、处理、管理和持久化等功能。...
2019-09-17 16:46:18
670
原创 十次方后端笔记十:容器管理与监控
Rancher安装和初始化(省略)参考文章:Rancher入门扩容和缩容扩容添加服务,不需要添加端口映射点击API -> Webhooks -> 添加接收器输入名称,扩容,选择刚刚创建的服务,输入数量。复制触发地址,使用POST请求访问该地址。(每执行一次,增加步长值相等数量的容器,直到容器数量达到最大数量)查看是否扩容成功缩容操作和...
2019-09-17 16:43:47
201
原创 十次方后端笔记九:容器化部署与持续集成
Dockerfile与DockerMaven的使用与操作参考:使用dockerfile构建镜像上传到云端dockermaven构建镜像并上传云端持续集成安装Gogs和Jenkins并运行。参考文章:???????? gogs的安装和使用???????? Jenkins安装配置Jekins安装Maven上传Maven压缩包到服务器安装Maven,解压即用。tar -zxvf apache...
2019-09-17 16:39:44
288
原创 十次方后端笔记八:网关、配置中心和消息总线
微服务网关Spring Cloud技术栈采用Zuul作为微服务网关,在整个架构中,Zuul是所有其他微服务的统一入口,对所有请求进行路由。管理后台微服务网关后台网关微服务创建Module(省略)引入依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4....
2019-09-17 16:36:42
402
原创 十次方后端笔记七:交友微服务与注册中心
微服注册中心使用Spring Cloud Eureka作为微服务注册中心。注册中心微服务创建Module(省略)引入依赖在tensquare_parent中加入Spring Cloud版本绑定 <dependencyManagement> <dependencies> <dependency> ...
2019-09-17 16:30:16
307
原创 十次方后端笔记六:微服务鉴权
用户微服务用户微服务密码加密存入数据库。密码加密准备工作引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId></depende...
2019-09-17 16:29:39
224
原创 十次方后端笔记五:用户和短信微服务
用户微服务用户微服务代码生成(省略)注意修改application 配置文件。用户注册需求:注册账号,用手机号注册,填写后发送短信验证码,填写短信验证码正确方可注册成功。思路:在用户微服务编写API ,生成手机验证码,存入Redis并发送到RabbitMQ准备工作引入依赖<dependency> <groupId>org.springframew...
2019-09-17 16:28:55
242
原创 十次方后端笔记四:搜索微服务
tensquare搜索微服务搜索微服务创建Module(省略)准备工作引入依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta...
2019-09-17 16:28:00
204
原创 十次方后端笔记三:吐槽微服务和文章评论功能
吐槽微服务吐槽微服务项目创建(省略)准备工作引入依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...
2019-09-17 16:27:09
486
原创 十次方后端笔记二:招聘、问答、文章和活动微服务
完成招聘、问答、文章以及活动微服务,并使用为部分数据添加缓存机制招聘微服务招聘微服务CRUD代码生成(省略)表结构分析招聘微服务分为两块:企业信息招聘信息tb_enterprise 企业表字段名称字段含义字段类型备注idID文本name企业名称文本summary企业简介文本address企业地址文本labe...
2019-09-17 16:25:59
297
原创 十次方后端笔记一:系统设计与标签管理模块
《十次方》是程序员的专属社交平台,包括头条、问答、活动、交友、吐槽、招聘六大频道。系统设计《十次方》采用前后端分离的系统架构,后端架构为:SpringBoot+SpringCloud+SpringMVC+SpringData 我们把这种架构也称之为全家桶。模块划分十次方工程共分为18个子模块(其中17个是微服务)模块名称模块中文名称tensquare_com...
2019-09-17 16:23:26
1048
原创 Spring Boot 整合 Activiti进阶
前言在上一篇文章中说了Spring Boot + Activiti 7的基本使用,本文章将更深入的带你了解Activiti 7。个人任务在上一篇文章其实有介绍到关于任务负责人的这个概念(Assignee)。指的时当任务执行到某个节点时,若该节点的负责人为:张三,那么就可以由Assignee查询到张三的代办任务,真实场景,就可以根据负责人来查询并执行任务。固定分配负责人固定分配负责人是指:...
2019-09-16 16:59:14
503
1
原创 Spting Boot 整合 Activiti入门
基本概念工作流工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。工作流系统一个软件系统中具有工作流的功能,我们把它称为工作流系统,一个系统中工作流的功能是什 么?就是对系统的业务流程进行自动化管理,所以工作流是建立在业务流程的基础上...
2019-09-16 16:58:09
529
原创 Spring Boot + JPA 多数据源配置
前言在实际的开发中,大多数时候一个项目用到的数据库源都只有一个,但是难免遇到特例,如果遇到了同个项目需要连接两个或更多数据源我们该怎么呢?本文带你了解 Spring Boot 配置多数据源。准备工作准备数据库,我这里使用同一个Mysql中的两个不同的数据库,并且分别在两个数据库中创建了一张数据表[外链图片转存失败(img-m6WjVUh5-1568624198625)(https:/...
2019-09-16 16:56:59
242
原创 Spring Boot + Quartz实现任务动态配置
背景最近帮别人开发一个数据定时导入的小项目时,需求中明确提出导入数据的时间为可配置式。所以写下这篇文章记录一下。准备工作准备mysql数据库,主要存储需要动态配置的cron表达式执行SQL,需要先创建数据库:springbootdbDROP TABLE IF EXISTS `job_cron`;CREATE TABLE `job_cron` ( `id` int(10) ...
2019-09-16 16:56:07
249
原创 Jenkins安装
Jenkins介绍Jenkins官网:Jenkins什么是JenkinsJenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。PS:关于自动化部署,我的博客使用的是Hexo + GitHub Pages + Travis C...
2019-09-16 16:54:45
165
原创 Gogs的安装和使用
Gogs介绍什么是GogsGogs 是一款极易搭建的自助 Git 服务。Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。可以理解为简易的GitHub。Gogs功能特性支持活动时间线支...
2019-09-16 16:53:24
2508
原创 DockerMaven构建镜像并上传云端
推送镜像到Docker Hub配置maven setting文件将Docker hub的账号密码配置在Maven的setting.xml文件中。将账号密码配置在servers节点中。<servers> <server> <id>docker-hub</id> <username>imxushuai&l...
2019-09-16 16:52:14
205
原创 使用Dockerfile构建镜像上传到云端
DockerfileDockerfile是用于构建Docker镜像的脚本文件。常用命令命令作用FROM image_name:tag定义了使用哪个基础镜像启动构建流程MAINTAINER user_name声明镜像的创建者ENV key value设置环境变量 (可以写多条)RUN command是Dockerfile的核心部分(可以写多条)...
2019-06-26 23:59:22
1384
9
原创 Docker安装ELK
所需环境CentOS 7服务器一台(云主机或虚拟机均可)在CentOS 7提前安装Docker环境且能够连接网络(下载镜像需要网络)安装Elasticsearch搜索Elasticsearch镜像docker search elasticsearch不建议使用最新版本,我这里下载6.6.1版本,和我另一篇文章中使用的版本一致。拉取镜像docker pull el...
2019-06-26 23:58:52
7760
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人