SpringCloud的服务注册中心(一)
一、概念和定义
1、服务治理:服务注册与服务发现
服务注册中心,提供服务治理功能,用来实现各个微服务实例的自动注册与发现.
服务注册与发现对于微服务系统来说非常重要。有了服务发现与注册,维护人员就不需要天天修改服务调用配置了,只需要使用服务标识符就可以访问到服务,功能类似于dubbo的注册中心(register)。
1.1、服务注册:维护服务清单,使用心跳检测清单中的服务是否可用,剔除不可用的节点
1.2、服务发现:支持调用方通过服务名发起请求调用(咨询得到发起调用),支持负载均衡
2、Eureka的服务治理实现
Eureka Server是服务注册中心,可以被高可用性的配置和部署,并且在注册的服务当中,每个服务状态可以互相复制给彼此。
Eureka Client是服务注册客户端,注册自己到Eureka Server, 提供自己的元数据(主机和端口,健康指标URL,首页等)
Eureka Server通过一个服务从各个实例接收Eureka Client发送的心跳信息。如果心跳接收失败超过配置时间,实例将会正常从注册里面移除。
Eureka Client通过HTTP(或者TCP,UDP)去Eureka Server注册和获取服务列表缓存到本地, 并周期性的刷新服务状态。
客户端端负载均衡Ribbon、智能路由Zuul,都是服务注册中心的访问者。
2.1、EurekaServer
注解: @EnableEurekaServer
配置:
server.port=1111
eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false # 本应用为注册中心,设置为false,表示不向注册中心注册自己
eureka.client.fetch-registry=false # 本应用为注册中心,职责是维护服务实例,不需要检索服务,所以设置为false
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka
2.2、EurekaClient
注解: @EnableDiscoveryClient
配置:
server.port=8080
eureka.client.serviceUrl.defaultZone=http://locahost:1111/eureka # 指定服务注册中心的地址
二、开发案例:演示EurekaClient如何注册到EurekaServer
这里的EurekaClient即业务应用Application,采用配置项spring.application.name标识
1、开发一个EurekaServer注册中心
2、开发微服务ServiceHelloA和ServiceHelloB,并各自部署两个实例
我直接开发了四个Eclipse Project,
ServiceHelloA和ServiceHelloA2是微服务ServiceHelloA
ServiceHelloB和ServiceHelloB2是微服务ServiceHelloB
三、案例说明
1、控制台:EurekaServer: http://localhost:8101/
在这个例子里,有四个EurekaClient实例注册上来,其中,ServiceHelloA两个实例,分别是8201,8202端口,ServiceHelloB两个实例,分别是8221,8222端口。

2、服务实例
ServiceHelloA: 注册两个实例到EurekaService,每个实例注册一个
http://localhost:8201/HelloA?name=Lexiaofei-8201

http://localhost:8202/HelloA?name=Lexiaofei-8202

ServiceHelloB:
http://localhost:8221/HelloB?name=Liangshengqi-8221

http://localhost:8222/HelloB?name=Liangshengqi-8222

