SpringCloud——Eureka服务注册和发现

SpringCloud[01]Eureka服务注册与发现 Eureka服务注册与发现 1. Eureka基础知识 1. 什么是服务治理 SpringCloud封装了Netflix公司开发的Eureka模块来实现服务治理 在传统的RPC远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务与服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册 2. 什么是服务注册与发现 Eureka采用了CS的设计架构,Eureka Server作为服务注册功能的服务器,它是服务注册中心,而系统中的其他微服务,使用 阅读详情

一、SpringCloud和Dubbo

SpringCloud整合了一套较为完整的微服务解决方案框架,而Dubbo只是解决了微服务的几个方面的问题。

contentDubboSpringCloud
服务注册中心zookeeperSpring Cloud Netflix Eureka
服务调用方式RPCREST API
服务网关无Spring Cloud Netflix Zuul
断路器不完善Spring Cloud Netflix Hystrix
分布式配置无Spring Cloud Config
服务跟踪无Spring Cloud Sleuth
消息总线无Spring Cloud Bus
数据流无Spring Cloud Stream
批量任务无Spring Cloud Task

当然,虽然dubbo没有提供很多解决方案,但他也可以整合第三方的项目来实现。

二、Demo

今天介绍的服务发现是在SpringCloud的子项目Netflix中,除此之外,他还提供了熔断器、负载均衡、智能路由等,之后会介绍到。

和往常一样,我们先来实现这个实例,然后再分析。这里,我们需要一个服务注册中心(即下面例子中的eureka-server)和一个服务的提供方(eureka-provider)。

1、服务注册中心

1)、引入pom文件
<!--基于Springboot-->
      <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.0.RELEASE</version> 
        <relativePath/>
    </parent>

    <properties>   
        <!--设置字符编码及java版本-->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <!--增加eureka-server的依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
        </dependency>
        <!--用于测试的,本例可省略-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <!--依赖管理,用于管理spring-cloud的依赖,其中Camden.SR3是版本号-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Camden.SR3</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
2)、配置

新建application.properties,注意名称只能是这个,不然不会被识别。

server.port=8761
#注册中心默认端口就是8761,也可通过下面的方式定义其他端口
#eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=false
  
  • 1
  • 2
  • 3
  • 4
  • 5
3)、启动类
@EnableEurekaServer  //启动一个服务注册中心提供给其他应用进行对话
@SpringBootApplication
public class ServerApplication {
public static void main(String[] args) {
//下面两行代码都可以用来启动
 SpringApplication.run(ServerApplication.class, args);
//new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
4)、测试

在浏览器中输入http://localhost:8761 就会显示:
这里写图片描述

2、服务提供者

1)、pom文件跟注册中心类似,只有eureka有区别:
     <dependency>
        <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
    </dependency>
  
  • 1
  • 2
  • 3
  • 4
2)、配置文件
#应用(服务)名称
spring.application.name=compute-service  
server.port=8762
#注册中心地址
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/


  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
3)、Java Code

Controller中,通过DiscoveryClient发现服务。
启动类

@EnableDiscoveryClient  //激活eureka中的DiscoveryClient实现
@SpringBootApplication
public class ComputeServiceApplication {
    public static void main(String[] args) {
    new SpringApplicationBuilder(ComputeServiceApplication.class).web(true).run(args);
    }
}
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
4)、测试

这里写图片描述

在浏览器中输入http://localhost:8762/hello?name=Sherry或http://yfywyangsx.hiersun.com:hello-service:8762/hello?name=Sherry

这里写图片描述 ##

三、FAQ

1、Eureka的高可用方案 上面的例子中,Eureka只有一个8761的注册中心,那么如何避免单点问题呢?

我们可以采用集群的方式来解决。 比如现在有三台机器:Server1、Server2和Server3.在高可用方案中,三台机器要两两注册。比如S1要向S2、S3分别进行注册,目前他无法实现注册的传递性。 这样一来,如果Server1宕机,我们还可以继续从Server2和3中获取服务。

