fengzf的gravatar头像
fengzf2018-01-11 12:09:38

Spring Cloud微服务架构服务注册与消费实例

运行环境:jdk1.7

    Spring Cloud Eureka是Spring Cloud Netflix项目下的服务治理模块。而Spring Cloud Netflix项目是Spring Cloud的子项目之一,主要内容是对Netflix公司一系列开源产品的包装,它为Spring Boot应用提供了自配置的Netflix OSS整合。通过一些简单的注解,开发者就可以快速的在应用中配置一下常用模块并构建庞大的分布式系统。它主要提供的模块包括:服务发现(Eureka),断路器(Hystrix),智能路由(Zuul),客户端负载均衡(Ribbon)等。

一、创建服务注册中心

创建一个基础的Spring Boot工程,命名为eureka-server,创建步骤请看:

http://www.zuidaima.com/blog/3715921047374848.htm

并在pom.xml中引入需要的依赖内容:

Spring Cloud微服务架构服务注册与消费实例Spring Cloud微服务架构服务注册与消费实例通过@EnableEurekaServer注解启动一个服务注册中心提供给其他应用进行对话。这一步非常的简单,只需要在一个普通的Spring Boot应用中添加这个注解就能开启此功能

Spring Cloud微服务架构服务注册与消费实例在默认设置下,该服务注册中心也会将自己作为客户端来尝试注册它自己,所以我们需要禁用它的客户端注册行为,只需要在application.properties配置文件中增加如下信息:

Spring Cloud微服务架构服务注册与消费实例为了与后续要进行注册的服务区分,这里将服务注册中心的端口通过server.port属性设置为1001。启动工程后(直接执行Application中的main方法就行,这里没有tomcat什么事),访问:http://localhost:1001/,可以看到下面的页面,其中还没有发现任何服务。

Spring Cloud微服务架构服务注册与消费实例

二、创建服务提供方

   创建提供服务的客户端,并向服务注册中心注册自己。提供一个接口来获取当前所有的服务信息。

    首先,创建一个基本的Spring Boot应用。命名为eureka-client,在pom.xml中,加入如下配置这里没法一次展示,具体看源码:

Spring Cloud微服务架构服务注册与消费实例其次,实现/dc请求处理接口,通过DiscoveryClient对象,在日志中打印出服务实例的相关内容。

Spring Cloud微服务架构服务注册与消费实例最后在应用主类中通过加上@EnableDiscoveryClient注解,该注解能激活Eureka中的DiscoveryClient实现,这样才能实现Controller中对服务信息的输出。

Spring Cloud微服务架构服务注册与消费实例

application.properties做一些配置工作

Spring Cloud微服务架构服务注册与消费实例通过spring.application.name属性,我们可以指定微服务的名称后续在调用的时候只需要使用该名称就可以进行服务的访问。eureka.client.serviceUrl.defaultZone属性对应服务注册中心的配置内容,指定服务注册中心的位置。为了在本机上测试区分服务提供方和服务注册中心,使用server.port属性设置不同的端口。

启动该工程后,再次访问:http://localhost:1001/。

可以如下图内容,我们定义的服务被成功注册了。

Spring Cloud微服务架构服务注册与消费实例

访问:http://localhost:2001/dc,我们可以得到如下输出返回:

Spring Cloud微服务架构服务注册与消费实例Spring Cloud微服务架构服务注册与消费实例

eureka-client就是通过Spring Cloud定义的DiscoveryClient接口在eureka的实现中获取到的所有服务清单。

三、服务消费者

创建一个服务消费者工程,命名为:eureka-consumer。并在pom.xml中引入依赖

Spring Cloud微服务架构服务注册与消费实例配置application.properties,指定eureka注册中心的地址:

Spring Cloud微服务架构服务注册与消费实例创建应用主类。初始化RestTemplate,用来真正发起REST请求。@EnableDiscoveryClient注解用来将当前应用加入到服务治理体系中。Spring Cloud微服务架构服务注册与消费实例创建一个接口用来消费eureka-client提供的接口:Spring Cloud微服务架构服务注册与消费实例

注入了LoadBalancerClient和RestTemplate,并在/consumer接口的实现中,先通过loadBalancerClient的choose函数来负载均衡的选出一个eureka-client的服务实例,这个服务实例的基本信息存储在ServiceInstance中,然后通过这些对象中的信息拼接出访问/dc接口的详细地址,最后再利用RestTemplate对象实现对服务提供者接口的调用。

   在完成了上面你的代码编写之后,将eureka-server、eureka-client、eureka-consumer都启动起来,然后访问http://localhost:2101/consumer ,来跟踪观察eureka-consumer服务是如何消费eureka-client服务的/dc接口的。

Spring Cloud微服务架构服务注册与消费实例Spring Cloud微服务架构服务注册与消费实例

猜你喜欢

打赏

已有2人打赏

最代码伊成的gravatar头像最代码官方的gravatar头像

文件名:源码.rar,文件大小:301.012K下载
  • /
      • /eureka-server
        • /eureka-server/.gitignore
          • /eureka-server/.idea
            • /eureka-server/.idea/compiler.xml
            • /eureka-server/.idea/encodings.xml
              • /eureka-server/.idea/libraries
                • /eureka-server/.idea/libraries/Maven__antlr_antlr_2_7_7.xml
                • /eureka-server/.idea/libraries/Maven__aopalliance_aopalliance_1_0.xml
                • /eureka-server/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_1_11.xml
                • /eureka-server/.idea/libraries/Maven__ch_qos_logback_logback_core_1_1_11.xml
                • /eureka-server/.idea/libraries/Maven__commons_codec_commons_codec_1_10.xml
                • /eureka-server/.idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml
                • /eureka-server/.idea/libraries/Maven__commons_configuration_commons_configuration_1_8.xml
最代码最近下载分享源代码列表最近下载
孤傲游侠 LV66月23日
月亮星星星星
mhy12345678 LV16月22日
星星
gmhaizn LV106月8日
月亮月亮星星星星
ly3812 LV126月4日
月亮月亮月亮
张钰浩 LV15月16日
星星
jsenht LV14月4日
星星
weienqing LV163月29日
太阳
cp19791101 LV73月21日
月亮星星星星星星
linfengctbu LV33月20日
星星星星星星
guanshubang LV23月8日
星星星星
最代码最近浏览分享源代码列表最近浏览
www210005 LV27月12日
星星星星
Johnyang LV57月6日
月亮星星
huangzcu LV27月5日
星星星星
lw19900921 LV197月5日
太阳星星星星星星
你的十元 LV87月4日
月亮月亮
wwwzzzjjj LV147月3日
月亮月亮月亮星星星星
hwk_123 LV106月29日
月亮月亮星星星星
438265764 LV116月26日
月亮月亮星星星星星星
孤傲游侠 LV66月23日
月亮星星星星
mhy12345678 LV16月22日
星星
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友