四、代码下载
https://github.com/lexiaofei/workspace_SpringEureka.git
SpringCloud的服务注册中心(一)的更多相关文章
- springcloud 笔记-服务注册中心
1.搭建springcloud服务注册中心需要添加eureka的依赖: <?xml version="1.0" encoding="UTF-8"?> ...
- SpringCloud + Consul服务注册中心 + gateway网关
1 启动Consul 2 创建springcloud-consul项目及三个子模块 2.1 数据模块consul-producer 2.2 数据消费模块consul-consumer 2.3 ga ...
- SpringCloud之服务注册中心
1.Eureka 1.1RestTemplate 它提供了多种访问远程http服务的方法,是一种简单便捷的访问restful服务模板类,是spring提供的用于访问Rest服务的客户端模板工具集. 1 ...
- SpringCloud的服务注册中心(三) - 进一步了解 Eureka
一.服务治理参与者 服务注册中心: eureka-server 服务提供者:HELLO-SERVICE 服务消费者 :HELLO-CONSUMER 很多时候,客户端既是服务提供者又是服务消费者,-&g ...
- SpringCloud的服务注册中心(四)- 高可用服务注册中心的搭建
一.双 服务注册注册中心 1.服务注册中心的服务端 - EurekaServer 1.1.EurekaServer1 String.application.name=eureka-server ser ...
- springcloud搭建服务注册中心与服务发现
1.创建服务注册中心 创建一个普通的Spring Boot工程 首先我们需要创建一个普通的Spring Boot工程,命名为eureka-server,普通到什么程度呢?就是一个starter都不需要 ...
- SpringCloud(四):服务注册中心Eureka Eureka高可用集群搭建 Eureka自我保护机制
第四章:服务注册中心 Eureka 4-1. Eureka 注册中心高可用集群概述在微服务架构的这种分布式系统中,我们要充分考虑各个微服务组件的高可用性 问题,不能有单点故障,由于注册中心 eurek ...
- SpringCloud的服务注册中心(二)注册中心服务端和两个微服务应用客户端
一.构建EurekaServer工程 1.pom.xml 2.application.yml 3. EurekaServerApp.java 4.启动EurekaServer 二.构建部署 Eurek ...
- SpringCloud之服务注册-eureka
类似于DUBBO 的zookeeper, SpringCloud本身提供一套服务注册中心--eureka 与zookeeper的区别在于 1:zookeeper本身就是一个应用,安装即可用:eurek ...
随机推荐
- mac下redis安装、设置、启动停止
下载安装 需要下载release版本,下载地址: http://download.redis.io/releases/ 我这里下载的是: http://download.redis.io/releas ...
- kubernetes实践之运行aspnetcore webapi微服务
1.预备工作 unbuntu 16.04 and above docker kubernetes 集群 2.使用vs2017创建一个web api应用程序,并打包镜像到本地. 3.推送本地镜像到doc ...
- python中的lambda函数用法
例1:传入多个参数的lambda函数def sum(x,y): return x+y用lambda来实现:p = lambda x,y:x+yprint(4,6) 例2:传入一个参数的lambda函数 ...
- Asp.Net Core 2.0 项目实战(11) 基于OnActionExecuting全局过滤器,页面操作权限过滤控制到按钮级
1.权限管理 权限管理的基本定义:百度百科. 基于<Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员.后台管理员同时登录>我们做过了登录认证, ...
- 【Flask】 结合wtforms的文件上传表单
表单中的文件上传 基本的表单渲染,表单类设置等等就不多说了,参看另一个文章即可.但是那篇文章里没有提到对于FileField,也就是上传文件的表单字段是如何处理,后端又是如何实现接受上传过来的文件的. ...
- (Matlab)GPU计算及CPU计算能力的比较
%%首先以200*200的矩阵做加减乘除 做比较 t = zeros(1,100); A = rand(200,200);B = rand(200,200);C = rand(200,200); fo ...
- Python3 的描述符--完整例子详细解释
##描述符类的例子,这个例子说明了描述符和被描述符之间的关系 ##摄氏温度 class Celsius(): ## 1 描述符类 def __init__(self,value = 26.0): ## ...
- 深入理解Java对象的创建过程:类的初始化与实例化
摘要: 在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的.在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没有,则JVM立即进行加载并调用类 ...
- 使用cocopod管理第三方
扭捏了两年多一直不愿意使用cocopod来管理第三方,一直感觉直接拖拽第三方就挺方便的,直到今天使用第三方库WebViewJavascriptBridge,拖拽一直有问题,不得已研究.使用了cocop ...
- 简单谈谈DNS的工作原理及实践
DNS协议简介 dns(Domain Name System)是一个全球化的分布式数据库系统,用于存储域名和互联网IP地址的映射关系.dns协议是计算机协议栈应用层中,应用最广泛的协议之一.用户每一次 ...