2、为什么不用zookeeper做注册中心 在使用dubbo时,一般都结合zk(作为注册中心)来使用。那为什么SpringCloud中使用Eureka,而不是zk呢?

我们来比较一下,在CAP理论中,zk更看重C和P,即一致性和分区容错性。但Eureka更在意的是A和P,A为高可用。zk中有master和follower区别,当进入选举模式时,就无法正常对外提供服务。但Eureka中,集群是对等的,地位是相同的,虽不能保证一致性,但至少可以提供注册服务。 根据不同的业务场景,各有取舍吧。

SpringCloud_Eureka服务注册与发现 文章目录基础知识服务治理服务注册于发现组件Eureka ServerEureka CLient单机Eureka构建步骤Eureka Server构建Eureka Client构建集群Eureka构建修改Eureka Server 集群的yaml修改Eureka Client 微服务模块的yaml如果微服务模块为集群,通过在eureka上注册过的微服务名称调用使用@LoadBalanced注解赋予R... 阅读详情

相关推荐

SpringCloud Eureka的服务注册与发现

SpringCloud Eureka的服务注册与发现 一、Eureka简介 在传统应用中,组件之间的调用,通过有规范的约束的接口来实现,从而实现不同模块间良好的协作。但是被拆分成微服务后,每个微服务实例的网络地址都可能动态变化,数量也会变化,使得原来硬编码的地址失去了作用。需要一个中心化的组件来进行服务的登记和管理,为了解决上面的问题,于是出现了服务治理,就是管理所有的服务信息和状态,也就是我们所说的注册中心 1.1 注册中心 比如我们去做火车或者汽车,需要去买票乘车,只看我们有没有票(有没有服务),有就去

Java_Pluto的博客 428

Dubbo和Eureka

我们来比较一下,在CAP理论中,zk更看重C和P,即一致性和分区容错性。zk中有master和follower区别,当进入选举模式时,就无法正常对外提供服务。但Eureka中,集群是对等的,地位是相同的,虽不能保证一致性,但至少可以提供注册服务。这里,我们需要一个服务注册中心(即下面例子中的eureka-server)和一个服务的提供方(eureka-provider)。今天介绍的服务发现是在SpringCloud的子项目Netflix中,除此之外,他还提供了熔断器、负载均衡、智能路由等,之后会介绍到。..

m0_67391518的博客 1213

dubbo服务注册到eureka.zip

dubbo服务注册到eureka

在项目中同时使用SpringCloud和Dubbo,注册中心选用Eureka?

项目中同时使用SpringCloud和Dubbo,注册中心的选取,基本使用到搭配使用详解

程序员Forlan的博客 2215

codevs 1620 轮船问题 DP 解题报告

某国家被一条河划分为南北两部分,在南岸和北岸总共有N对城市,每一城市在对岸都有唯一的友好城市,任何两个城市都没有相同的友好城市。

Hawo11的博客 815

如何下载era5数据?(两种方式)

供水利大数据云计算课程同学参考使用#

Camiel_sweet的博客 1万+

浅谈微服务架构与服务治理的Eureka和Dubbo

通俗的理解方式就是一个独立的业务模块,以业务的范围来确定领域的边界。以电商项目为例子,购物车可以看成一个领域,下订单看成一个领域,商城看成一个领域,而当某个领域发展的过于庞大的时候,再对其进行拆分,分成更细分的领域,原则就是保证每一个领域做的是一个单独的事情,做到最大程度的解耦。用微服务的架构设计来作为议题,很有喧哗取宠的偏向,所以需要声明一下,本文说的都是基于博主当前浅薄的软件开发经验与贫瘠的架构设计思想得出的浅见,仅是一家之言,而且其中必定包含了很多的确认型偏误,对此现在无法避免。

Alex的博客 829

