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 ...
随机推荐
- bootstrap datatable项目封装
(function($) { $.fn.formJSON = function() { var serializeObj = {}; var array = t ...
- 【Hibernate】多对多关系的表达
User.hbm.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate ...
- Thinkphp3.23 连接MSSQL方法
Thinkphp 3.23要连接MSSQL,必须配置下,以下是主要的步骤. 1.要安装Microsoft Drivers for PHP for SQL Server驱动 下载驱动以前,要查看一下ph ...
- 微信小程序组件解读和分析:八、checkbox复选项
checkbox复选项组件说明: checkbox是小程序表单组件中的一个组件,作用是在表单中引导用户做出选择. 要使用checkbox组件,还需要在同组中所有的checkbox标签外使用checkb ...
- 短视频SDK简单易用——来自RDSDK.COM
锐动天地为开发者提供短视频编辑.视频直播.特效.录屏.编解码.视频转换,等多种解决方案,涵盖PC.iOS.Android多平台.以市场为导向,不断打磨并创新技术,在稳定性,兼容性,硬件设备效率优化上千 ...
- vscode显示php函数列表
1.安装插件支持 https://marketplace.visualstudio.com/items?itemName=linyang95.php-symbols 2.ctrt+shift+o 即可 ...
- 简述SVN服务器配置和客户端操作
有关SVN服务器的搭建见:http://www.cnblogs.com/DwyaneTalk/p/3997688.html 搭建好环境之后,服务器端需要完成如下操作: 1.需要新建Repository ...
- 1、QQ装机部落---腾讯软件
亲,赚钱快人一步,我给你推荐QQ装机部落!大品牌,口碑好,知名软件,绿色无毒,每天结算,回报高!到这里注册:http://zjbl.qq.com/#/?invid=476058088 返利网邀请码立即 ...
- Java EE 目标
在大三上学期学习了Java se,只是简单的学习了语法,而且没有及时的复习巩固,语法知识已经忘了许多.在这个新学期,又有了Java EE这门课,书上的内容是从没学习过的新知识,只是在网站上看到过像Sp ...
- mysql 添加记录或者删除记录
insert into tableName (prod1,pord2,... ) values (v1,v2,...) [,(v1,v2,...),(v1,v2,...)] 程度从强到弱 1.drop ...