昨天对于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的部分源码追踪的更多相关文章

  1. 机器学习实战(Machine Learning in Action)学习笔记————03.决策树原理、源码解析及测试

    机器学习实战(Machine Learning in Action)学习笔记————03.决策树原理.源码解析及测试 关键字:决策树.python.源码解析.测试作者:米仓山下时间:2018-10-2 ...

  2. 深度学习(七十一)darknet 源码阅读

    深度学习(七十一)darknet 源码阅读

  3. JDK1.8源码分析01之学习建议(可以延伸其他源码学习)

    序言:目前有个计划就是准备看一下源码,来提升自己的技术实力.同时现在好多面试官都喜欢问源码,问你是否读过JDK源码等等? 针对如何阅读源码,也请教了我的老师.下面就先来看看老师的回答,也许会有帮助呢. ...

  4. Java并发包源码学习系列:线程池ScheduledThreadPoolExecutor源码解析

    目录 ScheduledThreadPoolExecutor概述 类图结构 ScheduledExecutorService ScheduledFutureTask FutureTask schedu ...

  5. Netty 学习(十):ChannelPipeline源码说明

    Netty 学习(十):ChannelPipeline源码说明 作者: Grey 原文地址: 博客园:Netty 学习(十):ChannelPipeline源码说明 CSDN:Netty 学习(十): ...

  6. (转)Android学习进阶路线导航线路(Android源码分享)

     转载请注明出处:http://blog.csdn.net/qinjuning 前言:公司最近来了很多应届实习生,看着他们充满信心但略带稚气的脸庞上,想到了去年的自己,那是的我是不是也和 现在的他们一 ...

  7. Hadoop-1.2.1学习之Job创建和提交源码分析

    在Hadoop中,MapReduce的Java作业通常由编写Mapper和Reducer開始.接着创建Job对象.然后使用该对象的set方法设置Mapper和Reducer以及诸如输入输出等參数,最后 ...

  8. Android学习进阶路线导航线路(Android源码分享)

                                                                                                       转 ...

  9. (转)Bootstrap 之 Metronic 模板的学习之路 - (2)源码分析之 head 部分

    https://segmentfault.com/a/1190000006684122 下面,我们找个目录里面想对较小的文件来分析一下源码结构,我们可以看到,page_general_help.htm ...

随机推荐

  1. WinForm 里面关闭窗体的两个方法的区别 Form.coles()与Application,Exit()

  2. 抽象工厂模式和php实现

    抽象工厂模式: 抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类.抽象工厂模式又称为Kit模式,属于对象创建型模式. ...

  3. CAS介绍

    1.概述 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. 耶 ...

  4. iOS - 事件处理全过程(补充)

    事件处理的完整过程 1> 先将事件对象由上往下传递(由父控件传递给子控件),找到最合适的控件来处理这个事件. 2> 调用最合适控件的touches….方法 3> 如果调用了[supe ...

  5. InChatter系统之服务器开发(一)

    服务器端是整个消息系统的中枢,类似与人类的大脑.没有他,根本无法实现客户端之间的交流,为什么呢?这也涉及到我们的系统涉及,在服务器端,每个客户端的标识数据都会在服务器端进行保存,在这种情况下,当某一个 ...

  6. 更改ligerui源码实现分页样式修改

    修改后样式: 第一步:实现功能. 更改源码部分ligerui.all.js文件 读源代码,发现ligerui底部工具条是这样实现的(ps:注释部分为源码) _render: function () { ...

  7. AIX6.1平台11.2.0.3RAC 实施手册

    1 前言 此文档详细描述了Oracle 11gR2 数据库在AIX6.1上的安装RAC的检查及安装步骤.文档中#表示root用户执行,$表示grid或oracle用户执行. 2 系统环境 操作系统环境 ...

  8. codeforces_C. Maximum Subrectangle

    http://codeforces.com/contest/1060/problem/C 题意: a.b数组长度分别为n.m.矩阵C,Cij=ai*bj.在C中找到一个子矩阵,该子矩阵所有元素和不大于 ...

  9. 15年第六届蓝桥杯第七题_手链样式_(stl_string)

    手链样式 小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙.他想用它们串成一圈作为手链,送给女朋友.现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同的组合样式呢? 请你提交该整数.不要填写任 ...

  10. 类方法__setattr__,__delattr__,__getattr__

    __getattr__,_delattr_,_getattr_ class Foo: x = 1 def __init__(self, y): self.y = y def __getattr__(s ...