文档章节

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

Simonton
 Simonton
发布于 2017/09/09 23:43
字数 450
阅读 828
收藏 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
粉丝 12
博文 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
SpringCloud之Eureka

Eureka简介 什么是Eureka? Eureka是一种基于rest提供服务注册和发现的产品: - Eureka-Server: 用于定位服务,以实现中间层服务器的负载平衡和故障转移。 - Eureka-client:用于服务间的交互...

lc_fly1
昨天
0
0
升级微服务架构1:搭建Eureka Server服务中心

  Spring Cloud中使用Eureka来做服务注册和发现,来统一管理微服务实例。   1.使用IDEA创建一个空的Maven项目做父模块   (也可以不用父项目,所有模块都用平行结构)      删除父...

唐 森
08/22
0
0
Eureka学习(一)--Eureka 服务器

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

FinalSmart
07/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Apache防盗链配置,Directory访问控制,FilesMatch进行访问控制

防盗链配置 通过限制referer来实现防盗链的功能 配置前,使用curl -e 指定referer [root@test-a test-webroot]# curl -e "http://www.test.com/1.html" -x127.0.0.1:80 "www.test.com/1.jpg......

野雪球
34分钟前
1
0
RxJava threading

因为Rx针对异步系统设计,并且Rx也自然支持多线程,所以新的Rx开发人员有时会假设Rx默认是多线程的。在其他任何事情之前,重要的是澄清Rx默认是单线程的。 除非另有说明,否则每次调用onNex...

woshixin
34分钟前
0
0
Python的安装及文件类型、变量

一、为什么学习python 服务于大数据、人工智能、自动化运维。 简单易学 代码简洁 薪资高 近几年越来越火 二、Python的安装 linux 系统默认安装, CentOS7 默认安装了python2.7 安装ipython y...

枫叶云
42分钟前
0
0
JeeSite 4.x 树形结构的表设计和用法

有些同仁对于 JeeSite 4 中的树表设计不太了解,本应简单的方法就可实现,却写了很多复杂的语句和代码,所以有了这篇文章。 在 JeeSite 4 中的树表设计我还是相对满意的,这种设计比较容易理...

ThinkGem
49分钟前
21
0
0022-如何永久删除Kafka的Topic

1.问题描述 使用kafka-topics --delete命令删除topic时并没有真正的删除,而是把topic标记为:“marked for deletion”,导致重新创建相同名称的Topic时报错“already exists”。 2.问题复现...

Hadoop实操
51分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部