@

前言

大家好,距离上周发布的配置中心基础使用已过去差不多一周啦,趁着周末继续完善后续SpringCloud组件的集成,本次代码基于配置中心代码的基础上进行集成。

SpringCloud Config 文章

SpringCloud Config demo01

项目版本

spring-boot-version:2.2.5.RELEASE

spring-cloud.version:Hoxton.SR3

Eureka服务端

首先构建Eureka服务端项目,最近阿里云开放了自己的项目快速构建平台,那这次就使用下吧。Alibaba initializr 操作基本上和Spirng官方提供的一模一样。搜索并选择eureka server即可。

pom主要信息

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

application.properties

# 服务应用名
spring.application.name=eureka-server
# 服务端口
server.port=9003
# 禁止将本服务注册至eureka
eureka.client.register-with-eureka=false
# 屏蔽注册信息
eureka.client.fetch-registry=false
# eureka服务地址
eureka.client.serviceUrl.defaultZone=http://localhost:9003/eureka/

EurekaServerApplication.java

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication { public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
} }

@EnableEurekaServer 申明注解此应用为eureka服务端

项目启动成功后访问 http://localhost:9003/,即可看到Eureka服务后台

Eureka客户端

客户端代码基于上篇SpringCloud配置中心(Config)使用说明,文章地址及代码见本文开头,这边主要说明一些调整的地方。

先调整spring-cloud-config-server项目,我们需要将其注册至Eureka服务上,调整如下

1.pom文件

增加eureka客户端相关依赖

<!--eureka客户端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

2.application.properties

配置文件增加以下配置项

# eureka服务端地址
eureka.client.serviceUrl.defaultZone=http://localhost:9003/eureka/

3.ConfigServerApplication.java

增加@EnableDiscoveryClient注解标签

@EnableConfigServer
@SpringBootApplication
@EnableDiscoveryClient
public class ConfigServerApplication

调整完后,我们再启动Config服务端,这时可以在Eureka服务后台看到config-server已经注册上了,如下图。

接着调整spring-cloud-config-client项目

1.pom文件

增加eureka客户端相关依赖

<!--eureka客户端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

2.bootstrap.properties

将原先直接通过Config服务端地址调整为基于服务发现的配置,调整如下

# 配置服务端请求地址
#spring.cloud.config.uri=http://localhost:9001/
# 开启服务发现
spring.cloud.config.discovery.enabled=true
# 配置Config服务应用名称
spring.cloud.config.discovery.service-id=config-server

3.ConfigClientApplication.java

增加@EnableDiscoveryClient注解标签

@SpringBootApplication
@EnableDiscoveryClient
public class ConfigClientApplication

启动Config客户端后,即可在Eureka服务后台看到服务已注册进来。再访问下Config 客户端暴露的接口,http://localhost:9002/getEnv,成功获取到配置信息。

服务访问

前面是基于SprongCloud Config配置中心集成的Eureka,接下来将介绍下如何使用Eureka中已注册的服务。

这边先构建一个System模块,用于访问Config client提供的接口服务。

部分pom信息

<!--eureka客户端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!--服务访问-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

application.properties

# 服务应用名称
spring.application.name=system-server
# 服务端口
server.port=9004
# eureka服务端地址
eureka.client.serviceUrl.defaultZone=http://localhost:9003/eureka/

SystemServerApplication.java

@EnableFeignClients开启Feign的支持

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class SystemServerApplication { public static void main(String[] args) {
SpringApplication.run(SystemServerApplication.class, args);
} }

ConfigService.java

@FeignClient 申明Feign客户端信息,其中name对应应用服务提供方的应用服务名称

@GetMapping(path = "/getEnv") 对应应用服务提供方暴露的接口地址

@FeignClient(name = "config-client")
public interface ConfigService { @GetMapping(path = "/getEnv")
String getEnvName(); }

SystemController.java

@RestController
@RequestMapping(value = "/web/system")
public class SystemController { @Autowired
ConfigService configService; @RequestMapping(value = "/getEnvName", method = RequestMethod.GET)
public String getEnvName() {
return configService.getEnvName();
} }

启动系统服务模块后,访问 http://localhost:9004/web/system/getEnvName 即可访问到信息,如下图

访问返回结果和访问 http://localhost:9002/getEnv 接口返回是一样的,仅仅只是通过Feign访问了下 http://localhost:9002/getEnv,内部是基于通过注册在Eureka上的config-client服务调用得到的结果,内部服务地址 http://config-client/getEnv

项目代码结构如下



本次示例代码地址

