python微服务架构设计模式_单体架构、微服务架构、设计微服务的原则

单体架构

什么是单体架构?

单体架构也称之为单体系统或者是单体应用。

就是一种把系统中的所有的功能、模块耦合在一个应用中的架构方式

Mvc架构就是单体架构

单体架构有哪些特点?

打包成一个独立的单元(导成一个唯一的jar包或者是war包)

会一个进程的方式来运行

单体架构的优缺点是什么?

优点:

项目易于管理

部署简单

缺点:

测试成本高

可伸缩性差

可靠性差

迭代困难

跨语言程度差

团队协作难

微服务架构

什么是微服务?

微服务是一种架构风格。

一个大型的复杂软件的应用,由一个或多个微服务组成。

系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。

每个微服务仅关注于完成一件任务并很好的完成该任务。

常见的架构风格有哪些?

架构风格是项目的一种设计模式

客户端与服务端的

基于组件模型的架构

分层架构

面向服务架构

微服务架构有哪些特点?

系统是由多个服务构成

每个服务可以单独独立部署

每个服务之间是松耦合的。服务内部都是高内聚的,外部是低耦合的。高内聚就是每个服务只关注完成一个功能。

微服务架构的优缺点是什么?

优点:

测试容易

可伸缩性强

可靠性强

跨语言程度会更灵活

团队协作容易

系统迭代容易

缺点:

运维成本过高,部署数量较多

接口兼容多版本

分布式系统的复杂性

分布式事务

常见软件架构方式的区别

什么是MVC架构?

Mvc架构就式一个单体架构

代表技术:Struts2、SpringMVC、Spring、Mybatis

什么是RPC架构?

RPC(Remote Procedure Call):远程过程调用。它是一种通过网洛从计算机程序上请求服务,而不需要了解底层网络技术的协议。

代表技术:Thrift、Hessian等等

什么是SOA架构?

SOA(service oriented Architecture):面向服务架构

ESB(Enterparise Servce Bus):企业服务总线,服务中介。主要是提供了一个服务于服务之间的交互。

ESB 包含的功能如:负载均衡,流量控制,加密处理,服务的监控,异常处理,监控告急等等。

代表技术:Mule、WSO2

AKF拆分原则

设计微服务的原则是什么?

AKF拆分原则

前后端分离原则

无状态服务

RestFul的通信份风格

什么是AKF拆分原则?

通过加机器就可以解决容量和可用性问题。

AKF拆分原则中的Y轴表示什么?

Y轴(功能):按照不同的服务功能进行拆分

AKF拆分原则中的X轴表示什么?

X轴(水平扩展):关注水平扩展,也就是”加机器解决问题”

AKF拆分原则中的Z轴表示什么?

Z轴(数据分区):关注服务和数据的优先级划分,如按地域划分

前后端分离原则

什么是前后端分离原则?

前后端分离原则,简单来讲就是前端和后端的代码分离,我们推荐的模式是最好采用物 理分离的方式部署,进一步促使更彻底的分离。如果继续直接使用服务端模板技术,如: jsp, 把 java、js、html、css 都堆到一个页面里,稍微复杂一点的页面就无法维护了。

无状态服务

什么是无状态服务?

状态::如果一个数据需要被多个服务共享,才能完成一笔交易,那么这个数据被称为状态。进而依赖这个“状态”数据的 服务被称为有状态服务,反之称为无状态服务。

RestFul通信风格

什么是RestFul通信风格?

作为一个原则来讲本来应该是个“无状态通信原则”,在这里我们直接推荐一 个实践优选的 Restful 通信风格 ,因为他有很多好处:

1) 无状态协议 HTTP,具备先天优势,扩展能力很强。例如需要安全加密,有 现成的成熟方案 HTTPS即可。

2) JSON 报文序列化,轻量简单,人与机器均可读,学习成本低,搜索引擎友 好。

3) 语言无关,各大热门语言都提供成熟的 RestfulAPI 框架,相对其他的一些 RPC 框架生态更完善。

你可能感兴趣的:(python微服务架构设计模式)