微服务架构与Spring Cloud

目录

单体架构

优点:

缺点:

SOA架构

优点:

缺点:

微服务架构

Netflix OSS背景

注册中心:

注册中心功能:

微服务架构功能

springcloud微服务架构的组件


单体架构

单体架构将所有场景的表示层,业务逻辑层,数据访问层(MVC)放在一个工程中,最终编译,打包,部署到一台服务器中。

优点:

1、开发简单,集中式管理

2、基本不会重复开发

3、功能都在本地,没有分布式的管理和调用消耗

缺点:

1、效率低:开发都在同一个项目改代码,相互等待,冲突不断

2、维护难:代码功功能耦合在一起,新人不知道何从下手

3、不灵活:构建时间长,任何小修改都要重构整个项目,耗时

4、稳定性差:任意模块中出现Bug,漏洞都可能导致整个系统宕机。

5、扩展性不够:无法满足高并发下的业务需求

SOA架构

  • SOA为 “面向服务的架构”,它是一个组件模型。SOA架构将应用程序不同功能单元(称为服务)进行拆分,这些服务通过定义良好的接口联系起来。
  • 服务之间通过相互依赖或者通过通信机制,来完成相互通信的,最终提供一系列的功能。一个服务通常以独立的形式存在与操作系统进程中。各个服务之间通过网络调用 。
  • ESB就是模块连接的脚手架,用它来连接各个服务节点。它做了消息的转化解释和路由工作,让不同的服务互联互通;

优点:

1、更易维护,业务服务提供者和业务服务使用者的松散耦合关系及对开放标准的采用确保了该特性的实现。建立在以 SOA基础上的信息系统,当需求发生变化的时候,不需要修改提供业务服务的接口,只需要调整业务服务流程或者修改操作即可,整个应用系统也更容易被维护。


2、更高的可用性,该特点是在于服务提供者和服务使用者的松散耦合关系上得以发挥与体现。使用者无须了解提供者的具休实现细节。


3、更好的伸缩性,依靠业务服务设计、开发和部署等所采用的架构模型实现伸缩性。使得服务提供者可以互相彼此独立地进行调整,以满足新的服务需求。

缺点:

1、系统和服务界定模糊

2、服务接口协议不固定,不利于系统维护

微服务架构

Netflix OSS背景

Netflix OSS 是一组开源的框架和组件库,是Netflix公司开发出来解决分布式系统的一些有趣的可扩展类库。对于Java开发者来说,它们是在云端环境中开发微服务的非常棒的工具代名词。在服务发现,负载均衡,容错等模式方面,都给出了非常重要的概念,并带来了漂亮的解决方案。

Netflix的微服务大规模的应用,在技术上毫无保留的把一整套微服务架构核心技术栈开源了出来,叫做Netflix OSS,也正是如此,在技术上依靠开源社区的力量不断的壮大。

Pivotal在Netflix开源的一整套核心技术产品线的同时,做了一系列的封装,就变成了Spring Cloud;虽然Spring Cloud到现在为止不只有Netflix提供的方案可以集成,还有很多方案,但Netflix是最成熟的。

Spring Cloud是构建微服务的核心,而Spring Cloud是基于Spring Boot来开发的。

微服务架构是SOA架构的升级版,解决了SOA架构中模块之间的访问可能出错的问题,微服务架构将单一模块作为一个独立的应用进行开发部署,因为每个应用都是独立的,他们之间的耦合性很低,可以灵活使用不同的编程语言进行开发。

注册中心:

zk均为注册中心,zk为ZooKeeper, 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。

Eureka为springcloud的核心组件,用于服务的注册和发现。

注册中心功能:

     在微服务的架构中,原本的很大的应用通常就会按照业务被分割成相对独立的、提供特定功能的服务,每一个微服务都可以通过集群或者其他方式进行动态的扩展,每一个微服务实例的网络地址都可能动态变化。微服务架构中,服务跨度大,数量多,所以需要架构建立一个去中心化的组件对各个微服务实例的信息进行登记和管理,同时提供能力让各个微服务实例之间能够互相发现,从而达到互相调用的结果。

微服务架构功能

  • 微服务架构自动部署
  • 服务集中化管理
  • 支持熔断机制

springcloud微服务架构的组件

Spring Cloud Config: 分布式配置中心,负责将配置放在远程服务器上,集中管理集群配置。

Spring Cloud Netfix: 核心组件负责对多个Netflix OSS进行整合

  • Eureka:服务注册中心,基于REST服务的分布式架构
  • Hystrix:熔断器,容错管理工具
  • Ribbon:云端负载均衡器。可配合服务发现和熔断器使用,在客户端实现负载均衡
  • Feign:REST客户端,基于Ribbon和Hystrix的声明式调用组件
  • Zuul:服务网关,为微服务架构群提供代理、过滤、路由等功能

Spring Cloud Bus:事件、消息总线、用于在集群中传播状态变化,可与Spring Cloud Config联合实现热部署。

Spring Cloud Stream:数据流操作开发包

Spring Cloud Sleuth:服务追踪框架

​感谢你阅读到最后~ 

​期待你的关注、收藏、评论、点赞~

​愿我们一起变强

参考文章:Spring Cloud 微服务架构与开发

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杜小白也想的美

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值