Eureka 服务注册与发现

1. 什么是Eureka
Eureka 是Netflix 的一个子模块, 也是核心模块之一。Eureka 是基于REST 的服务, 用于定位服务, 以实现云端中间层服务发现和故障转移。 服务注册与发现对于微服务架构来说是非常重要的, 有了服务发现与注册, 只需要使用服务的表示符, 就可以访问到服务, 而不需要修改服务调用的配置文件了。 功能类似于dubbo的注册中心比如Zookeeper
2. Eureka 的基本框架
SpringCould 封装了Netflix 公司开发的Eureka模块来实现服务注册和发现
Eureka 采用了C-S 的设计架构。 Eureka Server作为服务注册功能的服务器, 它是服务注册中心. 而系统中的其他微服务, 使用Eureka的客户端连接到EurekaServer来监控系统中各个微服务是否正常运行。SpringCould的一些其他模块(比如Zuul)就可以通过EurekaServer 来发现系统中的其他微服务, 并执行相关的逻辑
在这里插入图片描述

3.Eureka Server 和 Eureka Client
Eureka Server :提供服务注册服务, 各个节点启动后, 会在EurekaServer 中进行注册, 这样EurekaServer 中的服务注册表中将会存储所有可能的服务节点的信息, 服务节点的信息可以再界面中直观的看到
EurekaClient是java 的客户端, 使用EurekaServer 的交互, 客户端同时也具备有个内置的, 使用轮询(round——robin)负载算法的负载均衡器。 在应用启动后, 将会向EurekaServer 发送心跳(默认周期为30s)。 如果EurekaServer在多个心跳周期内没有接收到某个节点的心跳, EurekaServer将会从服务注册表中吧这个服务节点移除(默认90s)

4. Eureka 的自我保护
某时刻某一个微服务不可用了, Eureka 不会立即清理, 依旧会对该微服务的信息进行保存
在这里插入图片描述
在SpringCloud中 可以使用eureka.server.enable-self-preservation=false 禁用自我保护的模式 (不建议使用)

5. actuator监控信息完善

   1. 子工程引入以下jar包
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-actuator</artifactId>
	</dependency> 
			2. 父工程里面构建
		<!-- 子工程使用actuator之后, 在父工程里面进行构建 -->
<build>
	<finalName>microservicecloud</finalName>
	<resources>
		<resource>
			<directory>src/main/resources</directory>  <!--允许获取所有项目 src/main/resources 目录下的配置文件(yml config。。) -->
			<filtering>true</filtering>
		</resource>
	</resources>
	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-resources-plugin</artifactId> <!-- 解析src/main/resources 这个目录下$开始$结束的配置信息-->
			<configuration>
				<delimiters>
					<delimit>$</delimit>  
				</delimiters>
			</configuration>
		</plugin>
	</plugins>
</build>
 3.子工程yml里配置info信息
  info:
 app.name: jamapro-mircroserviceclound
 company.name:  www.jamapro.com
 build.artifactId: $project.artifactId$
 build.version: $project.version$

6.服务发现
@EnableDiscoveryClient
服务端通过@EnableDiscoveryClient将服务端信息暴露给消费者, 消费者可以通过访问来获取服务端的信息。

7.Netflix 在设计Eureka时遵守的就是AP 原则

CAP: NOSQL 数据库 Consistency(强一致性),Availability(可用性),Partition tolerance(分区容错性)
ACID: 传统数据库 Atomicity(原子性),Consistency(一致性),Isolation(独立性),Durability(持久性)

8.Eureka比Zookeeper比较
Zookeeper 保证的是CP, Eureka 则是AP
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值