• 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也给讲了,不过太晚了还是留到明天吧。

  • 相关阅读:
    传智播客itcastbbs(二)
    传智播客itcastbbs(三)
    传智播客itcastbbs(一)(图文)
    传智播客itcastbbs(四)
    传智播客itcastbbs(六)
    双语美文:我想! 我做! 我得到!
    java邮件开发详解
    JDK_Tomcat_MyEclipse配置
    醋泡大蒜有什么功效
    优盘量产
  • 原文地址:https://www.cnblogs.com/yangfeiORfeiyang/p/8453342.html
Copyright © 2020-2023  润新知