gradle 指定springcloud 版本_SpringCloud微服务架构开发实战:实现服务注册与发现

实现服务的注册与发现

在前面分别用Eureka Server和Eureka Client来搭建了一台注册服务器,以及多个Eureka Client客户端。Eureka Client在启动后,就会将自己注册到EurekaServer中,这样,Eureka Server就能及时感知到注册上来的Eureka Client,以便其他服务通过应用的名称来调用这些服务。

在理解了这些原理之后,我们就能非常简单地通过天气预报系统来实现服务的注册和发现。

原有的天气预报微服务都需要进行一些微调,成为可以被Eureka Server注册和发现的EurekaClient。这样,最终会形成以下4个新的应用。

  • .msa-weather-collection-eureka:基于msa-weather-collection-server和Eureka Client实现的天气数据采集微服务。
  • .msa-weather-data-eureka:基于msa-weather-data-server和Eureka Client实现的天气数据API微服务。
  • .msa-weather-city-eureka:基于msa-weather-city-server和Eureka Client实现的城市数据微服务。
  • msa-weather-report-eureka:基于msa-weather-report-server和Eureka Client实现的天气预报采集微服务。
d80246cea953df394c506cbb36fc2223.png

所需环境

为了演示本例,需要采用如下开发环境。

.JDK8。

.Gradle 4.0。

Redis 3.2.100。

. Spring Boot 2.0.0.M3。

.Spring Cloud Starter Netflix Eureka Client Finchley.M2。

更改build.gradle配置

4个新的应用的build.gradle配置的变化,相比于原来的应用而言,主要体现在以下几点。

  • springBootVersion变量指定了Spring Boot的版本,这里设定为2.0.0.M3,而非之前的2.0.0.M4.因为最新的Spring Cloud并未对Spring Boot 2.0.0.M4做好兼容。
  • 添加了springCloudVersion变量,用于指定Spring Cloud 的版本。目前,本文中主要用了Finchley.M2版本。
  • 在dependencyManagement(依赖管理)中,我们导入了Spring Cloud的依赖的管理。
  • 最为重要的是,在依赖中,我们添加了Spring Cloud Starter Netflix Eureka Client依赖。

以下是列出的配置点。

/lbuildscript代码块中脚本优先执行buildscript {/l ext用于定义动态属性ext {springBootversion='2.0.0.M3'}/l ...// ...ext {springCloudVersion ='Finchley.M2'}dependencies {/l ...//添加Spring Cloud Starter Netflix Eureka Client依赖compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client')}dependencyManagement {imports {mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudversion}"}}
351013e15c8a30f7d2ae4b87459c7472.png

启用Eureka Client

要启用Eureka Client,在每个应用的根目录下Application类中添加注解@EnableDiscoveryClient即可。

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;★**主应用程序.**since 1.0.0 2017年11月01日*@author Way Lau*/@SpringBootApplication@EnableDiscoveryclientpublic class Application{public static void main(String [l args){SpringApplication.run(Application.class,args);}}

修改项目配置

修改application.properties,修改相应的配置。其中:

  • eureka.client.serviceUrl.defaultZonet:都指向同一个Eureka Server;
  • .spring.application.name:指定为不同应用的各自的名称。

以下是msa-weather-collection-eureka的配置示例。

spring.application.name: msa-weather-collection-eurekaeureka.client.serviceUrl.defaultZone:http://localhost:8761/eureka/

其他三个应用的配置类似,spring.application.name分别是msa-weather-data-cureka、msa-weather-city-eureka、msa-weather-report-eureka。

运行和测试

首先运行Eureka Server实例micro-weather-eureka-server,它启动在8761端口。

其次要运行Redis服务器。

然后分别在8081和8082上启动了msa-weather-collection-eureka实例两个,在8083和8084上启动了msa-weather-data-eureka实例两个,在8085和8086上启动了msa-weather-city-eureka实例两个,在8087和8088上启动了msa-weather-report-eureka实例两个。启动脚本如下。

java -jar micro-weather-eureka-server-1.0.0.jar --server.port=8761java -jar msa-weather-collection-eureka-1.0.0.jar --server.port=8081java-jar msa-weather-collection-eureka-l.0.0.jar--server.port=8082java -jar msa-weather-data-eureka-1.0.0.jar --server.port=8083java-jar msa-weather-data-eureka-1.0.0.jar --server.port=8084java-jar msa-weather-city-eureka-1.0.0.jar --server.port=8085java -jar msa-weather-city-eureka-1.0.0.jar--server.port=8086java -jarmsa-weather-report-eureka-1.0.0.jar --server.port=8087java -jar msa-weather-report-eureka-1.0.0.jar --server.port=8088

这样,就可以在Eureka Server上看到这8个实例的信息。访问http://localhost:8761,可以看到如图8-3所示的Eureka Server自带的UI管理界面。

d5d724856da674109f8a77878ce1a154.png

从管理界面中可以看到每个Eureka Client的状态。如果Eureka Client离线了,Eureka Server也能及时感知到。

其中,从界面上也可以看出,Eureka Server运行的IP为192.168.1.101。

本篇文章内容给大家讲解的是实现服务的注册与发现

  1. 下篇文章给大家讲解微服务的消费;
  2. 觉得文章不错的朋友可以转发此文关注小编;
  3. 感谢大家的支持!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值