SpringCloud01——服务的注册和发现

一、微服务的注册和发现

我们在微服务中,往往有服务提供者,服务消费者和服务注册中心。我们之前学习的Zookeeper就是一个注册中心。但是在官方的SpringCloud中,并不推荐使用ZK作为注册中心,我们往往使用eureka

服务提供者,服务消费者,注册中心呈一个三角关系

1.服务提供者将服务注册到中心

2.服务消费者通过注册中心去查找服务

3.查找服务后进行调用

4.服务消费者和服务注册中心保持心跳连接,一旦服务提供者的地址发生改变,注册中心会通知服务消费者

二、注册中心eureka

SpringCloud提供了多种注册中心支持,eureka,zk等,官方推荐eureka

科普:什么是Eureka?
Eureka是Netfix开源的服务发现组件,本身是一个基于Rest的服务。包含Server和Client两部分。SpringCloud将其集成在子项目Spring Cloud Netflix中,从而实现微服务的注册和发现。

2.1.编写Eureka Server

2.1.1.新建一个Spring Starter,导入eureka server

2.1.2.创建一个application.yml,在启动类@EnableEurekaServer

server:
port: 1111 #服务端口 eureka:
client:
register-with-eureka: false #是否将自己注册到Eureka服务中,自己本来就是服务无需注册
fetch-registry: false #是否从Eureka中获取注册信息
service-url: # Eureka客户端与Eureka服务端交互地址
defaultZone: http://localhost:${server.port}/eureka/

2.1.3.新建一个Spring Starter,导入eureka,编写一个服务

2.1.4.创建一个application.yml,在启动类@EnableDiscoveryClient,去上面那个注册中心去注册发现

server:
port: 8081 spring:
application:
name: microservice-item eureka:
client:
register-with-eureka: true
fetch-registry: true #是否从eureka中获取注册信息,默认true
service-url:
defaultZone: http://localhost:1111/eureka/

2.1.5.编写服务(关键代码)

@Service
public class ItemService { @Autowired
private RestTemplate restTemplate; @Autowired
private DiscoveryClient discoveryClient; /**
* 商品微服务进行查询
* @param id
* @return
*/
public Item queryItemById(Long id) {
List<ServiceInstance> instances = discoveryClient.getInstances("MICROSERVICE-ITEM");
ServiceInstance serviceInstance = instances.get(0);
String url="http://"+serviceInstance.getHost()+":"+serviceInstance.getPort()+"/item/"+id;
return restTemplate.getForObject(url, Item.class);
}
}

2.2.编写eruka-client

2.2.1.新建一个eruka-client,添加eruka发现组件和web包

2.2.2.编写配置文件application.yml

#服务端口
server:
port: 8888 #应用名称及验证账号
spring:
application:
name: server-text #注册中心
eureka:
# server:
# enable-self-preservation: false #关闭保护机制
# eviction-interval-timer-in-ms: 2000 #剔除失效服务间隔,单位毫秒
client:
register-with-eureka: true
fetch-registry: true
#设置服务注册中心的URL
service-url:
defaultZone: http://root:root@eureka-7901:7901/eureka/
instance:
hostname: server-text

2.2.3.添加启动类注解

@EnableEurekaClient

2.2.4.启动后发现集群启动正常

SpringCloud01——服务的注册和发现的更多相关文章

  1. go微服务框架go-micro深度学习(三) Registry服务的注册和发现

    服务的注册与发现是微服务必不可少的功能,这样系统才能有更高的性能,更高的可用性.go-micro框架的服务发现有自己能用的接口Registry.只要实现这个接口就可以定制自己的服务注册和发现. go- ...

  2. 玩转SpringCloud(F版本) 一.服务的注册与发现(Eureka)

    一.服务的注册与发现(Eureka) spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等 ...

  3. SpringCloud-微服务的注册与发现Eureka(二)

    一.SpringCloud简介 Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.消息总线.负载均 ...

  4. (转) 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)

    一.spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运 ...

  5. 服务的注册与发现Eureka(二)

    1.服务治理概念 在传统rpc远程调用中,服务与服务依赖关系,管理比较复杂,所以需要使用服务治理,管理服务与服务之间依赖关系,可以实现服务调用.负载均衡.容错等,实现服务发现与注册. 2.服务的注册与 ...

  6. springCloud学习-服务的注册与发现(Eureka)

    1.小记 这段时间有空,把springcloud的知识整理一下,好记性不如烂笔头,也让自己对springcloud有个清晰的认识.此次的整理记录主要借鉴了这位大佬的博客 https://blog.cs ...

  7. Spring Cloud-Eureka实现服务的注册与发现(二)

    在Spring Cloud中是使用Eureka来实现服务的注册与发现的 请勿使用eureka2.x  用于生产 2.x已经停止开发了  使用1.x  最新版是1.9  我这里demo是使用1.9  详 ...

  8. (一)Eureka 服务的注册与发现

    (一)服务的注册于发现(eureka); Eureka Server: 服务注册中心,负责服务列表的注册.维护和查询等功能 在Idea里,新建项目,选择Spring initializer. 下面的p ...

  9. C5. Spring 服务的注册与发现(Spring Cloud Eureka)

    [概述] Eureka 作为 Spring Cloud 分布式解决方案中重要的一环,实现了服务的注册与发现等功能.Eureka 包括 Eureka Server 和 Eureka Client,具体的 ...

随机推荐

  1. 【DSP开发】帮您快速入门 TI 的 Codec Engine

    德州仪器半导体技术(上海)有限公司 通用DSP 技术应用工程师 崔晶 德州仪器(TI)的第一颗达芬奇(DaVinci)芯片(处理器)DM6446已经问世快三年了.继DM644x之后,TI又陆续推出了D ...

  2. spring中的ApplicationListener监听器

    监听器在使用过程中可以监听到某一事件的发生,进而对事件做出相应的处理. 首先自定义一个监听器myListener实现ApplicationListener接口 @Repository public c ...

  3. CDH6.2上配置各种对象存储

    cm-hdfs: ufile: 还需添加jar包 S3:是自带jar包 OSS: CDH6不需要下载包, CDH5需要 core-site.xml 的群集范围高级配置代码段(安全阀) fs.oss.e ...

  4. vscode 安装一些快捷配置

    Visual Studio Code 最好的功能.插件和设置   小编推荐:掘金是一个高质量的技术社区,从 ECMAScript 6 到 Vue.js,性能优化到开源类库,让你不错过前端开发的每一个技 ...

  5. # localhost 、217.0.0.1 、本机IP

    localhost .217.0.0.1 .本机IP localhost是一个域名,性质跟 "www.baidu.com" 差不多,指向127.0.0.1这个IP地址,在windo ...

  6. 11.vim常用操作

    :set nu在命令模式下显示行号 进入输入模式 新增 (append) a :从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动. A:从光标所在列最後面的地方开始新增资料.   插入 ...

  7. Python 语言简介与入门

    Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Py ...

  8. MySql学习- 存储引擎简介

    mysql可以将数据以不同的技术存储在文件(内存)中,这种技术就称为存储引擎. 每一种存储引擎使用不同的存储机制.索引技巧.锁定水平,最终提供广泛且不同的功能. MySQL支持的存储引擎: MyISA ...

  9. MySQL自测测试

    #建学生信息表student create table student ( sno varchar(20) not null primary key, sname varchar(20) not nu ...

  10. java代码实现mock数据

    废话不多说,直接上代码. /** * 发get请求,获取文本 * * @param getUrl * @return 网页context */ public static String sendGet ...