Eureka在Server端的搭建已经有很多介绍的文章,同时也是学习Eureka的第一步。

搭建好注册中心后怎么进行服务注册和服务调用,是我们要讲的主要内容。

开发环境:IDEA2018.3+SpringBoot2.1.7Release+Eureka2.1.3+SpringCloud Greenwich.SR3

第一步:

Pom引入Eureka包

    <!--eureka-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

同时需要引入 spring-cloud-dependencies,来管理SpringCloud全家桶组件

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

关键点在于spring-cloud引用的版本,需要查一下自己springboot版本选择对应的spring-cloud.version

SpringCloud SpringBoot
Angel版本 兼容Spring Boot 1.2.x
Brixton版本 兼容Spring Boot 1.3.x,也兼容Spring Boot 1.4.x
Camden版本 兼容Spring Boot 1.4.x,也兼容Spring Boot 1.5.x
Dalston版本、Edgware版本 兼容Spring Boot 1.5.x,不兼容Spring Boot 2.0.x
Finchley版本 兼容Spring Boot 2.0.x,不兼容Spring Boot 1.5.x
Greenwich版本 兼容Spring Boot 2.1.x

当然对于不熟悉的同学来说,看完这个依旧不知道自己该如何正确选择小版本。

这一交给大家一个最容易的方法

打开 Spring Initializr选择自己的Spring版本

在Dependencies部分输入Eureka,找到Eureka Discovery Client,这里会根据我们选择的组件生成项目模板。

然后下载为我们创建的项目模板,找到POM.XML查看这里的引用版本,是不是又快捷,又准确。

我这里当然用到的版本是:

 <spring-cloud.version>Greenwich.SR3</spring-cloud.version>

第二步:
添加yml配置Eureka


spring:
application:
name: crmapi
#eureka配置
eureka:
client:
fetch-registry: true
register-with-eureka: true
serviceUrl:
defaultZone: http://127.0.0.11:8020/eureka/,http://127.0.0.1:8021/eureka/,http://127.0.0.1:8022/eureka/
instance:
instance-id: ${spring.application.name}
prefer-ip-address: true
ip-address: 127.0.01
eureka.client.serviceUrl.defaultZone配置注册中心地址

ureka.client.fetch-registry,是否启用获取服务注册信息,默认true

ureka.client.fetch-registry.register-with-eureka,是否注册eureka,默认true
instance.prefer-ip-address=true 
默认false服务的Status将会采用“主机名:程序名(application.name属性):端口号”

修改为true后,可以通过配置instance-id,来限定服务Status为制定instance-id,则实际访问时会访问对应的接口“服务器IP:端口号”
以上两种方法可以按实际需求去配置。

第三步
注册服务

找到程序入口添加@EnableEurekaClient注解

@EnableEurekaClient
@EnableSwagger2
@SpringBootApplication
@MapperScan
public class xxxapiApplication { public static void main(String[] args) {
SpringApplication.run(xxxapiApplication.class, args);
}

在程序运行时便会按照之前的配置将当前服务注册到注册中心

到这里,就可以完成服务中心注册,后面两步是调用时用使用,当然调用前也是同样要引用Eureka包,按第一步操作即可。

如果当前服务既是服务提供者又是服务调用者,就可以直接配置第四、第五步进行远程调用别的服务。

第四步
配置调用

我们可以建一个Bean配置EurekaConfig.class

@Configuration
public class EurekaConfig {
@LoadBalanced
@Bean
RestTemplate restTemplate() {
return new RestTemplate();
}
}

第五步

Controller调用

 @Autowired
private RestTemplate restTemplate; public List<MemberLevelVO> GetMemberLevel(String im) { String im = restTemplate.getForObject("http://servername/getmemberlevel?im="+im,String.class)
}

后传:

调用时注意的问题,如果直接 new RestTemplate()去调用,服务端执行是不会调用我们前面调用的额IP形式,依然会调用主机名:端口号,是因为再资源注入是一定要有@LoadBalanced注解出现才行

如果需要手动删除Eureka服务,可以使用PostMan执行DELETE操作既可删除已有服务

删除链接:http://127.0.0.1:8020/eureka/apps/crmapi(服务名Application)/bi:crmapi:8028(注册名)

删除操作

Eureka服务注册于发现之Client搭建的更多相关文章

  1. SpringCloud(3)---Eureka服务注册与发现

    Eureka服务注册与发现 一.Eureka概述 1.Eureka特点 (1) Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移. (2) Eureka 主管服务 ...

