首页 > 运营 > 帮助中心 > 正文

Spring boot2X Consul如何通过RestTemplate实现服务调用

2020-07-28 13:57:36
字体:
来源:转载
供稿:网友

这篇文章主要介绍了spring boot2X Consul如何通过RestTemplate实现服务调用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

Consul可以用于实现分布式系统的服务发现与配置

服务调用有两种方式:

A.使用RestTemplate 进行服务调用

负载均衡――通过Ribbon注解RestTemplate

B.使用Feign 进行声明式服务调用

负载均衡――默认使用Ribbon实现

先使用RestTemplate来实现

1.服务注册发现中心

启动Consul

consul agent -dev

2.服务端

在spring boot2X整合Consul 的基础上

添加服务provider,provider1

provider测试方法

package com.xyz.provider.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class demoController { @RequestMapping("/hello") public String Hello(){  return "hello,provider"; }}

provider1测试方法

package com.xyz.provider1.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class demoController { @RequestMapping("/hello") public String Hello(){  return "hello,another provider"; }}

启动provider和provider1

浏览器访问http://localhost:8500

有两个服务提供者节点实例

3.客户端

(1)添加依赖

<properties>  <java.version>1.8</java.version>  <spring-cloud.version>Greenwich.SR4</spring-cloud.version> </properties> <dependencies>  <dependency>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-web</artifactId>  </dependency>  <dependency>   <groupId>org.springframework.cloud</groupId>   <artifactId>spring-cloud-starter-consul-discovery</artifactId>  </dependency></dependencies><dependencyManagement>  <dependencies>   <dependency>    <groupId>org.springframework.cloud</groupId>    <artifactId>spring-cloud-dependencies</artifactId>    <version>${spring-cloud.version}</version>    <type>pom</type>    <scope>import</scope>   </dependency>  </dependencies></dependencyManagement>

(2)添加配置

server.port=8015spring.application.name=xyz-comsumerspring.cloud.consul.host=localhostspring.cloud.consul.port=8500spring.cloud.consul.discovery.register=falsespring.cloud.consul.discovery.health-check-url=/actuator/healthspring.cloud.consul.discovery.heartbeat.enabled=truemanagement.endpoints.web.exposure.include=*management.endpoint.health.show-details=always

(3)测试方法

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表