SpringCloud系列之服务注册发现(Eureka)应用篇的更多相关文章

  1. 服务注册发现Eureka之二:高可用服务注册中心

    前言 在Spring Cloud系列文章的开始,我们就介绍了服务注册与发现,其中,主要演示了如何构建和启动服务注册中心Eureka Server,以及如何将服务注册到Eureka Server中,但是 ...

  2. 服务注册发现Eureka之三:Spring Cloud Ribbon实现客户端负载均衡(客户端负载均衡Ribbon之三:使用Ribbon实现客户端的均衡负载)

    在使用RestTemplate来消费spring boot的Restful服务示例中,我们提到,调用spring boot服务的时候,需要将服务的URL写死或者是写在配置文件中,但这两种方式,无论哪一 ...

  3. 服务注册发现Eureka

    一 Eureka相关概念 1 Peer   2 Zone   3 Region 地理区域   3 CAP理论   4 在线扩容   5     二 注册发现 Eureka 1 搭建Server服务端 ...

  4. 服务注册发现Eureka之一:Spring Cloud Eureka的服务注册与发现

    Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁 ...

  5. SpringCloud系列之集成分布式事务Seata应用篇

    目录 前言 项目版本 项目说明 Seata服务端部署 Seata客户端集成 cloud-web module-order module-cart module-goods module-wallet ...

  6. SpringCloud系列之网关(Gateway)应用篇

    @ 目录 前言 项目版本 网关访问 鉴权配置 限流配置 前言 由于项目采用了微服务架构,业务功能都在相应各自的模块中,每个业务模块都是以独立的项目运行着,对外提供各自的服务接口,如没有类似网关之类组件 ...

  7. SpringCloud Netflix Eureka(服务注册/发现)

    ⒈Eureka是什么? Eureka是Netflix的一个子模块,也是核心模块之一,Eureka是一个基于REST的服务,用于定位服务以实现云端中间层服务发现和故障转移,服务注册与发现对于微服务架构来 ...

  8. SpringCloud系列三:将微服务注册到Eureka Server上

    1. 回顾 通过上篇博客的讲解,我们知道硬编码提供者地址的方式有不少问题.要想解决这些问题,服务消费者需要一个强大的服务发现机制,服务消费者使用这种机制获取服务提供者的网络信息.不仅如此,即使服务提供 ...

  9. SpringCloud服务的注册发现--------Eureka

    1,什么叫做服务的注册与发现 服务的注册与发现基于注册中心,注册中心本身是一个服务,也相当于一个载体,其他服务的注册需要注册到这个注册中心上. 注册:当服务器启动的时候,会将自己的服务器信息,通过别名 ...

随机推荐

  1. 如何进行Web服务的性能测试

         涉及到web服务的功能在不断的增加,对于我们测试来说,我们不仅要保证服务端功能的正确性,也要验证服务端程序的性能是否符合要求.那么性能测试都要做些什么呢?我们该怎样进行性能测试呢? 性能测试 ...

  2. javascript中的function命名空間與模擬getter、setter

    function的命名空間 在javascript中,function也可以擁有自己的命名空間例如以下這段程式碼: 12345678 function () { return 'I am A';} A ...

  3. Turn and Stun server · J

    本文简介了Turnserver(Turn + Stun)服务器的搭建.Turnserver主要提供了stun服务,支撑NAT.防火墙穿透,turn服务器,支撑打洞失败时的数据中转.使用场景上类似于前端 ...

  4. WEB端缓存机制

    WEB端缓存机制 什么是WEB缓存 Web缓存是指一个Web资源(如html页面,图片,js,数据等)存在于Web服务器和客户端(浏览器)之间的副本.缓存会根据进来的请求保存输出内容的副本:当下一个请 ...

  5. 让百度和google收录我们的网站

    花了几天时间终于把这个看似高大上的博客搞好了,但是发现只能通过在地址栏输入地址进行访问,这很明显和我装X装到底的性格,于是乎在查阅了嘟爷的博客,和我各种百度终于搞出来了. 让谷歌收录 让谷歌收录还是比 ...

  6. 在虚拟机单机部署OpenStack Grizzly

    安装过程 安装Ubuntu 我手头有的是Ubuntu Server 12.04 64位版,就直接用了,默认安装即可,配置的时候很简单,如下 内存:1G 硬盘:20G 处理器:2 网络:NAT 装好以后 ...

  7. Centos 7 使用Securecrt 配置Public key 登录

    环境:Centos 7 SecureCRT 版本:8.0.4 需求:配置使用Public key 登录服务器禁用密码登录 1. 配置使用SecureCRT,生成Public key 跟私钥 2. 配置 ...

  8. nginx能访问html静态文件但无法访问php文件

    nginx.conf中红框部分修改成你的实际网站根目录

  9. 神奇的background——绘制图形

    相信大家在平时工作中少不了会被要求在某些元添加一些特殊的背景图片,这时候通常就拿起ps就是切切切.不说这种方式麻烦,有ui给你切好的情况已经不错,没有的就有自己动手.还可能有需要切一整张超大图的情况. ...

  10. display的block、none、inline属性及解释

    常会用到display对应值有block.none.inline这三个值 参数: block :块对象的默认值.用该值为对象之后添加新行.之前也添加一行. none :隐藏对象.与visibility ...