JavaEE 微服务介绍

JavaEE 微服务认识

1. 单体架构

在最开始的很多业务中,我们会将所有的功能都打包在一个项目中去使用,如将所有的功能都打包在一个Jar包或War包中,这种方式就称为单体架构。

  • 优点:架构开发简单,部署简单,一个项目就包含了所有的功能,省去了多个项目之间的交互和调用消耗,且直接部署在一台服务器上即可
  • 缺点:当访问量或需求量增大时,一台服务器的负载会越来越高,渐渐无法满足实际的业务需求,出现的任何一个问题都需要整个项目重新构建再发布

为了解决上述单体架构的弊端,我们从两个方面进行优化:

  • 横向:添加服务器,把单台机器变成多台机器的集群
  • 纵向:把一个应用,按照业务进行拆分,拆分为多个项目,此架构也成为垂直架构

在这里插入图片描述

2 集群和分布式

2.1 概念

集群:是指将一个系统完整的部署到多台服务器上,每台服务器都能提供系统的所有服务,多台服务器通过负载均衡调度完成任务,每台服务器称为集群的节点

分布式:是指将一个系统拆分为多个子系统,将这多个子系统根据需求部署在不同的服务器上,每台服务器上的子系统协同合作完成指定功能,最终所有服务器合力完成最终任务

举个栗子:

小马餐厅原本只有一名厨师,他负责了整个后厨的所有任务,包括:备菜,洗菜,切菜,炒菜。原本因为客人不多一名厨师也是应付得来,可是因为服务好口味棒餐厅的客流量越来越大,一名厨师忙不过来了,于是又招募了一名厨师,一样来完成备菜、洗菜、切菜、炒菜的任务,此时这两名厨师就构成了集群;后来生意越来越红火,两名厨师也忙不过来了,为了让厨师专心炒菜,于是招募了两名配菜师,负责完成备菜、洗菜、切菜的任务,此时这两个配菜师也构成了集群,而通过厨师和配菜师这两个集群的合作共同维护了后厨的稳定,这就形成了分布式架构

在这里插入图片描述

2.2 区别与联系

  • 从概念上,集群是多个计算机在做同样的事,分布式是多个计算机在做不同的事
  • 从功能上,集群的每一个节点功能是相同的,并且可以被替代;分布式也是多个节点组成的系统,但是每个节点完成的业务是不同的,一个节点出现问题,这个业务就不可以访问了
  • 从关系上,分布式和集群在实践中,很多时候是互相配合使用的。比如分布式的某一个节点,可以由一个集群来代替(如上述例子)。分布式架构大多数是建立在集群上的,所以实际的分布式架构设计中并不会把分布式和集群单独区分,而是统称:分布式架构

3. 微服务架构

3.1 概念

在分布式架构下,当部署的服务越来越多,重复的代码也会越来越多,服务的调用关系也会越来越复杂。对此,我们可以把一些通用的、会被多个上层服务多次调用的共享业务提取出来,形成独立的基础服务,组成一个个可以单独部署运行的微小服务,这就是微服务

在这里插入图片描述

微服务架构可以看作是分布式架构的一种拓展,这种架构模式下它拆分粒度更小,服务更独立,可以理解为:微服务是一种经过良好架构设计的分布式架构方案!!

它有着以下优势:

  • 易于开发和维护:每个微服务复杂的业务比较清晰,体量小,开发和维护成本降低
  • 容错性高:一个服务发生故障,可以是故障隔离在单个服务中,不影响整体服务
  • 扩展性好:每个服务都是独立运行的,我们可以结合项目实际情况进行扩展,按需伸缩
  • 技术选型灵活:每个微服务都是由单独的团队来进行运维,可以根据业务特点和团队特点,选择适合的技术栈进行开发

3.2 区别与挑战

分布式架构与微服务架构两者之间比较明显的区别是:

  • 分布式:对服务进行拆分,且只要拆了就行
  • 微服务:指非常微小的服务,更细粒度的垂直拆分,通常指不能再拆分的服务

分布式架构侧重于对压力进行分散,强调的是服务的分散化,而微服务架构更侧重于对能力进行分散,强调服务的专业化和精细分工从实践的角度来看,微服务架构通常是分布式架构,反之则未必成立。所以,选择微服务通常意味着需要解决分布式架构的各种难题!如服务依赖复杂、运维成本高、开发和测试难度提升、服务监控量大、需要有效的负载均衡等!

对于这些挑战,全球的互联网公司都在积极尝试自己的微服务落地方案,而在Java领域,最引人注目的便是Spring Cloud了!
后续会开新的文章来介绍Spring Cloud以及如何来使用它,敬请期待!!

  • 25
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值