spring cloud学习一--Eureka服务注册与发现
spring cloud Eureka是基于Netflix Eureka服务发现注册产品的二次封装,它提供了服务注册功能(Service Registry)和服务发现功能(Service Discovery)。它是spring cloud中最核心的组件。
一、Eureka的服务注册
1.注册中心Eurek server
注册中心Eurek server搭建起来非常简单,
1.引入maven:spring-cloud-starter,spring-cloud-starter-eureka-server
2.在启动类上添加注解:@EnableEurekaServer,表示这是一个服务注册中心
3.编写application配置文件信息
需要注意的是:
a.从@EnableEurekaServer注解的源码中可以看出,EnableEurekaServer本身也是个客户端,所以需要将他自己注册或者在application文件上添加配置:register-with-eureka:false,表示自己不注册
b.Eurek server有自我保护功能,这个功能的机制是:宁可信其有,不可信其无。意思是:当一个服务注册后,如果这个服务被删除或者服务名字修改后,注册中心不会立即删除这个服务,他会根据这个服务离线的时间来判断,是否是一个无效服务。一般来说推荐把这个功能打开,如果想关掉可以在application文件上添加:enable-self-preservation: false。
Eurek server的创建本身不复杂,只是application文件的配置需要注意。
server:
port: 8761 eureka:
instance:
hostname: localhost
server:
enable-self-preservation: false # 关闭自我保护模式
eviction-interval-timer-in-ms: 5000 # 续期时间,即扫描失效服务的间隔时间(缺省为60*1000ms)
client:
register-with-eureka: false #自己不用注册
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
2.服务中心的集群
我们知道在任何的分布式架构中,不管是AP还是CP架构都必须满足P,所谓的P是指即分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。简单的来说就是当某个服务器宕机后,任然有其他服务器能够使用。所以Eurek server为我们提供了一套集群方案:将两个服务中心互相注册。
服务注册中的相互注册非常简单,就和client注册一样,在eureka.client.serviceUrl.defaultZone中配置需要集群的注册中心地址就行,用逗号隔开表示可以多个集群
---
spring:
application:
name: spring-cloud-eureka
profiles: peer1
server:
port: 8000
eureka:
instance:
hostname: peer1
client:
serviceUrl:
defaultZone: http://peer2:8001/eureka/,http://peer3:8002/eureka/
---
spring:
application:
name: spring-cloud-eureka
profiles: peer2
server:
port: 8001
eureka:
instance:
hostname: peer2
client:
serviceUrl:
defaultZone: http://peer1:8000/eureka/,http://peer3:8002/eureka/
---
spring:
application:
name: spring-cloud-eureka
profiles: peer3
server:
port: 8002
eureka:
instance:
hostname: peer3
client:
serviceUrl:
defaultZone: http://peer1:8000/eureka/,http://peer2:8001/eureka/
3.服务的注册Eurek client
与Eurek server一样,服务注册不需要太多配置:
1.引入maven:spring-cloud-starter-eureka
2.启动类中添加:@EnableDiscoveryClient,表示这是一个客户端
3.编写application配置文件信息
spring.application.name=spring-cloud-producer
server.port=9000
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/
spring cloud学习一--Eureka服务注册与发现的更多相关文章
- Spring Cloud 入门教程 - Eureka服务注册与发现
简介 在微服务中,服务注册与发现对管理各个微服务子系统起着关键作用.随着系统水平扩展的越来越多,系统拆分为微服务的数量也会相应增加,那么管理和获取这些微服务的URL就会变得十分棘手,如果我们每新加一个 ...
- 一起来学Spring Cloud | 第二章:服务注册和发现组件 (Eureka)
本篇文章,很浅显的一步步讲解如何搭建一个能运行的springcloud项目(带所有操作截图).相信!看完本篇之后,你会觉得springcloud搭建如此简单~~~~ 一. Eureka简介: 1.1 ...
- 2.Spring Cloud初相识--------Eureka服务注册与消费
前言: 1.Eureka介绍: Spring Cloud Eureka,使用Netflix Eureka来实现服务注册与发现,它既包含了服务端组件,也包含了客户端组件,并且服务端与客户端均采用Java ...
- SpringCloud学习系列-Eureka服务注册与发现(1)
1.Eureka的基本架构 Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现(请对比Zookeeper). Eureka 采用了 C-S 的设计架构 ...
- SpringCloud学习系列-Eureka服务注册与发现(2)
构建 microservicecloud-eureka-7001 eureka服务注册中心Module 1.新建microservicecloud-eureka-7001 2.pom <proj ...
- spring cloud 学习(2) - eureka server注册中心高可用及安全认证
接上节继续,注册中心单点肯定是不牢靠的,可以参考下面的方案做成注册中心集群: 弄成3个节点,每个节点向其它节点注册,这样只要集群中有一个节点正常工作即可.为了方便在本机弄出这种效果,我们先修改下hos ...
- SpringCloud学习系列-Eureka服务注册与发现(3)
修改microservicecloud-provider-dept-8001 1.修改pom 增加内容 <!-- 将微服务provider侧注册进eureka --> <depend ...
- SpringCloud学习系列-Eureka服务注册与发现(4)
actuator与注册微服务信息完善 1.主机名称:服务名称修改 当前问题 含有主机名称 修改修改microservicecloud-provider-dept-8001 的yml文件 修改内容 eu ...
- Spring Cloud 学习 (一) Eureka
微服务的功能主要有以下几个方面: 服务的注册和发现 服务的负载均衡 服务的容错 服务网关 服务配置的统一管理 链路追踪 实时日志 服务注册是指向服务注册中心注册一个服务实例,服务提供者将自己的服务信息 ...
随机推荐
- 英语单词Obsolete
Obsolete 来源——命令帮助 [root@centos73 ~]# help typeset typeset: typeset [-aAfFgilrtux] [-p] name[=value] ...
- Flask学习笔记03之路由
1. endpoint from flask import Flask, url_for # 实例化一个Flask对象 app = Flask(__name__) # 打印默认配置信息 # 引入开发环 ...
- BZOJ 3306: 树 LCT + set 维护子树信息
可以作为 LCT 维护子树信息的模板,写的还是比较优美的. 本地可过,bzoj 时限太紧,一直 TLE #include<bits/stdc++.h> #define setIO(s) f ...
- [转]Html.DropDownList()的用法 ( Asp.Net MVC)
Html.DropDownList()赋默认值: 页面代码如下: <% List<SelectListItem> list = new List<SelectListItem& ...
- digits 2
digits 2 震惊了== 我还交的表,发现直接输出n个n就行=== #include<bits/stdc++.h> using namespace std; ]={ ", & ...
- 微信小程序填坑之路其一:wx.request发送与服务端接受
一.序言 应公司要求要求,要用小程序开发一个信息录入系统.没办法只能听话来填坑. 先介绍一下环境:客户端——小程序:服务端——java:数据库——mysql:服务器——centos7 需求:客户端输入 ...
- [CSP-S模拟测试]:Game(模拟)
题目传送门(内部题62) 输入格式 第一行两个整数$n,K$表示序列长度和游戏数 第二行$n$个数为序列$a_i$ 第三行$K$个数,为$p_i$ 输出格式 输出有$K$行,第$i$行为第$i$次游戏 ...
- php函数名后冒号+数据类型(返回值类型限制/php新特性)
在PHP7,一个新的功能,返回类型声明已被引入.返回类型声明指定的一个函数返回值的类型. int float bool string interfaces array callable 对象实例 如下 ...
- p4593 [TJOI2018]教科书般的亵渎
分析 我们发现$Ans = \sum_i \sum_j (j-p_i)^{m+1}$ 因此直接套用622f的方法即可 代码 #include<bits/stdc++.h> using na ...
- Bootstrap 学习笔记9 标签页和工具提示插件
<ul class="nav nav-tabs"> <li class="active"><a href="#html5 ...