IT技术篇Java Web架构设计Java Web知识

关于微服务,你必须要知道的几个概念!!!

2019-07-24  本文已影响1人  一直想上树的猪

我们平时总说微服务、微服务、那么究竟什么是微服务呢?微服务跟传统的项目服务有什么区别呢?今天我们来一探究竟。

单体式架构

单体式架构
先来看看单体式架构:它的概念就是将项目的代码都合归一处。如果项目很小的时候特别灵活。但是如果项目大起来的话,必然会带来一定的缺点
1.项目迭代不灵活
2.项目组职责、权限不清
3.项目并发配置不灵活
4.项目部署扩展困难

微服务架构

微服务架构
微服务架构的核心观念就是“拆”,拆什么呢?就是将项目拆分几个独立的功能单元(服务)的架构
必有其优点
1.项目复杂度降低
2.团队界限明确
3.部署灵活

具体场景具体应用:

下面来看看什么样的产品用什么架构比较合适:


场景

常见的微服务框架

1.Dubbo/Dubbox

由阿里巴巴开发、当当网改良,基于RPC服务

2.Spring Cloud

由Spring团队开发,基于RESTful

微服务架构-服务类型

1.Provider

提供者,提供服务的一方

2.Consumer

消费者,调用服务的一方


模块拆分

微服务架构-通信方式

1.RPC

全称:Remote Procedure Call
支持RPC的微服务框架:Dubbo/Dubbox
基于TCP、与平台有关

2.RESTful

全称:Representational State Transfer
支持RPC的微服务框架:Spring Cloud/Dubbox
基于HTTP、与平台无关

微服务架构-设计原则

1.单一职责原则

对一个项目拆分的时候,每一个项目只能包含这一个项目的业务,而不能包含其他项目的业务

2.围绕业务切分

不能随意切分,尽量一个业务拆成一个项目

3.谁创建谁负责

在实际工作中,用到微服务肯定是因为用户量非常大, 技术团队也很多,比如用户模块,是A团队创建的就不能让B团队插手开发和部署的事情。这一块与devops理念很相似。

其他概念

分布式

对于分布式,它更加关注的是项目的拆分,对于一个大项目而言,有ABC三个模块,分布式就是将这个大项目拆分为A项目、B项目、C项目,而除了这种垂直性的拆分,还有可能对每一个子项目进行分层,使得业务更具体。分布式其实就是拆分,分为垂直拆分和分层规划。

集群

集群更加关注的是项目的部署,也是同样的一个项目,当用户量不是很多的时候,部署一个服务器是没问题的,但是当用户量庞大起来的时候,服务器压力顶不住了,我们就可以将这一个项目部署成三个服务器,不管是轮询访问也好,随机访问也好,都将其称之为集群。

上一篇下一篇

猜你喜欢

热点阅读