美文网首页框架原理
《十次方》03、系统设计

《十次方》03、系统设计

作者: db41bbeed50c | 来源:发表于2018-12-18 11:24 被阅读126次

后端系统架构:SpringBoot+SpringCloud+SpringMVC+SpringData

那么,为什么选用微服务架构进行实现而不是SSM或SSH呢?

什么是微服务架构,他的作用又是怎样的呢?

以上,这些问题详细解释,可以参考一下文集:<u>https://www.jianshu.com/nb/32298744</u>这里我先简单的说一下。

首先,为什么选用微服务架构?这里我们就又不得不提及架构的演进了,这里我结合技术整体的串一下。从C语言的面向过程到Java的面向对象再到spring框架中AOP的面向切面。从MVC三层模式开发到前后端分离再到dubbo现在是微服务。开发所遵循的一个规律便是简化,而微服务相较于dubbo等而言更进一步的实现了和解决了:

独立开发部署服务;

速度和敏捷性;

更高的代码质量;

获得围绕业务功能创建/组织的代码;

提高生产力;

更容易扩展;

自由(在某种程度上)选择实施技术/语言。

至于,如何体现的这里就先不一一赘述了(在文集中业已和大家进行了介绍)。

另外,和想要和大家强调的一点便是微服务架构是一种架构风格而不是单纯的指代springboot、springcloud,其中的“微”也并不是指项目工程量、项目规模有所变小而是将具体的业务模块进一步划分了而已,这个概念大家可不要混淆哦!

整体的技术架构图,如下:

图片.png

大家在做项目的过程中不妨可以参考一下,其中MQ、redis等都可以根据实际的业务需要进行相应的替换。下面我们再一块看一下《十次方》的功能架构图:

图片.png

Restful架构

什么是restful架构?

RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。REST这个词,是Roy ThomasFielding在他2000年的博士论文中提出的。

REST 是Representational State Transfer的缩写,翻译是”表现层状态转化”。 可以总结为一句话:REST是所有Web应用都应该遵守的架构设计指导原则。

面向资源是REST最明显的特征,对于同一个资源的一组不同的操作。资源是服务器上一个可命名的抽象概念,资源是以名词为核心来组织的,首先关注的是名词。REST要求,必须通过统一的接口来对资源执行各种操作。对于每个资源只能执行一组有限的操作。

7个HTTP方法:GET/POST/PUT/DELETE/PATCH/HEAD/OPTIOS

接口规范:

GET

安全且幂等(安全:没有对数据库做出改变;幂等:操作1次和100次效果相同。)
获取表示
变更时获取表示(缓存)
200(OK) - 表示已在响应中发出
204(无内容) - 资源有空
301(Moved Permanently) - 资源的URI已被更新
303(See Other) - 其他(如,负载均衡)
304(not modified)- 资源未更改(缓存)
400 (bad request)- 指代坏请求(如,参数错误)
404 (not found)- 资源不存在
406 (not acceptable)- 服务端不支持所需表
500 (internal server error) 通用错误相应
503 (Service Unavailable)- 服务端当前无法处理请求

POST

不安全且不幂等(操作1次和100次效果不一样)
使用服务端管理的(自动产生)的实例号创建资源
创建子资源
部分更新资源
如果没有被修改,则不过更新资源(乐观锁)
200(OK)- 如果现有资源已被更改
201(created)- 如果新资源被创建
202(accepted)- 已接受处理请求但尚未完成(异步处理)
301(Moved Permanently)- 资源的URI被更新
303(See Other)- 其他(如,负载均衡)
400(bad request)- 指代坏请求
404 (not found)- 资源不存在
406 (not acceptable)- 服务端不支持所需表示
409 (conflict)- 通用冲突
412 (Precondition Failed)- 前置条件失败(如执行条件更新时的冲突)
415 (unsupported media type)- 接受到的表示不受支持
500 (internal server error)- 通用错误响应
503 (Service Unavailable)- 服务当前无法处理请求

PUT

不安全但幂等
用客户端管理的实例号创建一个资源
通过替换的方式更新资源如果未被修改,则更新资源(乐观锁)
200 (OK)- 如果已存在资源被更改
201 (created)- 如果新资源被创建
301(Moved Permanently)- 资源的URI已更改
303 (See Other)- 其他(如,负载均衡)
400 (bad request)- 指代坏请求
404 (not found)- 资源不存在
406 (not acceptable)- 服务端不支持所需表示
409 (conflict)- 通用冲突
412 (Precondition Failed)- 前置条件失败(如执行条件更新时的冲突)
415 (unsupported media type)- 接受到的表示不受支持
500 (internal server error)- 通用错误响应
503 (Service Unavailable)- 服务当前无法处理请求

DELETE

不安全但幂等
删除资源
200 (OK)- 资源已被删除
301 (Moved Permanently)- 资源的URI已更改
303 (See Other)- 其他,如负载均衡
400 (bad request)- 指代坏请求
404 (not found)- 资源不存在
409 (conflict)- 通用冲突
500 (internal server error)- 通用错误响应
503 (Service Unavailable)- 服务端当前无法处理请求

以上,部分是对于接口的定义。故此在这里要求大家在开发过程中规范化,做好每项功能、每项技术等都有迹可循。

十次方文集:https://www.jianshu.com/nb/32298744

相关文章

  • 《十次方》03、系统设计

    后端系统架构:SpringBoot+SpringCloud+SpringMVC+SpringData 那么,为什么...

  • 关于进制转换问题

    2进制十进制转 :1101=12的3次方+12的2次方+02的1次方+12的0次方=8+4+0+1=1310进制转...

  • 进制详解和类型说明符

    1.二进制转十进制 0b1100 = 0 * 2的0次方 + 0 * 2的1次方 + 1 * 2的2次方+ 1 *...

  • 03 后台系统设计流程

    最近在设计后台业务系统,从需求分析到原型设计,重走了一遍从0-1的过程,整理了一套设计流程,其中有思考也有总结。 ...

  • 【CUED译】响应式设计争议:留住用户与失去用户

    wanfor|2015-03-03|交互设计,网页重构,视觉设计 译前言:2015年响应式设计趋势的延续,也将带来...

  • 第269天

    1024,2的十次方,程序员日。

  • 系统设计(八)

    1. 系统设计 什么是系统设计 系统设计需要掌握哪些知识 如何设计和实现一个后端系统服务的设计 系统设计是一个初高...

  • 设计系统 Design Systems

    什么是设计系统?为什么要使用设计系统?如何建立设计体统?设计系统有没有弊端?有哪些相关的资源? 什么是设计系统? ...

  • 课程系统设计框架图

    看到“学校课程系统设计框架图”,对于全面阅读内容有了整体理解。作者对学校课程系统设计分了六个阶段,十个行动。而现在...

  • 深入理解C++11 核心编程(一)

    简介 C++98/03的设计目标:一、比C语言更适合系统编程(且与C语言兼容)。二、支持数据抽象。三、支持面向对象...

网友评论

    本文标题:《十次方》03、系统设计

    本文链接:https://www.haomeiwen.com/subject/rxmqkqtx.html