1、启动【服务中心】集群,即 Eureka Server

2、启动【服务提供者】集群,即 Eureka Client

3、创建【服务消费者】,即 Eureka Discovery Client

3.1、新建 Spring Boot 工程 springcloud-eureka-ribbon

3.2、工程pom.xml文件添加如下依赖:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<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-netflix-ribbon</artifactId>
</dependency>

3.3、在工程启动类中,添加注解 @EnableDiscoveryClient

package com.miniooc.eurekaribbon;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; /**
* EurekaRibbonApplication
* 应用程序启动类,程序入口
*
* @author 宋陆
* @version 1.0.0
*/
@EnableDiscoveryClient // 启用 Eureka 服务发现 相关配置
@SpringBootApplication
public class EurekaRibbonApplication { public static void main(String[] args) {
SpringApplication.run(EurekaRibbonApplication.class, args);
} }

3.4、创建应用配置类 EurekaRibbonConfig

package com.miniooc.eurekaribbon.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; /**
* EurekaRibbonConfig
* 应用配置类,初始化 Bean和配置信息
*
* @author 宋陆
* @version 1.0.0
*/
@Configuration
public class EurekaRibbonConfig { @Bean // 初始化 Bean
@LoadBalanced // 实现负载均衡
public RestTemplate restTemplate() {
return new RestTemplate();
} }

3.5、创建【服务消费者】服务类 EurekaRibbonService

package com.miniooc.eurekaribbon.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate; /**
* EurekaRibbonService
* 服务消费者服务类,调用服务提供者提供的服务,实现业务
*
* @author 宋陆
* @version 1.0.0
*/
@Service
public class EurekaRibbonService {
@Autowired
RestTemplate restTemplate; public String getInfo() {
String message;
try {
System.out.println("调用 服务 EUREKA-CLIENT/info");
message = restTemplate.getForObject("http://EUREKA-CLIENT/info", String.class);
System.out.println("服务 EUREKA-CLIENT/info 返回信息 : " + message);
System.out.println("调用 服务 EUREKA-CLIENT/info 成功!");
} catch (Exception ex) {
message = ex.getMessage();
}
return message;
}
}

3.6、创建【服务消费者】控制器类 EurekaRibbonController

package com.miniooc.eurekaribbon.controller;

import com.miniooc.eurekaribbon.service.EurekaRibbonService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; /**
* EurekaRibbonController
* 服务消费者控制器类,对用户提供服务
*
* @author 宋陆
* @version 1.0.0
*/
@RestController
public class EurekaRibbonController { @Resource
private EurekaRibbonService eurekaRibbonService; @RequestMapping("/ribbonInfo")
public String ribbonInfo() {
String message = eurekaRibbonService.getInfo();
return "获取的信息:" + message;
} }

3.7、创建工程配置文件application.yml,配置内容:

server:
port: 52610 spring:
application:
name: eureka-discovery-ribbon eureka:
instance:
hostname: localhost
# 表示eureka client间隔多久去拉取服务注册信息,默认为30秒,如果要迅速获取服务注册状态,可以缩小该值
lease-renewal-interval-in-seconds: 5
# 表示eureka server至上一次收到client的心跳之后,等待下一次心跳的超时时间,在这个时间内若没收到下一次心跳,则将移除该instance。
# 默认为90秒
# 如果该值太大,则很可能将流量转发过去的时候,该instance已经不存活了。
# 如果该值设置太小了,则instance则很可能因为临时的网络抖动而被摘除掉。
# 该值至少应该大于 leaseRenewalIntervalInSeconds
lease-expiration-duration-in-seconds: 10
client:
serviceUrl:
defaultZone: http://localhost:9527/eureka/,http://localhost:9528/eureka/,http://localhost:9529/eureka/

3.8、启动【服务消费者】工程

3.9、打开浏览器,访问【服务中心】前台界面 http://localhost:9527,http://localhost:9528,http://localhost:9529

红框处,可以看到【服务消费者】已经注册到了【服务中心】,服务名 EUREKA-DISCOVERY-RIBBON

3.10、开浏览器窗口,访问 http://localhost:52610/ribbonInfo,多次刷新该地址

红框处,可以看到【服务消费者】成功调用了【服务提供者】提供的服务,并实现了负载均衡,轮询请求不同的【服务提供者】。

至此,一个简单的单点【服务消费者】搭建完成。

