2018/2/18 SpringCloud Eureka的学习和spirng ribbon的部分源码追踪
昨天对于Eurake大致做了一个介绍,今天就来说说具体怎么配置和使用吧。
首先,我们创建一个服务注册中心

这是它的配置文件

注意,因为我等下还会弄一个Eureka注册中心,所以这里service-url写的是对方的url

这就是另一个

也是写上对方的url,有一点要注意,Eureka注册中心在开启服务的时候,会把它自己也给注册上去(可以配置不注册自己,但是不建议,这是为了创建集群的时候能更直观的看到注册中心的数量),因为Eureka没有客户端服务端的概念,类似p2p模式,所有人即是生产方也是消费方,就算是Eureka注册中心的服务也可以作为生产方和消费方(而之所以这样,则是因为SpringCloud是通过Rest形式来互相调服务的,没有固定的消费方和提供方的概念,也没有传统RPC框架中代理这一说法。当然SpringCloud也是有代理的,不过和RPC框架的代理的概念有点不同,这个后面会说);


虽然我注释上写的是注册一个服务,但那是为了更好的认清那个注释的含义,再强调一遍,Eureka里没有固定的服务和消费的概念,只要你注册上去了,那么你即是消费方也是提供方,因为你只是把你的IP和端口还有服务名(这个主要用来负载均衡)给注册上去的,但不会注册具体要暴露的接口,因为SpringCloud是通过Rest形式调用服务的;还有其实也可以用@EnableEurekaClient这个接口来注册,它继承了@EnableDiscoverClient接口,但是,为了后面更换框架更方便(因为哪一天你不想用Eureka,想用Consul了,那么只需要换下配置和pom文件就行了)


@LoadBalanced是负载均衡的注解,它是SpringCloud提供的,但SpringCloud没有实现它,实现它的是ribbon,一个工具类,所以如果要使用的话,必须要在pom文件中引入它

这就是具体调用代码,大家要注意的是,provider-service是我要调用的服务注册在Eureka的名字,而不是具体的IP+端口,这是因为加了@LoadBalanced注解后,它会从客户端在服务中心里获取到的缓存中拿到application name对应的所有URL(因为一个服务可以安装到多台机器上),并对它们做轮询式负载均衡(默认的,你也可以配置);

debug源码为证


客户端缓存的服务注册中心针对某个服务的具体数据
本来准备把Hystrix也给讲了,不过太晚了还是留到明天吧。
2018/2/18 SpringCloud Eureka的学习和spirng ribbon的部分源码追踪的更多相关文章
- 机器学习实战(Machine Learning in Action)学习笔记————03.决策树原理、源码解析及测试
机器学习实战(Machine Learning in Action)学习笔记————03.决策树原理.源码解析及测试 关键字:决策树.python.源码解析.测试作者:米仓山下时间:2018-10-2 ...
- 深度学习(七十一)darknet 源码阅读
深度学习(七十一)darknet 源码阅读
- JDK1.8源码分析01之学习建议(可以延伸其他源码学习)
序言:目前有个计划就是准备看一下源码,来提升自己的技术实力.同时现在好多面试官都喜欢问源码,问你是否读过JDK源码等等? 针对如何阅读源码,也请教了我的老师.下面就先来看看老师的回答,也许会有帮助呢. ...
- Java并发包源码学习系列:线程池ScheduledThreadPoolExecutor源码解析
目录 ScheduledThreadPoolExecutor概述 类图结构 ScheduledExecutorService ScheduledFutureTask FutureTask schedu ...
- Netty 学习(十):ChannelPipeline源码说明
Netty 学习(十):ChannelPipeline源码说明 作者: Grey 原文地址: 博客园:Netty 学习(十):ChannelPipeline源码说明 CSDN:Netty 学习(十): ...
- (转)Android学习进阶路线导航线路(Android源码分享)
转载请注明出处:http://blog.csdn.net/qinjuning 前言:公司最近来了很多应届实习生,看着他们充满信心但略带稚气的脸庞上,想到了去年的自己,那是的我是不是也和 现在的他们一 ...
- Hadoop-1.2.1学习之Job创建和提交源码分析
在Hadoop中,MapReduce的Java作业通常由编写Mapper和Reducer開始.接着创建Job对象.然后使用该对象的set方法设置Mapper和Reducer以及诸如输入输出等參数,最后 ...
- Android学习进阶路线导航线路(Android源码分享)
转 ...
- (转)Bootstrap 之 Metronic 模板的学习之路 - (2)源码分析之 head 部分
https://segmentfault.com/a/1190000006684122 下面,我们找个目录里面想对较小的文件来分析一下源码结构,我们可以看到,page_general_help.htm ...
随机推荐
- jmeter(四)检查点
JMeter也有像LR中的检查点,本篇就来介绍下JMeter的检查点如何去实现. JMeter里面的检查点通过添加断言来完成. 检查点:上一章讲到,我们对用户名和密码进行了参数化,那么怎样来判断jme ...
- SpringBoot之旅第七篇-Docker
一.引言 记得上大三时,要给微机房电脑安装系统,除了原生的操作系统外,还要另外安装一些必要的开发软件,如果每台电脑都重新去安装的话工作量就很大了,这个时候就使用了windows镜像系统,我们将要安装的 ...
- 简单工厂模式-Java篇
简单工厂模式就是考虑如何实例化对象的问题,就是说到底要实例化谁,将来会不会增加实例化对象,比如计算器类中增加开根元素,应该考虑用一个单独的类来创造实例的过程,这就是工厂.下面将利用计算器类举例,解释简 ...
- ReactJS-1-基本使用
JSX使用 一.为什么使用JSX?React的核心机制之一就是虚拟DOM:可以在内存中创建的虚拟DOM元素.但是用js创建虚拟dom可读性差,于是创建了JSX,继续使用HTML代码创建dom,增加可读 ...
- Elasticsearch--集群管理_别名&插件&更新API
目录 使用索引别名 别名 创建别名 修改别名 合并命令 获取所有别名 移除别名 别名中过滤 别名和路由 Elasticsearch插件 基础知识 安装插件 移除插件 更新设置API 使用索引别名 通过 ...
- 460在全志r16平台tinav3.0系统下使用i2c-tools
460在全志r16平台tinav3.0系统下使用i2c-tools 2018/9/6 19:05 版本:V1.0 开发板:SC3817R SDK:tina v3.0 1.01原始编译全志r16平台ti ...
- testlink 从1.8.5 升级到 1.9.8
step1:备份原 1.8.5 的数据库. step2:分别下载 1.9.0 / 1.9.3 / 1.9.8 的安装包. step3:分别解压 1.9.0 / 1.9.3 / 1.9.8 成3 ...
- RGB、YUV和YCbCr介绍【转】
RGB: 就是常说的红(Red).绿(Green)和蓝(Blue),每个图像的像素点由RGB三个通道的值组成. YUV和YCbCr: YUV与RGB的转换: Y'= 0.299*R' + 0.587* ...
- sql发送邮件- html 格式
ALTER PROCEDURE dbo.sx_pro_AutoEmailContent AS Begin declare @Rqty int declare @n int declare @m_rec ...
- 洛谷 P2341 [HAOI2006]受欢迎的牛
题目描述 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所有奶 牛都是自恋狂,每头奶牛总是喜欢自己的.奶牛之间的“喜欢”是可以传递的——如果A喜 欢B,B喜欢C,那么A也喜欢C ...