title: 黑马十次方项目第一天笔记
date: 2020-09-28 17:23:25
tags:
第1章 - 项目介绍和工程搭建 (第一天)
学习目标:
了解十次方项目需求;
了解前后端分离开发模式
理解RESTful
完成项目开发环境搭建
完成父工程、公共模块和文章微服务的搭建
掌握mybatis plus的使用,并开发完成文章微服务中文章的增删改查功能 掌握公共异常处理类的使用
1 十次方项目需求分析
1.1 项目介绍
十次方是程序员的专属社交平台,包括头条、问答、活动、交友、吐槽、招聘六 大频道。
十次方名称的由来:2的10次方为1024,程序员都懂的。如果你是一位技术大咖,那么赶快发布文章,增加知名度吧。
如果你是一名技术小白,那么赶快到问答频道寻求帮助的,这里高手如云哦!
2 系统设计**
2.1 开发模式
十次方项目采用前后端分离的开发模式
2.2 技术选型
后端:springboot + springcloud + mybatis plus + mysql5.7
前端:nodejs + NUXT + elementUI + vue
2.3 技术架构
采用前后端分离的系统架构
2.4 微服务模块划分
tensquare_common | 公共模块 | |
---|---|---|
tensquare_common | 公共模块 | |
tensquare_article | 文章微服务 | |
tensquare_gathering | 活动微服务 | |
tensquare_recruit | 招聘微服务 | |
tensquare_spit | 吐槽微服务 | |
tensquare_web | 前台微服务网关 | |
tensquare_eureka | 注册中心 | |
tensquare_sms | 短信微服务 |
3 RESTful**架构说明**
3.1 何为**RESTful**
RESTful架构是目前最流行的一种互联网软件架构是Roy Thomas Fielding在他2000年的博士论文中提出的是Representational State Transfer的缩写,翻译过来是”表现层状态转化” 是所有Web应用都应该遵守的架构设计指导原则
7个HTTP方法:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS
3.2 接口规范
十次方项目使用GET、POST、PUT、DELETE四种方法 幂等性:不论你请求多少次,资源的状态是一样的。
3.2.1 GET
安全且幂等
获取表示
变更时获取表示(缓存)
==适合查询类的接口使用==
3.2.2 POST
不安全且不幂等
使用服务端管理的(自动产生)的实例号创建资源 创建子资源
部分更新资源
如果没有被修改,则不过更新资源(乐观锁) ==适合数据提交类的接口使用==
3.2.3 PUT
不安全但幂等
用客户端管理的实例号创建一个资源
通过替换的方式更新资源
如果未被修改,则更新资源(乐观锁)
==适合更新数据的接口使用==
3.2.4 DELETE
不安全但幂等
删除资源
==适合删除数据的接口使用==
4 项目开发准备
4.1 开发环境
虚拟系统环境 VMware Workstation(或者云服务器)
虚拟机系统 CentOS 7
容器 docker
JDK1.8
数据库 mysql 5.7
开发工具 idea
项目构建工具 maven
所有的第三方工具如mysql等都是运行在docker 容器中的
4.3 接口测试工具**postman**
5 项目工程搭建
5.1 父工程搭建
1 | <parent> |
创建子模块继承父模块
分布式ID生成器
不能使用数据库本身的自增功能来产生主键值,原因是生产环境为分片部署的。
使用snowflake (雪花)算法(twitter出品)生成的主键值
41bit的时间戳可以支持该算法使用到2082年
10bit的工作机器id可以支持1024台机器
序列号支持1毫秒产生4096个自增序列id
整体上按照时间自增排序
整个分布式系统内不会产生ID碰撞
每秒能够产生26万ID左右