SpringCloud系列九:脱离Eureka使用Ribbon
1. 回顾
在前文的示例中,是将Ribbon与Eureka配合使用的。但是现实中可能不具备这样的条件,例如一些遗留的微服务,它们可能并没有注册到Eureka Server上,
甚至根本不是使用Spring Cloud开发的,此时要如何使用Ribbon实现负载均衡
2. 脱离Eureka使用Ribbon
> 复制项目 microservice-consumer-movie-ribbon,将ArtifactId修改为 microservice-consumer-movie-without-eureka
> 为了更具说服力,将Eureka的依赖替换为Ribbon依赖,即将
<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>
> 去掉启动类上的@EnableDiscoveryClient注解
package com.itmuch.cloud.microserviceconsumermoviewithouteureka; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate; @SpringBootApplication
public class MicroserviceConsumerMovieWithoutEurekaApplication { public static void main(String[] args) {
SpringApplication.run(MicroserviceConsumerMovieWithoutEurekaApplication.class, args);
} @Bean
@LoadBalanced // 实现负载均衡
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
> 将application.yml修改如下:
server:
port: 8010
spring:
application:
name: microservice-consumer-movie
microservice-provider-user:
ribbon:
listOfServers: localhost:8000,localhost:8001
其中,属性microservice-provider-user.ribbon.listOfServers用于为名为microservice-provider-user的Ribbon客户端设置请求的地址列表
> 启动两个以上的 microservice-simple-provider-user 实例
> 启动 microservice-consumer-without-eureka
> 多次访问 http://localhost:8010/log-instance,控制台打印类似如下日志

由结果可知,尽管电影微服务和用户微服务并没有注册到Eureka上,Ribbon仍可正常工作,请求依旧会分摊到两个用户微服务节点上
3. 总结
本文讲解了脱离Eureka使用Ribbon的情况。
下文将讲解使用Feign实现声明式REST调用,敬请期待~~~
4. 参考
周立 --- 《Spring Cloud与Docker微服务架构与实战》
SpringCloud系列九:脱离Eureka使用Ribbon的更多相关文章
- springcloud微服务实战:Eureka+Zuul+Ribbon+Hystrix+SpringConfig
		
原文地址:http://blog.csdn.net/yp090416/article/details/78017552 springcloud微服务实战:Eureka+Zuul+Ribbon+Hyst ...
 - SpringCloud基础概念学习笔记(Eureka、Ribbon、Feign、Zuul)
		
SpringCloud基础概念学习笔记(Eureka.Ribbon.Feign.Zuul) SpringCloud入门 参考: https://springcloud.cc/spring-cloud- ...
 - SpringCloud系列九:SpringCloudConfig 基础配置(SpringCloudConfig 的基本概念、配置 SpringCloudConfig 服务端、抓取配置文件信息、客户端使用 SpringCloudConfig 进行配置、单仓库目录匹配、应用仓库自动选择、仓库匹配模式)
		
1.概念:SpringCloudConfig 基础配置 2.具体内容 通过名词就可以发现,SpringCloudConfig 核心作用一定就在于进行配置文件的管理上.也就是说为了更好的进行所有微服务的 ...
 - SpringCloud系列四:Eureka 服务发现框架(定义 Eureka 服务端、Eureka 服务信息、Eureka 发现管理、Eureka 安全配置、Eureka-HA(高可用) 机制、Eureka 服务打包部署)
		
1.概念:Eureka 服务发现框架 2.具体内容 对于服务发现框架可以简单的理解为服务的注册以及使用操作步骤,例如:在 ZooKeeper 组件,这个组件里面已经明确的描述了一个服务的注册以及发现操 ...
 - SpringCloud系列六:Eureka的自我保护模式、IP选择、健康检查
		
1. 回顾 前面讲了很多Eureka的用法,比如Eureka Server.Eureka Server的高可用.Eureka Server的用户认证(虽然未完全实现).元数据等, 这章将讲解剩下的自我 ...
 - springcloud系列九  整合Hystrix Dashboard
		
Hystrix Dashboard是Hystrix的仪表盘组件,主要用来实时监控Hystrix的各项指标信息,通过界面反馈的信息可以快速发现系统中存在的问题. 整合快速体验: pom.xml(这个是F ...
 - SpringCloud系列八:自定义Ribbon配置
		
1. 回顾 上文使用Ribbon实现了客户端侧的负载均衡.但是很多场景下,我们可能需要自定义Ribbon的配置,比如修改Ribbon的负载均衡规则. Spring Cloud允许使用Java代码或属性 ...
 - SpringCloud系列五:Ribbon 负载均衡(Ribbon 基本使用、Ribbon 负载均衡、自定义 Ribbon 配置、禁用 Eureka 实现 Ribbon 调用)
		
1.概念:Ribbon 负载均衡 2.具体内容 现在所有的服务已经通过了 Eureka 进行了注册,那么使用 Eureka 注册的目的是希望所有的服务都统一归属到 Eureka 之中进 行处理,但是现 ...
 - springCloud系列教程01:Eureka 注册中心集群搭建
		
springCloud系列教程包含如下内容: springCloud系列教程01:Eureka 注册中心集群搭建 springCloud系列教程02:ConfigServer 配置中心server搭建 ...
 
随机推荐
- 微信小程序开发教程(三)项目目录及文件构成
			
第二章我们已经创建了一个Hello WXapplet示例小程序.我们从文件目录结构来了解Hello WXapplet项目的构成. 目录结构显示,在小程序项目的根目录下面包含3个app开头的文件(app ...
 - Find the Difference -- LeetCode
			
Given two strings s and t which consist of only lowercase letters. String t is generated by random s ...
 - Ze_Min Tree 主席树
			
前言 主席树,也叫可持久化线段树,所以他的本质是颗线段树,而可持久化指的是这颗线段树可以访问过去某个时刻线段树上的信息. 应用 应用的比较多的是查询区间的第k大值(因为其他的数据结构不好做). 实现 ...
 - 【费马小定理+矩阵快速幂】HDU4549——M斐波那契数列
			
[题目大意] M斐波那契数列F[n]是一种整数数列,它的定义如下:F[0] = aF[1] = bF[n] = F[n-1] * F[n-2] ( n > 1 )现在给出a, b, n,求出F[ ...
 - 13南理工test01:进制转化
			
#include<iostream> #include<cstdlib> using namespace std; int main() { //cout<<5/2 ...
 - 修复XAMPP安装过程中 因端口80被占用 Apache无法启动的问题
			
Fix XAMPP Apache Not Starting Because Port 80 In Use XAMPP中Apache服务器无法启动,出现该问题的最常见原因是由于默认端口号80可能已被其他 ...
 - 关于scanf函数的返回值问题
			
如: scanf("%d%d",&a,&b); 1.如果a和b都被成功读入,则scanf的返回值为2 2.如果只有a被成功读入,那么返回值为1 3.如果a和b都未被 ...
 - git强行推送到远端
			
回到某一个节点git reset --hard 5db4eddeca2然后把现在这个节点,强行推送到远端git push -f origin master
 - Linux下#!/usr/bin/env bash和#!/usr/bin/bash、#!/bin/bash的比较
			
#!/usr/bin/env bash #在不同的系统上提供了一些灵活性. #!/usr/bin/bash #将对给定的可执行文件系统进行显式控制. 通过/usr/bin/env运行程序,用户不需要去 ...
 - centos系统的时间时区和MySQL的时间时区问题
			
原文:http://1567045.blog.51cto.com/1557045/1074971 centos系统的时间时区和MySQL的时间时区问题 年轻人做事要细心,特别我们这些搞IT的千万不莽 ...