Eureka服务注册与发现
一、服务注册
注册Eureka的服务非常的简单,只需要引入spring-cloud-starter-netflix-eureka-client的jar包即可。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
当然,我们要在配置文件中指明注册中心的地址:
server:
port: 8100
spring:
application:
name: service-order
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
我们为了简单,注册中心用的是单机,大家也可以使用集群方式。
我们启动这个应用,它就是将自己的ip地址、端口、应用名称等信息向注册中心注册。我们可以打开注册中心的管理后台看到:

我们service-user服务已经注册成功了。
只要我们引入了spring-cloud-starter-netflix-eureka-client的jar包,它就使得我们的应用即是 Eureka实例(instance,是服务的提供者)又是Eureka的客户端(client,可以注册中心发现其他的服务地址)。 Spring Cloud的服务提供和发现是在一起的,这有别于我们认识的其他的服务框架(如:dubbo)。既然服务的提供 和发现是在一起的,我们来看一看怎么发现其他服务,并完成调用。
二、服务的调用
我们已经引入了spring-cloud-starter-netflix-eureka-client的jar包,就可以从注册中心找到其他的服务。 我们这里写个远程调用的例子供大家参考:
@RequestMapping("remote")
public class RemoteController {
@Autowired
private DiscoveryClient discoveryClient;
@RequestMapping("order")
public Order remoteOrder(){
List<ServiceInstance> instances = discoveryClient.getInstances("SERVICE-ORDER");
String url = instances.get(0).getUri()+"/order/detail";
RestTemplate restTemplate = new RestTemplateBuilder().build();
Order order = restTemplate.getForObject(url, Order.class);
return order;
}
}
其中,“SERVICE-ORDER”是我们order服务中的spring.application.name的名字,discoveryClient通过服务的名称找到对应的地址。 我们可以看到它返回的是一个List,这说明我们的服务可以搭建集群,我们取服务中的第一个地址,并通过RestTemplate进行调用。 这种方法是比较原始的方法,Spring Cloud给我们封装更简便的Feign,它可以更方便的调用服务,并提供了负载均衡策略,这是我们下一张要讲的内容。
至此,Eureka服务注册与发现就介绍完了,示例地址:https://github.com/liubo-tech/spring-cloud-eureka。
Eureka服务注册与发现的更多相关文章
- SpringCloud(3)---Eureka服务注册与发现
Eureka服务注册与发现 一.Eureka概述 1.Eureka特点 (1) Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移. (2) Eureka 主管服务 ...
- Spring Cloud之Eureka服务注册与发现
解决什么问题 ➟阐述微服务以及服务注册发现的部分概念 ➟阐述Eureka服务注册与发现的部分原理及细节 为什么需要服务中心 过去,每个应用都是一个CPU,一个主机上的单一系统.然而今天,随着大数据和云 ...
- SpringCloud 进阶之Eureka(服务注册和发现)
1. Eureka 服务注册与发现 Eureka 是一个基于REST的服务,用于服务的的注册与发现; Eureka采用C-S的设计架构,Eureka Server作为服务注册功能的服务器,它是服务注册 ...
- Spring Cloud学习(一):Eureka服务注册与发现
1.Eureka是什么 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的. Eureka ...
- SpringCloud的入门学习之概念理解、Eureka服务注册与发现入门
1.微服务与微服务架构.微服务概念如下所示: 答:微服务强调的是服务的大小,它关注的是某一个点,是具体解决某一个问题.提供落地对应服务的一个服务应用,狭意的看,可以看作Eclipse里面的一个个微服务 ...
- Spring Cloud 入门教程 - Eureka服务注册与发现
简介 在微服务中,服务注册与发现对管理各个微服务子系统起着关键作用.随着系统水平扩展的越来越多,系统拆分为微服务的数量也会相应增加,那么管理和获取这些微服务的URL就会变得十分棘手,如果我们每新加一个 ...
- SpringCloud系列——Eureka 服务注册与发现
前言 Eureka是一种基于REST(具像状态传输)的服务,主要用于AWS云中定位服务,以实现中间层服务器的负载平衡和故障转移.本文记录一个简单的服务注册与发现实例. GitHub地址:https:/ ...
- 【三】Eureka服务注册与发现
1.是什么 Eureka是Netflix的一个子模块,也是核心模块之一.Eureka是一个基于 REST 服务,用于定位服务,以实现云端中间层服务发现和故障转移.服务注册与发现对于微服务架构来说是非常 ...
- java框架之SpringCloud(3)-Eureka服务注册与发现
在上一章节完成了一个简单的微服务案例,下面就通过在这个案例的基础上集成 Eureka 来学习 Eureka. 介绍 概述 Eureka 是 Netflix 的一个子模块,也是核心模块之一.Eureka ...
随机推荐
- php -- func_get_args
该方法必须在某个方法内部执行才有效 返回值为索引数组,一个数组元素对应一个参数
- 基于物理规则的渲染(PBR)
为毛我的效果那么挫,我也是按照公式来的 2017 -3 -20
- k8s(6)-滚动更新
用户希望应用程序始终可用,开发人员应该每天多次部署新版本的应用程序.在Kubernetes中,这是通过滚动更新完成的.滚动更新允许通过使用新的实例逐步更新Pods实例来实现部署的更新,从而实现零停机. ...
- exists oracle 的用法
CREATE TABLE `A` ( `id` ) NOT NULL AUTO_INCREMENT, `name` ) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGIN ...
- Zephyr学习(二)开发环境搭建
一.概述 Zephyr支持在Windows.Linux和MacOS环境下开发,这里只介绍如何在Windows下搭建zephyr的开发环境. 二.步骤 2.1安装msys2 msys2是一个Linux模 ...
- intelj idea Database视图竟然还悄悄开进程,不能忍
一.前言 偶然发现,任务管理器里有个莫名其妙的java进程.看了下启动参数: CommandLine="C:\Program Files\Java\jdk1.8.0_172\bin\java ...
- jQuery AJAX方法 前台往后台传数据
https://blog.csdn.net/dreamstar613/article/details/61912717 http://www.cnblogs.com/zhuxiaojie/p/4783 ...
- Codeforces 1136D - Nastya Is Buying Lunch - [贪心+链表+map]
题目链接:https://codeforces.com/problemset/problem/1136/D 题意: 给出 $1 \sim n$ 的某个排列 $p$,再给出若干 $(x,y)$ 表示当序 ...
- 程序中打印当前进程的调用堆栈(backtrace)
为了方便调式程序,产品中需要在程序崩溃或遇到问题时打印出当前的调用堆栈.由于是基于Linux的ARM嵌入式系统,没有足够的空间来存放coredump文件. 实现方法,首先用__builtin_fram ...
- Golang覆盖写入文件的小坑
记录一点Golang文件操作的笔记,环境:Ubuntu // 删除文件 func removeFile() { err := os.Remove("test.txt") if er ...