博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring cloud——Eureka服务发现和治理
阅读量:2491 次
发布时间:2019-05-11

本文共 5439 字,大约阅读时间需要 18 分钟。

  今天小咸儿来带大家看的是spring cloud的服务发现和治理——Eureka,虽然Eureka在闭源之后,给我们带来了一些麻烦,但是用来学习一下还是非常不错的。

宝图

  首先先来看一下这张宝图:

在这里插入图片描述

介绍

  这张图很清晰的展示了Eureka的作用,其中Eureka分为服务端(server)和客户端(client)。服务端作为注册中心,客户端则可以分为提供者和消费者来进行服务间的调用,其中需要注意的是某个服务可以既是提供者也是消费者。

代码展示

  首先声明本项目是建立在SpringBoot2.0以上,而且JDK也是1.8以上。

服务端:server

  • 先来看看pom文件中,需要引入哪些包
  • 这里需要引入的是 spring-cloud-starter-netflix-eureka-server
4.0.0
com.itmayiedu
springcloud-2.0-eureka-server
1.0-SNAPSHOT
org.springframework.boot
spring-boot-starter-parent
2.0.4.RELEASE
org.springframework.cloud
spring-cloud-dependencies
Finchley.SR1
pom
import
org.springframework.cloud
spring-cloud-starter-netflix-eureka-server
spring-milestones
Spring Milestones
https://repo.spring.io/libs-milestone
false
  • 接下来看一下,application.yml文件中该如何配置,当然这需要自己新建文件,放在resources文件夹下即可。
  • 注意,yml文件中的格式非常重要,避免因为空格问题引发各种错误哦
### 服务端口号server:  port: 8100##定义服务名称,在集群中一定要相同spring:  application:    name: app-itmayiedu-eurekaeureka:  instance:    ### 注册中心IP地址    hostname: 127.0.0.1  client:    serviceUrl:      ### 注册地址      defaultZone: http://${
eureka.instance.hostname}:{
server.port}/eureka/ ### 因为自己是注册中心,是否需要将自己注册给自己的注册中心(集群的时候是需要为true) register-with-eureka: false ### 因为自己是注册中心,不需要去检索服务信息(集群时需要) fetch-registry: false
  • 接着创建一个启动即可成功
package com.itmayiedu;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;import java.io.OutputStream;/** * EurekaServer服务 * @author Phyllis * @date 2019年7月26日17:39:53 */// 开启这个服务@SpringBootApplication/** * 表示开启EurekaServer服务 */@EnableEurekaServerpublic class AppEureka {
public static void main(String[] args){
SpringApplication.run(AppEureka.class, args); }}
  • 运行起来后,页面展示:

    在这里插入图片描述
    客户端:client 会员服务

  • 先来看一下pom文件

  • 这里需要引入的是 spring-cloud-starter-netflix-eureka-client

4.0.0
com.itemayiedu
springcloud-2.0-member
1.0-SNAPSHOT
org.springframework.boot
spring-boot-starter-parent
2.0.4.RELEASE
org.springframework.cloud
spring-cloud-dependencies
Finchley.SR1
pom
import
org.springframework.boot
spring-boot-starter-web
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
spring-milestones
Spring Milestones
https://repo.spring.io/libs-milestone
false
  • 接下来看一下application.yml文件
### 会员项目的端口号server:  port: 8000### 服务别名——服务注册到注册中心上的名称spring:  application:    name: app-itmayiedu-membereureka:  client:    service-url:    ##### 当前会员服务注册到Eureka服务地址      defaultZone: http://localhost:8100/eureka    ### 需要将我的服务注册到Eureka上    register-with-eureka: true    #### 需要检索服务    fetch-registry: true
  • 创建一个启动类 AppMember
package com.itmayiedu.aip.controller;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.EnableEurekaClient;/** * * @author Phyllis * @date 2019年7月26日19:23:17 */@SpringBootApplication/** * 将当前服务注册到Eureka上 */@EnableEurekaClientpublic class AppMember {
public static void main(String[] args){
SpringApplication.run(AppMember.class, args); }}
  • 创建一个controller类 MemberApiController,用来显示一个正常的请求
package com.itmayiedu.aip.controller;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;/** * 我是会员服务的ApiController * @author Phyllis * @date 2019年7月26日19:22:09 */@RestControllerpublic class MemberApiController {
@Value("${server.port}") private String serverPort; @RequestMapping("getMember") public String getMember(){
return "this is member, 我是会员服务,spring cloud2.0版本,端口号:" + serverPort; }}
  • 启动运行后,页面展示
    注册中心:
    在这里插入图片描述
    请求访问:
    在这里插入图片描述

总结

  这样就简单的完成一个服务注册。看起来是不是十分简单呢,注册中心默认每隔30秒进行一次续约,用来检测客户端的心跳,这只是Eureka心跳机制的一部分,更多的内容可以和小咸儿一起去探索哦!

转载地址:http://xjerb.baihongyu.com/

你可能感兴趣的文章
C++ 线程同步之临界区CRITICAL_SECTION
查看>>
测试—自定义消息处理
查看>>
MFC中关于虚函数的一些问题
查看>>
根据图层名获取图层和图层序号
查看>>
规范性附录 属性值代码
查看>>
提取面狭长角
查看>>
Arcsde表空间自动增长
查看>>
Arcsde报ora-29861: 域索引标记为loading/failed/unusable错误
查看>>
记一次断电恢复ORA-01033错误
查看>>
C#修改JPG图片EXIF信息中的GPS信息
查看>>
从零开始的Docker ELK+Filebeat 6.4.0日志管理
查看>>
How it works(1) winston3源码阅读(A)
查看>>
How it works(2) autocannon源码阅读(A)
查看>>
How it works(3) Tilestrata源码阅读(A)
查看>>
How it works(12) Tileserver-GL源码阅读(A) 服务的初始化
查看>>
uni-app 全局变量的几种实现方式
查看>>
echarts 为例讲解 uni-app 如何引用 npm 第三方库
查看>>
uni-app跨页面、跨组件通讯
查看>>
springmvc-helloworld(idea)
查看>>
JDK下载(百度网盘)
查看>>