笔记

定义软件实现的功能

 

技术选型

    前端技术选型

    后端技术选型

 

数据库: PostgresSql

PostgreSQL 是一个功能大的开源象关系数据管理系ORDBMS),是跨平台的,完全支持ACID特性的,可以在日常的大部分操作系运行

 

特性

说明

开源

基于BSD协议的开源软件.

跨平台

PostgreSQL几乎可以所有Unix操作系下运行 (根据统计有至少34种平台),自8.0版本以后, Windows平台下的也使用原生支持方式。

准支持SQL

和其他关系数据. 覆盖了 SQL-2/SQL-92 SQL-3/SQL-99

丰富的数据

基本数据型、复合数据型、xml类型等。

PostgreSQL 的衍生品

Greenplum, Data nCluster, Netezza

SymfoWAREopen系】:GX使用的数据就是基于PostgresSql的数据

身份验证功能.

支持OS认证Kerberos 认证Ident 认证等多种认证方式。

其他

高度可定制性,很多高级开发语言有原生的编程接口,多版本并发控制(MVCC),按时间点恢复(PITR),表空间、异步复制,嵌套事务、在线热备、复杂查询的规划和优化以及为容错而进行的预写日志等。

优点:使用量排名/支持的数据类型/

https://db-engines.com/en/ranking

 

 

缓存:Redis3.2

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构。

特性

说明

开源

基于BSD协议

支持多种数据类型

string(字符串)、hash(哈希)、list(列表)、set(集合)和zset(sorted set 有序集合)

支持数据持久化

可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用.RDB(手动、自动)/AOF(手动、自动)

支持事务/操作的原子性

Redis的所有操作都是原子性的。单个操作是原子性的。多个操作也支持事务。

支持数据的备份

master-slave模式的数据备份,主从同步,读写分离。从而支持高并发。

单线程,高速.

基于管道技术(pipeline),单线程的I/O多路复用技术实现.

其他

可用于存,消息,按key时间期后将会自动删

Redis数据的持久化:https://segmentfault.com/a/1190000015983518

 

Redis数据的持久化:https://segmentfault.com/a/1190000015983518

https://segmentfault.com/a/1190000011440752

  • 原生批量命令是原子性,Pipeline是非原子性的.
  • 原生批量命令是一个命令对应多个key,Pipeline支持多个命令.
  • 原生批量命令是Redis服务端支持实现的,而Pipeline需要服务端与客户端的共同实现.

非阻塞式的socket、select/poll/epoll:

 

 

Redis长连接和短连接、数据库连接池和单线程单进程的关系:

 

 

5中I/O复用模型的理解:

 

 

异步的实现原理:

 

  • 第一层:应用层。定义了用于在网络中进行通信和传输数据的接口;
  • 第二层:表示层。定义不同的系统中数据的传输格式,编码和解码规范等;
  • 第三层:会话层。管理用户的会话,控制用户间逻辑连接的建立和中断;
  • 第四层:传输层。管理着网络中的端到端的数据传输;
  • 第五层:网络层。定义网络设备间如何传输数据;
  • 第六层:链路层。将上面的网络层的数据包封装成数据帧,便于物理层传输;
  • 第七层:物理层。这一层主要就是传输这些二进制数据。

 

RPC,

Web Service,

rest,

restFULL,

HTTP,

SOA: Service Oriented Architecture(体系结构)

SOAP: Simple Object Access Protocol(简单对象访问协议)

 

SOA和微服务架构都是一种组件模型,一种架构方式,不依赖于任何技术,因此

SOAPRPCREST是对SOA和微服务架构的组件或服务之间通信方式的不同实现。

SOAP:HTTP + XML.

REST:HTTP+JSON.

 

RPC协议。

RPCRemote Procedure Call:

TCP/IP模型和握手,挥手流程。

RPC服务。

HTTP服务。

DevOps

graphql (****)

长连接,短连接。

总体设计

    系统架构图

    UI概要设计

 

前端UI详细设计与实现

 

后台接口设计与实现

 

前后端对接

 

成果展示

 

工时/代码量统计

 

遇到问题及其解决方案

    前端

    后端

    前后端对接

 

 

统一身份认证:

1、利用Redis替换Servlet容器的HttpSession实现集群中的session共享。

效果是:在开发的过程中开发人员操作session和以往的操作方式没有什么区别,在分布式的环境中,多个服务可以共享一套Session信息,从而实现集群中的session共享,跨域session的共享。

2、单独服务部署。

3、Nginx实现反向代理将所有请求转发到“统一认证系统”进行认证。

4、认证成功,请求转发到真正的资源服务。

5、认证失败,直接返回。

Nginx实现反向代理和负载均衡:

 

带参数的接口怎么配置呢?

 

Redis的主从同步、读写分离配置;

  1. MasterRedis-2.8.19(主redis服务),SlaveRedis-2.8.19(从redis服务)
  2. 主:写、从:读

原理:https://www.cnblogs.com/hepingqingfeng/p/7263782.html

Restful:

遵守了rest 原则 的web服务。

REST原则:

REST是一个基于HTTP的API标准,一种规范,遵循REST风格的API可以使开发的接口通用,便于调用者理解接口的作用。

 

 

主要围绕三个方面:

              Resource:资源,主要指数据。

              Repersentational:数据的表现形式,json。

              State Transfer:状态变化。

 

支持的操纵:

POST:新增资源

DELETE:删除资源

PUT:修改资源

GET:获取资源

 

返回码:

2xx:请求正常处理并返回。

3xx: 重定向,请求资源位置发生了变化。

4xx: 客户端发送的请求有误。

5xx: 服务器端错误。

 

资源:所有数据均当做资源看待,URI即统一资源标识符。

URI设计原则:

只能使用名词,推荐使用复数。

统一使用小写字母。

不要包含文件(脚本)的扩展名。

URI中尽量使用连字符"-"代替下划线"_"的使用。

"_"一般用于对一个整体含义的字符串做了层级的分割

 

Swagger2的集成:

手写Api文档的几个痛点:

  1. 文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时。
  2. 接口返回结果不明确
  3. 不能直接在线测试接口,通常需要使用工具,比如postman
  4. 接口文档太多,不好管理

Swagger也就是为了解决这个问题,当然也不能说Swagger就一定是完美的,当然也有缺点,最明显的就是代码移入性比较强。

轻松的整合到Spring Boot,并与Spring MVC程序配合组织出强大RESTful API文档

可以减少我们创建文档的工作量

让维护文档和修改代码整合为一体

让我们在修改代码逻辑的同时方便的修改文档说明

Swagger2也提供了强大的页面测试功能来调试每个RESTful API

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值