3dMax效率翻倍!用Octopus章鱼插件打造你的专属快捷菜单(附MaxScript入门指南)

本文详细介绍了如何利用Octopus插件和MaxScript脚本在3dMax中打造高效快捷菜单,显著提升三维建模与动画制作的工作效率。通过饼状菜单系统、自动化宏录制和脚本控制,用户可实现个性化工作流,节省大量操作时间。文章还提供了MaxScript入门指南,帮助开发者快速掌握这一强大工具。

weixin_30920853的博客 151

SpringCloud 服务注册&发现-Eureka

【SpringCloud】 服务注册&服务发现介绍,Eureka注册中心使用(超详细)

Mwt258的博客 2010

【tips】在PyCharm中安装opencv图文版详细教程

pip如下图所示,左边的蓝色图标就是终端。点开终端后,键入命令,按下回车后就开始下载了。如果你更喜欢图形化操作,可以在 PyCharm 中直接安装:。点击右上角的 +按钮(添加包)。搜索或,点击。

zhousanguhe的博客 6740

Metal 一、初识 Metal 及其语言规范

游戏开发者的新的技术平台,该技术能够为3D图像提高 10 倍的渲染性能。苹果2018年推出 Metal,在此之前一直使用OpenGL ES。1图形渲染;2高并发计算。苹果文档给出的 Metal 优化:CPU 低消耗、GPU 高利用、连续处理器并行、有效的资源利用Metal 官方文档。

irainsa的博客 1219

Spring Cloud Eureka:服务注册与发现

Spring Cloud Eureka是Spring Cloud Netflix 子项目的核心组件之一,主要用于微服务架构中的服务治理。本文将对搭建Eureka注册中心,搭建Eureka客户端,搭建Eureka集群及给Eureka注册中心添加登录认证进行介绍。在微服务架构中往往会有一个注册中心,每个微服务都会向注册中心去注册自己的地址及端口信息,注册中心维护着服务名称与服务实例的对应关系。

weixin_42907150的博客 2327

手把手教你设计T型和Π型衰减器:从理论计算到实际搭建(含误差分析)

本文详细介绍了T型和Π型衰减器的设计方法,从理论计算到实际搭建,包括电阻值推导、元件选择技巧及误差分析。通过实例演示如何设计50Ω系统中的10dB衰减器,并提供了高频应用和优化策略,帮助电子工程师掌握阻抗匹配与信号衰减的核心技术。

weixin_33737774的博客 395

【SpringCloud】服务注册与发现 - Eureka

在最初的架构体系中,集群的概念还不那么流行,且机器数量也比较少,此时直接使用 DNS + Nginx 就可以满足几乎所有服务的发现。相关的注册信息直接配置在 Nginx。但随着微服务的流行与流量的激增,机器规模逐渐变大,并且机器会有频繁的上下线行为,这种时候需要运维手动地去维护这个配置信息是一个很麻烦的操作。所以开发者们开始希望有这么一个东西,它能维护一个服务列表,哪个机器上线了,哪个机器宕机了,这些信息都会自动更新到服务列表上,客户端拿到这个列表,直接进行服务调用即可。这个就是注册中心。

Hsusan的博客 2062

datart 二开环境搭建

下载源码, 地址: https://github.com/running-elephant/datart, dev 分支; 解压后使用 idea 打开; 服务端: 3.1 安装依赖, idea会自动安装; 3.2 修改配置文件 /config/application.yml 3.3 创建数据库,并将bin/datart.sql导入到数据库中 3.4 入口: /server/src/main/java/datart/DatartServerApplication.java [外链图片转存失败,源站可能有防.

又是再见? 6132

撸毛笔记-电信营业厅 v5.03

电信营业厅 v5.03签到和完成部分金豆任务, 喂宠物7天,15天,28天连签抽奖, 宠物等级权益兑换自己设置电信的服务密码, 把 手机号#服务密码 填到变量里:每天运行一两次const $ = new Env("电信营业厅");