SpringCloud2.0 Ribbon 服务发现 基础教程(四)的更多相关文章

  1. SpringCloud2.0 Feign 服务发现 基础教程(五)

    1.启动[服务中心]集群,即 Eureka Server 参考 SpringCloud2.0 Eureka Server 服务中心 基础教程(二) 2.启动[服务提供者]集群,即 Eureka Cli ...

  2. SpringCloud2.0 Zuul 网关路由 基础教程(十)

    1.启动基础工程 1.1.启动[服务注册中心],工程名称:springcloud-eureka-server 参考 SpringCloud2.0 Eureka Server 服务中心 基础教程(二) ...

  3. SpringCloud2.0 Eureka Server 服务中心 基础教程(二)

    1.创建[服务中心],即 Eureka Server 1.1.新建 Spring Boot 工程,工程名称: springcloud-eureka-server 1.2.工程 pom.xml 文件添加 ...

  4. SpringCloud2.0 Hystrix Ribbon 基于Ribbon实现断路器 基础教程(六)

    1.启动[服务中心]集群,工程名:springcloud-eureka-server 参考 SpringCloud2.0 Eureka Server 服务中心 基础教程(二) 2.启动[服务提供者]集 ...

  5. spring cloud 2.x版本 Ribbon服务发现教程(内含集成Hystrix熔断机制)

    本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 前言 本文基于前两篇文章eureka-server和eureka-client的实现. 参考 ...

  6. Qt零基础教程(四) QWidget详解篇

    在博客园里面转载我自己写的关于Qt的基础教程,没次写一篇我会在这里更新一下目录: Qt零基础教程(四) QWidget详解(1):创建一个窗口 Qt零基础教程(四) QWidget详解(2):QWid ...

  7. Qt零基础教程(四)QWidget详解(3):QWidget的几何结构

    Qt零基础教程(四)  QWidget详解(3):QWidget的几何结构 这篇文章里面分析了QWidget中常用的几种几何结构 下图是Qt提供的分析QWidget几何结构的一幅图,在帮助的 Wind ...

  8. SpringCloud2.0 Eureka Client 服务注册 基础教程(三)

    1.创建[服务提供者],即 Eureka Client 1.1.新建 Spring Boot 工程,工程名称:springcloud-eureka-client 1.2.工程 pom.xml 文件添加 ...

  9. SpringCloud之Eureka 服务注册和服务发现基础篇2

    上篇文章讲解了SpringCloud组件和概念介绍,接下来讲解一下SpringCloud组件相关组件使用.原理和每个组件的作用的,它主要提供的模块包括:服务发现(Eureka),断路器(Hystrix ...

随机推荐

  1. php异常处理小总结

    2019年8月23日10:56:31 php很多开发不习惯使用异常处理,因为web开发,重在于快速开发,易用性,高性能,不强调程序健壮性 php的异常使用其实不是太完善,易用性也差点,当然这个对比其他 ...

  2. [ARM-LInux开发]linux设备驱动makefile入门解析

    以下内容仅作参考,能力有限,如有错误还请纠正.对于一个普通的linux设备驱动模块,以下是一个经典的makefile代码,使用下面这个makefile可以完成大部分驱动的编译,使用时只需要修改一下要编 ...

  3. [数据结构 - 第6章] 树之二叉排序树(C语言实现)

    一.什么是二叉排序树? 对于普通的顺序存储来说,插入.删除操作很简便,效率高:而这样的表由于无序造成查找的效率很低. 对于有序线性表来说(顺序存储的),查找可用折半.插值.斐波那契等查找算法实现,效率 ...

  4. sed取某域名对应的IP

  5. ChecklistForTest

    相关字段内容较长时,页面显示是否正确(包括各主页面.明细页面.打印预览页面) 数据量较多时,页面显示是否正确(包括各主页面.明细页面.打印预览页面) 各字段为空校验(都为空,部分为空,都不为空)是否正 ...

  6. 使用 Java 移除字符串中的前导零

    给定一串数字,从中删除前导零. public class Test { public static void main(String[] args) { String str = "0000 ...

  7. 007 SpringCloud 学习笔记3-----Eureka注册中心

    1.Eureka概述 (1)引子 网约车出现以前,人们出门叫车只能叫出租车.一些私家车想做出租却没有资格,被称为黑车.而很多人想要约车,但是无奈出租车太少,不方便.私家车很多却不敢拦,而且满大街的车, ...

  8. redis 设置自启动

    redis 设置自启动 1.创建服务(redis.conf 配置文件要注意,经过cp产生了很多个redis.conf) vim /lib/systemd/system/redis.service [U ...

  9. PLC采集与控制,实现MES工序管理与品质管控,记录产品的加工数据,工厂生产装配流水线的一次成功应用

    1.通过程序与PLC的采集与控制,实现MES工序管理,品质管控,历史数据追溯的目的 2.大概的流程图 3.有三个地方相关联来实现以上功能,首先是MES的工序管理,设置指定的产品有那些工序,上位机程序扫 ...

  10. Linux下的应用进程监控

    两个思路: 一.定时执行监控脚本 采用centos自带的crontab根据需要定时执行status.sh脚本 #!/bin/bash status=$(ps -aux | grep "rsy ...