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(注册名)

删除操作

最新文章

  1. Linux命令行上程序执行的那一刹那!
  2. linux 修改home 目录
  3. memcache 安装
  4. WPF中RadioButton的分组
  5. Component creation must be done on Event Dispatch Thread错误解决方法
  6. JS tab切换事件
  7. C#发送邮件源码
  8. SRM589
  9. 部署ASP.Net项目 遇到总是启用目录浏览或者报HTTP 错误 403.14 - Forbidden 的原因
  10. Android中通过代码获取arrays.xml文件中的数据
  11. Acoustic Echo Cancellation (AEC) 回音消除技术探索
  12. 第一百节,JavaScript表达式中的运算符
  13. Git&#160;结合Git使用Bitbucket进行代码版本管理流程规范与实践
  14. Session 常见操作
  15. android开发(1):底部导航条的实现 | navigation tab | activity的创建
  16. bzoj千题计划302:bzoj3160: 万径人踪灭
  17. (4)MySQL的外键(不同表之间的数据关联)
  18. toast js
  19. ios总结2018
  20. Sql Server 统计当天数据

热门文章

  1. Syste类
  2. Linux下设置Tomcat开机自启动
  3. EXCEL生成SQL脚本
  4. mariadb升级
  5. mycat 实现读写分离
  6. 第六章 Realm及相关对象——《跟我学Shiro》
  7. 【馨儿收藏】群星《2019最新好听DJ舞曲精选》全系列【WAV/在线/百度】(持续更新)
  8. 斑马打印机和欧姆龙CP1H串口通信打印
  9. ng接口API开发文档
  10. 开源定时任务框架Quartz(二)