美文网首页
Java进阶之SpringCloud

Java进阶之SpringCloud

作者: 在error边缘疯狂试探 | 来源:发表于2020-04-21 12:41 被阅读0次

微服务需要解决哪些问题?

【问题】:微服务最大的问题: 网络不可靠为了实现高可用,高并发,高性能。我们需要面对如下的问题:

  • 客户端如何访问多个服务??(API网关)

  • 服务直接如何通讯??

    • 同步: RPC [Dubbo], HTTP [Apache Http Client]
    • 异步: 消息队列 [kafka, RabbitMQ, RocketMQ]
  • 多个服务如何管理??

    • 服务注册与发现(基于客户端的Apache Zookeeper[需要下载并启动])(基于服务端的Netflix Eureka)
  • 服务挂了,怎么办????

    • 重试机制、服务熔断、服务降级、服务限流。

什么是SpringCloud?

  • SpringCloud是对基于SpringBoot提供了一套微服务解决方案,包括服务注册于发现、配置中心、全链路监控、服务网关、负载均衡、熔断器组件等。除了基于NetFilx的开源组件做高度抽象封装之外,还有一些选型中立的组件。

SpringCloud和SpringBoot有什么区别?

  • SpringBoot是专注于快速方便的开发单个个体微服务。
  • SpringCloud是关注全局的微服务,并整理治理的框架,它将SpringBoot开发的一个个单体的微服务整合并管理起来,为各个微服务之间提供:配置管理、服务与发现、断路器、路由、微代理、事件总线、全局锁等集成服务。
  • SpringBoot可以离开SpringCloud单独使用,开发项目,而SpringCloud离不开SpringBoot。

SprigCloud和Dubbo的区别

这两个框架都能够实现服务之间的通信,但他们之间有什么区别?

  • SpringCloud抛弃了Dubbo的RPC通信,采用的是HTTP的REST方式。
  • 解决的问题域不一样,Dubbo的定位是一个RPC框架,SpringCloud的目标是微服务架构下的一站式解决方案。

Eureka服务注册与发现

  • CAP原则:最多实现两点,不可能三者兼顾!
    • C(Consistency):强一致性
    • A(Availability):可用性
    • P(Partition tolerance):分区容错性
  • Spring Cloud Ribbon:是基于Netfix Ribbon实现的一套客户端负载均衡的工具

相关文章

网友评论

      本文标题:Java进阶之SpringCloud

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