  2. Eureka服务注册与发现

    一.服务注册 注册Eureka的服务非常的简单,只需要引入spring-cloud-starter-netflix-eureka-client的jar包即可. <dependency> & ...

  3. SpringCloud的入门学习之概念理解、Eureka服务注册与发现入门

    1.微服务与微服务架构.微服务概念如下所示: 答:微服务强调的是服务的大小,它关注的是某一个点,是具体解决某一个问题.提供落地对应服务的一个服务应用,狭意的看,可以看作Eclipse里面的一个个微服务 ...

  4. Spring Cloud之Eureka服务注册与发现

    解决什么问题 ➟阐述微服务以及服务注册发现的部分概念 ➟阐述Eureka服务注册与发现的部分原理及细节 为什么需要服务中心 过去,每个应用都是一个CPU,一个主机上的单一系统.然而今天,随着大数据和云 ...

  5. SpringCloud 进阶之Eureka(服务注册和发现)

    1. Eureka 服务注册与发现 Eureka 是一个基于REST的服务,用于服务的的注册与发现; Eureka采用C-S的设计架构,Eureka Server作为服务注册功能的服务器,它是服务注册 ...

  6. Spring Cloud学习(一):Eureka服务注册与发现

    1.Eureka是什么 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的. Eureka ...

  7. SpringCloud Eureka服务注册及发现——服务端/客户端/消费者搭建

    Eureka 是 Netflix 出品的用于实现服务注册和发现的工具. Spring Cloud 集成了 Eureka,并提供了开箱即用的支持.其中, Eureka 又可细分为 Eureka Serv ...

  8. Spring Cloud 入门教程 - Eureka服务注册与发现

    简介 在微服务中,服务注册与发现对管理各个微服务子系统起着关键作用.随着系统水平扩展的越来越多,系统拆分为微服务的数量也会相应增加,那么管理和获取这些微服务的URL就会变得十分棘手,如果我们每新加一个 ...

  9. 【三】Eureka服务注册与发现

    1.是什么 Eureka是Netflix的一个子模块,也是核心模块之一.Eureka是一个基于 REST 服务,用于定位服务,以实现云端中间层服务发现和故障转移.服务注册与发现对于微服务架构来说是非常 ...

随机推荐

  1. 利用XMl标签定义动画

    渐变透明度动画 <?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android=&qu ...

  2. LinkedHashSet

    特点: 有序 , 唯一 底层的数据结构为: 链表和哈希表 , 链表保证有序 , 哈希表保证唯一 import java.util.LinkedHashSet; public class Demo2_L ...

  3. UI——DOM

    原文链接:Introduction to the DOM Introduction The Document Object Model, usually referred to as the DOM, ...

  4. ubuntu18.04安装chromium浏览器

    sudo add-apt-repository ppa:a-v-shkop/chromium sudo apt-get upate sudo apt-get install chromium-brow ...

  5. 在Eclipse Android中设置模拟器屏幕大小

    在Eclipse Android中设置模拟器屏幕大小是本文要介绍的内容,主要是来了解并学习Eclipse Android中模拟器的设置,具体关于Eclipse Android内容的详解来看本文. 方法 ...

  6. json转字符串 —— jsonObj.toJSONString()与JSON.stringify(jsonObj)json to string

    json 转变成 string方法介绍: var people = { "programmers": [{ "firstName": "Brett&q ...

  7. C,OC,C++语言对比

    1.C与OC.C++的区别: C语言的特点:面向过程 1)C语言是结构化语言,层次清晰,调试和维护比较容易 2)表现能力和处理能力比较强,可直接访问内存的物理地址 3)c语言实现对硬件的编辑,c语言课 ...

  8. js实现随机数及随机数组

    js数组元素的随机调用 工作中网页填充数据时需要一个短语库,来拼接在短语句子后边.那就写一个js吧,放在input的keydown或keyup里边用喽. 贴代码: <SCRIPT LANGUAG ...

  9. 【数据库开发】如何创建MySQL数据库连接池(一个基于libmysql的MySQL数据库连接池示例(C/C++版))

      http://blog.csdn.net/horace20/article/details/8087557 1.  一般架构说明 图 1 架构层次图 一般应用系统数据库访问模块可大致分为两层,一层 ...

  10. Linux与windows的对比

    Linux与windows的对比 声明:下面的内容总结自实验楼的linux教程,特在此说明. Linux与windows一样,是一个操作系统. Linux与Windows的区别 软件与支持 windo ...