xiaoshun007的专栏 4494

Eureka:Spring Cloud服务注册与发现组件

转载自学用。。。。。Eureka 一词来源于古希腊词汇,是“发现了”的意思。在软件领域,Eureka 是 Netflix 公司开发的一款开源的服务注册与发现组件。Spring Cloud 将 Eureka 与 Netflix 中的其他开源服务组件(例如 Ribbon、Feign 以及 Hystrix 等)一起整合进 Spring Cloud Netflix 模块中,整合后的组件全称为 Spring Cloud Netflix Eureka。

m0_47040562的博客 1892

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

springcloud(第三篇)springcloud eureka 服务注册与发现

spring cloud eurekaeureka 用以服务发现、服务注册,比较流行的有consul简介eureka为netflix开源软件,分为三个部分: eureka服务:用以提供服务注册、发现,已一个war的形式提供 http://search.maven.org/#search%7Cga%7C1%7Ceureka-server 或者编译源码,将war拷贝进tomcat即可提供服务 eure

liaokailin的专栏 10万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Eureka——Spring Cloud中的服务注册与发现组件

Eureka 是 Spring Cloud 中非常重要的核心模块,使用 Spring Cloud 就离不开 Eureka,我们用一个产品服务中的获取 Promotion 信息,及所有产品功能为例,让大家快速了解 Eureka 是做什么用的,及如何使用。 Eureka,作为Spring Cloud微服务架构中的一个核心组件,主要用于服务注册与发现。它源自于Netflix的开源项目,被广泛应用于构建弹性、高可用性的分布式系统。以下是对Eureka使用的全面介绍。 # 2. Eureka的概述 Eureka

码界领航的Cherry Yang的博客 1985

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

SpringCloud微服务 Eureka服务注册与发现

本来是服务消费者直接调用的服务提供者,但为了防止硬编码,能够实时获取最新服务地址,通过eureka注册中心,调用相应服务。依赖引⼊: 在member-service-provider-10000项⽬的pom.xml⽂件中引⼊spring-cloud-starter-netflix-eureka-client依赖。依赖引⼊: 在member-service-provider-10000项⽬的pom.xml⽂件中引⼊spring-cloud-starter-netflix-eureka-client依赖。

你好, 我在学java的博客 1320

03-02、SpringCloud第二章,Eureka服务的注册与发现

SpringCloud eureka 服务的 注册与发现

记录自我学习的过程 2382

SpringCloud实现服务发现和服务注册-Eureka Server

解决问题:若接口更改,服务提供者和服务消费都需要修改,即使Nginx维护也比较繁琐,为解决硬编码问题,所以用服务发现和服务注册解决问题。 服务发现组件的功能: 1.服务注册表 服务注册表是一个记录当前可用服务实例的网络信息的数据库,是服务发现机制的核心。服务注册表提供查询API和管理API,使用查询API获得可用的服务实例,使用管理API实现注册和注销; 2.服务注册 3.健康检查 ...

清风追梦enjoy的专栏 2534

SpringCloud学到刚好够用之二-服务注册发现Eureka

SpringCloud学到刚好够用之二-服务注册发现Eureka 文章目录SpringCloud学到刚好够用之二-服务注册发现Eureka总览简介服务端(注册中心)主要步骤上述步骤关键代码及图片测试:模拟某个服务,注册到eureka主要步骤上述步骤关键代码及图片总结广告时间 总览 spring cloud相关技术栈在现在各个互联网公司的普及率已经很高了,这次去面试,基本面试官都有提到这一块,但是有...

cmqwan的博客 1万+

SpringCloud 学习笔记 —— 五、Eureka 服务注册与发现

SpringCloud 学习笔记 —— 五、Eureka 服务注册与发现

weixin_44553952的博客 1115
上一篇: SpringCloud——服务网关
下一篇: 微服务架构设计 互联网金融平台微服务架构设计
jorny_java
博客等级 码龄9年 4粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值