文档章节

[Spring-cloud-eureka]使用 gradle, spring boot,Spring cloud Eureka 搭建服务消费者

Simonton
 Simonton
发布于 2017/09/09 23:43
字数 450
阅读 681
收藏 2

本次内容为搭建一个服务消费者,用于消费上一篇博客注册在注册中心里的服务。

1)用 eclipse 新建一个 gradle 项目:EurekaBService. 该服务消费上一篇博客里注册的EurekaAService,同时也把自己注册入注册中心,供他人消费。

2)配置 build.gradle 文件,并 build 一次,确保所依赖的 jar 都已到位。

    下面是 build.gradle 配置内容:

buildscript {
	repositories {
		jcenter()
	}
	
	dependencies {
		classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.5.6.RELEASE'
	}
}

apply plugin: 'java'
apply plugin: 'spring-boot'

repositories {
    jcenter()
}

dependencies {
	compile 'org.springframework.boot:spring-boot-starter-web'
	compile 'org.springframework.cloud:spring-cloud-starter-eureka-server:1.2.7.RELEASE'
	compile 'org.springframework.cloud:spring-cloud-starter-eureka-ribbon:1.2.7.RELEASE'
	compile group: 'com.alibaba', name: 'fastjson', version: '1.2.32'
	compile 'org.springframework.boot:spring-boot-starter-test'
}

 

3) 实现 EurekaBService.

    a)    项目目录如下:

├── build.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── simonton
    │   │           └── eureka
    │   │               ├── EurekaBApplication.java
    │   │               ├── config
    │   │               │   └── EurekaConfig.java
    │   │               └── controller
    │   │                   └── EurekaBController.java
    │   └── resources
    │       └── application.yml
    └── test
        └── java

    b) EurekaBApplication 代码如下:

package com.simonton.eureka;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

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

    c) EurekaConfig 代码如下:

/**
 * 
 */
package com.simonton.eureka.config;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

/**
 * @author simonton
 *
 */
@Configuration
public class EurekaConfig {

	@Bean
	@LoadBalanced
	public RestTemplate getRestTemplage() {
		return new RestTemplate();
	}
}

    @LoadBalanced 是 spring-ribbon工具的核心,负责客户端请求的 load balance。

    d) EurekaBController 代码如下:

package com.simonton.eureka.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;


@RestController
public class EurekaBController {
	
	@Autowired
	private RestTemplate restTemplate;
	
	@RequestMapping(value="/serviceB",method=RequestMethod.GET)
	public String service() {
		String serviceA = restTemplate.getForEntity("http://a-service/serviceA", String.class).getBody();
		return "service B " + serviceA;
	}
	
	@RequestMapping(value="/beforeService",method=RequestMethod.GET)
	public String beforeService() {
		String ret = null;
		restTemplate.getForEntity("http://a-service/print", String.class);
		ret = this.restTemplate.getForEntity("http://a-service/beforeService", String.class).getBody();
		return ret;
	}
}

    PS:调用方式是http:// + 注册中心里的application name + controller里定义的具体的 requestmapping.

    e) application.yml配置如下:

server:
  port: 7777
spring:
  application:
    name: serviceB
eureka:
  client:
    service-url:
      defaultZone: http://localhost:9999/eureka

 

最后,Run EurekaBApplication。然后就可以在注册中心查看到现在的服务注册情况:

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
Simonton
粉丝 10
博文 20
码字总数 10207
作品 0
浦东
高级程序员
springcloud(三):服务提供与调用

文章概述 上一篇文章我们介绍了eureka服务注册中心的搭建,这篇文章介绍一下如何使用eureka服务注册中心,搭建一个简单的服务端注册服务,客户端去调用服务使用的案例。 案例中有三个角色: ...

AHUSKY
06/12
0
0
热门技术从零开始学Spring Cloud视频教程发布

使用技术 (1)spring boot,使用版本:1.5.8 (2)spring cloud ,使用版本:Dalston.SR4 (3)Netflix Eureka (4)Netflix Ribbon (5)Feign (6)Netflix Hystrix (7)Spring Clou Con...

小红牛
08/04
0
0
Eureka学习(一)--Eureka 服务器

spring-cloud Netflix 的主要模块: 服务发现:Eureka 断路器/降级:Hystrix 智能路由:Zuul 负载均衡:Ribbon 本文章将学习Eureka服务器端。 第一步:搭建项目,配置 pom.xml 第二步:配置 ...

FinalSmart
07/12
0
0
Spring Cloud构建微服务架构—服务消费(Ribbon)

Spring Cloud Ribbon Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。它是一个基于HTTP和TCP的客户端负载均衡器。它可以通过在客户端中配置ribbonServerList来设置...

itcloud
06/28
0
0
idea快速搭建spring cloud-注册中心与注册

spring cloud快速搭建  Spring Cloud是一个微服务框架,它基于spring boot, Spring Cloud提供的全套的分布式系统解决方案。   首先我们使用gradle来创建: 选择JDK以及勾选Java,然后下一...

IT高飞
07/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

这些Spring中的设计模式,你都知道吗?

设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆。 Spring作为业界的经典框架,无论是在架构设计方面,还是在代码编写方面,都堪称行...

Java填坑之路
33分钟前
1
0
Spring Aop原理之Advisor过滤

在上文(Spring Aop之Advisor解析)中我们讲到,Spring Aop对目标bean的代理主要分为三个步骤:获取所有的Advisor,过滤当前bean可应用的Advisor和使用Advisor为当前bean生成代理对象,并且上文...

爱宝贝丶
43分钟前
0
0
JMockit学习教程

1 JMockit中文网 我觉得如果仅仅是开发自测的话,把JMockit中文网认真看一遍,就可以在项目中使用JMockit了。 http://jmockit.cn/index.htm 2 JMockit中文教程 官方文档中文版。对于不喜欢看...

SuperHeroes
55分钟前
0
0
Linux服务器几乎从不采用Arch Linux?

我们见得多的Linux服务器系统一般都是什么Ubuntu Server啊,什么Cent OS啊,什么Fedora啊,或者企业采用的Red Hat啊,为什么几乎没有Arch Linux呢?下面我将从若干个方面指出Arch Linux在服务...

linux-tao
今天
0
0
js 函数柯里化 闭包

参考 https://mp.weixin.qq.com/s/GEHL3jarDdAAcr5tQGjmDg 一个统计求和的函数 需要知道整个数组的信息,然后遍历求值 function countMoney() { let money = 0 // 温馨提示:arguments...

阿豪boy
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部