博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring-Cloud-Finchley | 服务注册与发现 Eureka
阅读量:4104 次
发布时间:2019-05-25

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

简介

注册中心是微服务的核心,提供服务注册与发现,当一个服务启动时,会把自己的信息注册到注册中心,当一个服务需要调用另一个服务时,会通过别名从注册中心获取到相关服务的信息,比如该服务的地址等。

Zookeeper 也可以作为注册中心,Eureka 和 Zookeeper 的区别在于 Eureka 保证 AP,Zookeeper 保证 CP,AP 也就是 CPA 理论中的高可用和分区容错,每一个服务在注册中心注册后,会定时向注册中心发送心跳,表示自己活着,如果发送心跳超时,服务注册中心会把这个服务从注册中心剔除。

CPA 理论:

C(Consistency,一致性),保证数据的一致性,同步更新数据。
P(Partition tolerance,分区容错),可靠性。
A(Availability,可用性),良好的响应性能。

下面将使用 Eureka 来搭建注册中心:

搭建注册中心

首先创建一个 Maven 工程,父 pom 文件如下,下面是需要添加的关键依赖信息。

UTF-8
1.8
1.8
Finchley.RELEASE
org.springframework.boot
spring-boot-starter-parent
2.0.5.RELEASE
junit
junit
4.11
test
org.springframework.boot
spring-boot-starter-test
test
org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import
1.搭建服务注册中心 eureka-server

Maven 依赖

com.hly
01-spring-cloud-eureka
1.0-SNAPSHOT
UTF-8
UTF-8
1.8
org.springframework.cloud
spring-cloud-starter-netflix-eureka-server
org.springframework.boot
spring-boot-starter-web

application.yml 配置

server:  port: 8761eureka:  instance:    hostname: localhost  client:  #默认情况下eureka server也是一个eureka client  #表明自己是一个eureka server,不会需要注册自己    registerWithEureka: false    #表明自己是一个eureka server,不需要从eureka上获取注册信息    fetchRegistry: false    serviceUrl:    #指定服务注册中心地址      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/spring:  application:  # 注册中心的名称    name: eureka-server

SpringBoot 启动类

@SpringBootApplication@EnableEurekaServerpublic class EurekaServerApplication {	public static void main(String[] args) {		SpringApplication.run(EurekaServerApplication.class, args);	}}

完成后访问 http://localhost:8761/ 出现以下结果则成功。

在这里插入图片描述

2.搭建服务提供者 eureka-client

Maven 依赖

com.hly
01-spring-cloud-eureka
1.0-SNAPSHOT
UTF-8
UTF-8
1.8
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
org.springframework.boot
spring-boot-starter-web

application.yml 配置文件

server:  port: 8762spring:  application:    name: eureka-clienteureka:  client:    serviceUrl:    # 注册中心地址      defaultZone: http://localhost:8761/eureka/

SpringBoot 启动类

@SpringBootApplication@EnableEurekaClient@RestControllerpublic class EurekaClientApplication {	public static void main(String[] args) {		SpringApplication.run(EurekaClientApplication.class, args);	}	    @Value("${server.port}")    String port;    @RequestMapping("/hi")    public String home(@RequestParam(value = "name", defaultValue = "hly") String name) {        return "hi " + name + " ,i am from port:" + port;    }}

启动之后,再次访问 http://localhost:8761/ ,则会发现服务已经注册到了注册中心。

在这里插入图片描述
我们访问 http://localhost:8762/hi 则可以访问到服务提供者所返回的信息。

在这里插入图片描述

思维导图

代码下载

01-spring-cloud-eureka:

关于

公众号:【星尘Pro】

github:

推荐阅读

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

你可能感兴趣的文章
fastcgi_param 详解
查看>>
poj 1976 A Mini Locomotive (dp 二维01背包)
查看>>
MODULE_DEVICE_TABLE的理解
查看>>
No devices detected. Fatal server error: no screens found
查看>>
db db2_monitorTool IBM Rational Performace Tester
查看>>
postgresql监控工具pgstatspack的安装及使用
查看>>
【JAVA数据结构】双向链表
查看>>
【JAVA数据结构】先进先出队列
查看>>
谈谈加密和混淆吧[转]
查看>>
乘法逆元
查看>>
Objective-C 基础入门(一)
查看>>
通过mavlink实现自主航线的过程笔记
查看>>
Flutter Boost的router管理
查看>>
iOS开发支付集成之微信支付
查看>>
C++模板
查看>>
【C#】如何实现一个迭代器
查看>>
【C#】利用Conditional属性完成编译忽略
查看>>
SSM-CRUD(1)---环境搭建
查看>>
Nginx(2)---安装与启动
查看>>
springBoot(5)---整合servlet、Filter、Listener
查看>>