美文网首页IT技术篇Java Web架构设计Java Web知识
关于微服务,你必须要知道的几个概念!!!

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

作者: 一直想上树的猪 | 来源:发表于2019-07-24 11:47 被阅读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项目,而除了这种垂直性的拆分,还有可能对每一个子项目进行分层,使得业务更具体。分布式其实就是拆分,分为垂直拆分和分层规划。

    集群

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

    相关文章

      网友评论

        本文标题:关于微服务,你必须要知道的几个概念!!!

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