欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Spring Cloud认知学习(一):Spring Cloud介绍与Eureka使用,

来源: javaer 分享于  点击 13444 次 点评:93

Spring Cloud认知学习(一):Spring Cloud介绍与Eureka使用,


目录

  • Spring Cloud的介绍
    • 微服务的介绍
    • Spring Cloud出现的原因:
    • 常见场景:
    • 微服务的优劣势:
    • Spring Cloud版本问题
      • 版本介绍
      • 与Spring Boot版本对应关系
  • ---分割线---学习的前提---分割线---
  • 基础项目搭建
    • 1.创建一个Maven父工程:
    • 2.创建一个共有依赖包:
    • 3.创建一个服务提供者:
    • 4.创建一个服务消费者
    • 小节总结
  • Eureka服务注册与发现
    • 介绍
    • 简单使用步骤
      • 1.父工程导入依赖:
      • 2.新建spring-cloud-eureka-server-7001模块:
      • 3.修改服务提供者
      • 4.修改服务消费者
    • Eureka集群
      • 搭建步骤
        • 1.新建三个eureka-server模块,
        • 2.都导入依赖包:
        • 3.都对应修改主启动类:
        • 4.修改host
        • 5.修改application.yml:
        • 6.启动三个server,查看效果:
        • 7.对消费者和生产者的处理
    • 知识补充:
    • 补充:


这是一个Spring Cloud系列文章,它并不会讲解所有的知识点,它只是基于微服务的场景来逐步介绍常见组件的作用和意义,以及场景组件的整合。对于每个组件的知识并不会讲解太多,只讲常见的,目的是尽可能快速的对Spring Cloud的常用组件有一个基础的认知,有了认知之后,你就可以基于你面对的场景来单独学习某个组件,逐步丰满自己Spring Cloud的知识。


Spring Cloud的介绍

  • Spring Cloud是一个微服务架构,他有多种组件来管理微服务的方方面面。Spring Cloud是用于构建微服务开发和治理的框架的集合。
  • Spring Cloud是最热门的Java技术毋庸置疑。
  • 官网

微服务的介绍

  • 微服务是什么这里就不细化介绍了吧,应用服务化已经成为了趋势,简单的说就是把以前ALL-IN-ONE的一体应用的内部功能进行拆分,比如把短信功能单独出来作为一个可以提供给外部调用的服务,这样既提供了短信服务的复用性(其他的应用也能够复用这个功能),也使得对某个功能进行单独的负载能力提升称为可能(All In One 的如果想提升抢购功能的负载能力的话,采用部署多个服务端来提升抢购功能的负载能力的时候也会顺带提升了用户注册等的负载能力,这就额外浪费了资源)。
  • 在微服务的理论中,为了解耦,每个微服务使用单独的数据库(当然了,可能有些人会觉得是同名服务使用同一个数据库,微服务这东西概念其实还挺多争论的。)。
  • 马丁.福勒谈微服务

Spring Cloud出现的原因:

  • 当你把原来的应用服务化了之后,那么就会遇到这些服务的管理问题了,比如说检测服务的可用性、查看现在有什么服务、多个同名(同功能)的服务怎么做到负载均衡之类的问题。
  • Spring Cloud,基于Spring Boot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件。这些组件也不全是Spring 自己开发的,有一些是开源的组件,Spring进行了封装了而已(Spring Cloud Netflix主要来自Netflix OSS的开源组件,Spring Cloud Alibaba由阿里提供)。Spring Cloud像Spirng Boot 的starter一样屏蔽了复杂的配置,让我们能够通过简单的配置来进行微服务开发

常见场景:

Spring Cloud可以解决以下的常见几个场景(暂时只列举几个常见场景,其实微服务的方方面面基本都有解决方案)

  • 服务的开发:使用Spring Boot开发服务方便快速(Spring Boot其实不算Spring Cloud的内部组件,只能算一家人吧)
  • 服务的注册与发现:主要是Eureka提供,用于把微服务注册到Eureka中和让服务消费者从Eureka中获取可用微服务列表。(当然现在也有很多采用别的组件来做服务的注册与发现)
  • 负载均衡:主要由Ribbon提供,用于在服务消费者端进行负载均衡,从而把请求均衡到各个同名服务上。
  • API网关:主要由Zuul提供,提供统一的服务调用入口,所有的服务调用都通过Zuul来调用,提供请求转发、请求过滤等功能。
  • 服务的容错的处理--断路器:主要有Hystrix提供,用于解决微服务调用时发生服务熔断的问题。
  • 分布式服务配置:主要由Spring Cloud Config提供,用于解决多个微服务的统一配置和分发配置问题。(一个服务的配置可以从Config配置中心中拉取)
  • 数据监控、消息总线。。。。。。。

微服务的优劣势:

优势:

  • 微服务化之后,代码也偏向简单模块化,会比较容易理解,就好比你搞一个正经的商城难,你搞一个注册功能还不轻松吗?

    相关文章

      暂无相关文章
相关栏目:

用户点评