(四)微服务与SpringBoot、SpringCloud

目录

SpringBoot与微服务

SpringCloud与微服务

SpringCloud核心组件

Netflix Eureka——服务发现

Netflix Ribbon —— 客户端负载均衡

Netflix Hystrix —— 断路器

Netflix Zuul —— 服务网管 

Spring Cloud Config —— 分布式配置


 

1.SpringBoot与微服务

  SpringBoot 的使命——化繁为简

      SpringBoot让我们开发spring的应用变得简单。之前在使用Spring时,用XML配置的话,需要定义各式各样的bean,需要定义服务、接口、实现、缓存、数据源、消息队列、序列化,所以如果项目中没有几个配置文件,很难看出这是一个spring项目。而spring的宗旨就是化繁为简。下面是spring的核心功能:

◆ 独立运行  java -jar xxx.jar

    之前运行spring服务得先有一个web服务器,比如Tomcat、Jetty,然后把代码发布到服务器指定的位置,然后启动服务。而SpringBoot的运行方式就非常简单,它仅仅是以一个java命令让一个服务运行起来。

◆ 内嵌web服务器

     为什么SpringBoot仅仅以一个命令就可以让服务运行起来呢?这得益于它内嵌了web服务器,它通过把web服务器和应用的jar包都打在一起,并且来协调它们的位置,让我们不用去关心这些细节,只需要运行一个命令就可以把整个服务运行起来。

◆ 简化配置—尽可能的自动化配置spring

    不管是spring还是SpringMVC都需要添加大量的依赖,这些依赖有很多都是固定的。SpringBoot通过starter以帮助我们简化maven的配置。

◆ 准生产的应用监控

    有一些metric指标可以动态的获取 ,还有一些在生产环境上需要的功能,这些SpringBoot都给我们准备好了。

    SpringBoot与微服务的关系——SpringBoot是Java的润滑剂,即SpringBoot是Java开发微服务的润滑剂。

    SpringBoot的核心——简化开发、简化配置、简化部署;微服务的特征——轻量级、数量多、灵活多变。使用spring来开发微服务正好应对了微服务的特征,springboot让开发和部署变快了。

 

2.SpringCloud与微服务

    SpringCloud的使命——简化Java的分布式系统。当我们把Java应用或者web服务或者其他类型的服务部署到多个服务器上,提供分布式能力时,想想可能会遇到的问题,很容易想到的是web服务的上线共享需要在每个Tomcat上配置,还有多个服务的负载均衡,一般我们需要在Nginx上配置一个Ribbon,然后轮询的访问每个Tomcat,还有服务之间的调用,比如,有一个文件代理服务,单机的情况下,我们可以直接写上IP+端口就可以访问了,但是在分布式情况下,我们不得不自己写一个既有负载均衡又有容错能力的客户端,还有在分布式下,我们的事务管理怎么办。而SpringCloud就是在简化上述的遇到的一些通用问题。

    SpringCloud为开发者提供了快速构建,具有分布式能力的服务。有哪些分布式能力呢?统一的配置管理、服务的注册、服务的发现、服务之间的调用、负载均衡、分布式session 等。下面对SpringCloud做一个深入了解:

◆ 一系列框架

    SpringCloud是一些列框架的集合,而不是单一的框架实现了所有的功能。

◆ 简化Java的分布式系统

    SpringCloud正是利用了SpringBoot简化的能力去简化了分布式系统的基础设施的开发,比如服务注册、发现、配置中心、消息总线、负载均衡等,它都是利用了SpringBoot,不但做到了简化,还做到了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值