服务治理- Spring Cloud Eureka (2)

    Eureka客户端,主要处理服务的注册与发现。客户端服务通过注解和参数配置的方式, 嵌入在客户端应用程序的代码中,在应用程序运行时,Eureka客户端向注册中心注册自身 提供的服务并周期性地发送心跳来更新它的服务租约。同时,它也能从服务端查询当前注 册的服务信息并把它们缓存到本地并周期性地刷新服务状态。

    下面我们来构建一些简单示例,学习如何使用Eureka构建注册中心以及进行注册与发 现服务。

搭建服务注册中心

    首先,创建一个基础的Spring Boot工程,命名为eureka-server, 并在pom.xml 中引入必要的依赖内容, 代码如下:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.10.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
 <dependency>          
     <groupId>org.springframework.cloud</groupId>        
     <artifactId>spring-cloud-starter-eureka-server</artifactId>           
     <version>1.4.4.RELEASE</version>
 </dependency>
 <dependencyManagement>
     <dependencies>
         <dependency>
             <groupId>org.springframework.cloud</groupId>    
             <artifactId>spring-cloud-dependencies</artifactId>    
             <version>Brixton.SR7</version>    
             <type>pom</type>    
             <scope>import</scope>
         </dependency>
     </dependencies>
 </dependencyManagement>

通过@EnableEurekaServer 注解启动一个服务注册中心提供给其他应用进行对话。 这一步非常简单, 只需在一个普通的 Spring Boot 应用中添加这个注解就能开启此功能, 比 如下面的例子:

https://img2.mukewang.com/5b3075210001800107820526.jpg

    在默认设置下, 该服务注册中心也会将自己作为客户端来尝试注册它自己,所以我们 需要禁用它的客户端注册行为, 只需在 application.properties 中增加如下配置:

https://img.mukewang.com/5b308a540001042808990530.jpg

• eureka.client.register-with-eureka: 由于该应用为注册中心,所以设置 为 false, 代表不向注册中心注册自己。

• eureka.client.fetch-registry: 由于注册中心的职责就是维护服务实例, 它并不需要去检索服务, 所以也设置为 false。

   在完成了上面的配置后,启动应用并访问 : 8081/。可以看到Eureka 信息面板, 其中 Instances currently registered with Eureka 栏是空的, 说明该注册中心还没有注册任何服务。

https://img3.mukewang.com/5b30c3410001fd4f18750971.jpg

服务治理->注册服务提供者

在完成了服务注册中心的搭建之后,接下来我们尝试将一个既有的 Spring Boot 应用加 入 Emeka 的服务治理体系中去。

新建一个新的Spring Boot 项目

https://img2.mukewang.com/5b30cc9b0001e63204150329.jpg

首先, 修改 pom.xml, 增加 Spring Cloud Eureka 模块的依赖, 具体代 码如下所示:

https://img1.mukewang.com/5b30ccdc0001e2eb07730761.jpg

接着, 创建HelloContorller   , /hello 请求处理接口, 通过注入 DiscoveryClient对象, 在日志中打 印出服务的相关内容。

https://img3.mukewang.com/5b30cd8900017d1108500500.jpg

然后, 在主类中通过加上 @EnableDiscoveryClient 注解, 激活 Eureka 中的 DiscoveryClient 实现(自动化配置, 创建 DiscoveryClient 接口针对 Eureka 客户 端的 EurekaDiscoveryClient 实例), 才能实现上述 Controller 中对服务信息的输出。

https://img4.mukewang.com/5b30cde30001cb3f07390496.jpg

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzsdsw.html