Spring Cloud

Spring Cloud

1.1 Spring Cloud 简介

Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它是基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单开发方式。

1.1.1 微服务架构

微服务架构在这几年非常流行,以至于微服务架构相关的开源产品被反复提及(如netflix、dubbo),Spring Cloud也因Spring社区的强大知名度和影响力而备受广大架构师与开发者关注。
什么是微服务架构?简单地说,微服务架构就是将一个完整应用从数据存储开始垂直拆分成多个不同的服务,每个服务都能独立部署、独立维护、独立扩展、服务与服务间通过诸如Restful API的方式互相调用。

1.1.2服务治理

由于Spring Cloud为服务治理做了一层抽象接口,因此在Spring Cloud应用中可以支持多种不同服务治理框架,例如Netflix Eureka、Consul、Zookeeper。在Spring Cloud服务治理抽象层的作用下,可以无缝地切换服务治理实现,并且不影响其他的服务注册、服务发现、服务调用等逻辑。

2.1 Spring Cloud Eureka

Spring Cloud Eureka 是Spring Cloud Netflix项目下的服务治理模块。而Spring Cloud Netflix项目是Spring Cloud的子项目之一,主要内容是对Netflix公司一系列开源产品的包装,它为Spring Boot应用提供了自配置的Netflix OSS整合。通过一些简单的注解,开发者就可以快速地在应用中配置常用模块并构建庞大的分布式系统。它主要提供的模块包括服务发现(Eureka)、断路器(Hystrix)、智能路由(Zuul)和客户端负载均衡(Ribbon)等。

  • 下面就来具体介绍如何使用Spring Cloud Eureka实现服务治理。
2.1.1.创建“服务注册中心”

创建一个基础的Spring Boot工程,命名为“eureka-server”,并在pom.xml中引入需要的依赖内容。

在这里插入图片描述
通过@EnableEurekaServer注解启动一个服务注册中心提供给其他应用进行对话。这一步只需要一个普通的Spring Boot应用中添加这个注解就能开启此功能,具体代码如下。
在这里插入图片描述
在默认设置下,该服务注册中心也会将自己作为客服端来尝试注册,所以需要禁用他的客服端注册行为,只需要在application.properties配置文件中增加如下信息。
在这里插入图片描述
为了与后续要进行注册的服务区分,这里将服务注册中心的端口通过server.port属性设置为1001。启动工程后,访问http://localhost:1001/,其中还没有任何服务。

2.1.2 创建“服务提供方”

下面创建提供服务的客服端,并向服务注册中心注册。这里主要介绍服务的注册和发现,所以需要在服务提供方尝试提供一个接口来获取当前所有的服务信息。
首先,创建一个基础的Spring Boot应用,命名为“eureka-client”,并在pom.xml中加入如下配置。
在这里插入图片描述
其次,实现/dc请求处理接口,通过DiscoveryClient对象在日志中打印出服务实例的相关内容。
在这里插入图片描述
最后,在应用主类中加上@EnableDiscoveryClient注解激活Eureka中的DiscoveryClient实现,这样才能实现Controller中对服务信息的输出。
在这里插入图片描述
在完成服务内容的实现后,继续对application.properties做一些配置工作,具体如下:
在这里插入图片描述
通过spring.application.name属性,可以指定微服务的名称。后续在调用时,只需要使用该名称就可以进行服务的访问。eureka.client.serverurl.defaulZone属性对应服务注册中心的配置内容,指定服务注册中心的位置。为了在本机上测试区分服务提供方和服务注册中心,可以使用server.port属性设置不同的端口。
启动该工程后,再次访问http://localhost:1001/,可以看到如图5-7所示内容,定义的服务被成功注册
在这里插入图片描述

当然,也可以通过直接访问eureka-client服务提供的/dc接口来获取当前的服务清单,只需要访问http://localhost:2001/dc,就可以得到输出信息Services:[eureka-client]。其中,方括号中的eureka-client就是通过Spring Cloud定义的DiscoveryClient接口在eureka的实现中获取到的所有服务清单。由于Spring Cloud定义的DisCoveryClient接口在eureka的实现中获取到的所有服务清。由于Spring Cloud在服务发现这一层做了非常好的抽象,因此对于上面的程序,可以无缝的从Eureka的服务治理体系切换到Consul的服务治理体系中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值