使用Eureka实现服务治理

作用:实现服务治理(服务注册与发现)

简介:

Spring Cloud Eureka是Spring Cloud Netflix项目下的服务治理模块。而Spring Cloud Netflix项目是Spring Cloud的子项目之一,主要内容是对Netflix公司一系列开源产品的包装,它为Spring Boot应用提供了自配置的Netflix OSS整合。通过一些简单的注解,开发者就可以快速的在应用中配置一下常用模块并构建庞大的分布式系统。它主要提供的模块包括:服务发现(Eureka),断路器(Hystrix),智能路由(Zuul),客户端负载均衡(Ribbon)等。

项目实战:

  服务注册中心 :eureka-server

作用:服务注册中心提供服务注册功能

服务提供方:eureka-client

作用:注册服务到服务注册中心

服务注册中心 :eureka-server

新建一个springboot项目:eureka-server,其pom.xml配置如下:

 1  2 UTF-8 3 UTF-8 4 1.8 5  6  7  8 org.springframework.cloud 9 spring-cloud-starter-eureka-server10 11 12 13 14 15 org.springframework.cloud16 spring-cloud-dependencies17 Dalston.SR118 pom19 import20 21 22 

想要实现一个服务注册中心的功能非常简单,只需要在项目的启动类EurekaServerApplication上使用@EnableEurekaServer注解即可

1 @EnableEurekaServer2 @SpringBootApplication3 public class EurekaServerApplication{4 5 public static void main(String[] args) {6 new SpringApplicationBuilder(EurekaServerApplication.class)7 .web(true).run(args);8 }9 }

默认情况下,该服务注册中心也会将自己作为客户端来尝试注册它自己,所以我们需要禁用它的客户端注册行为,只需要在application.properties配置文件中增加如下信息:

1 spring.application.name=eureka-server2 server.port=10013 eureka.instance.hostname=localhost4 eureka.client.register-with-eureka=false5 eureka.client.fetch-registry=false

启动EurekaServerApplication,访问 http://localhost:9001/可以看到Eureka的页面,从红框的位置可以看到没有任务服务实例注册到当前的服务注册中心

服务提供方 :eureka-client

每一个实例注册之后需要向注册中心发送心跳,当client向server注册时,它会提供一些元数据,例如主机和端口,URL,主页等。Eureka server 从每个client实例接收心跳消息。 如果心跳超时,则通常将该实例从注册server中删除。

新建一个springboot项目:eureka-client,其pom.xml配置如下:

 1  2 UTF-8 3 UTF-8 4 1.8 5  6  7  8 org.springframework.cloud 9 spring-cloud-starter-eureka10 11 12 org.springframework.boot13 spring-boot-starter-web14 15 16 17 18 19 org.springframework.cloud20 spring-cloud-dependencies21 Dalston.SR122 pom23 import24 25 26 

想要实现一个服务提供方也很简单,只要在项目的启动类EurekaClientApplication上使用@EnableEurekaClient注解即可

 1 @EnableEurekaClient 2 @SpringBootApplication 3 public class EurekaClientApplication { 4  5 public static void main(String[] args) { 6 new SpringApplicationBuilder( 7 EurekaClientApplication.class) 8 .web(true).run(args); 9 }10 }

在application.properties中进行如下配置

spring.application.name=eureka-clientserver.port=9002eureka.client.serviceUrl.defaultZone=http://localhost:9001/eureka/

通过spring.application.name属性,我们可以指定微服务的名称后续在调用的时候只需要使用该名称就可以进行服务的访问。

eureka.client.serviceUrl.defaultZone属性对应服务注册中心的配置内容,指定服务注册中心的位置。

使用server.port属性设置不同的端口。

启动EurekaClientApplication类

刷新 http://localhost:9001/,可以看到咱们的服务提供方已经注册到了服务注册中心

在新建一个DiscoveryController

使用discoveryClient.getServices()获取已经注册的服务名,使用@value将配置文件中的信息赋值到ip

@RestControllerpublic class DiscoveryController {  @Autowired private DiscoveryClient discoveryClient; @Value("${server.port}") private String ip;  @GetMapping("/client") public String client() { String services = "Services: " + discoveryClient.getServices()+" ip :"+ip;  System.out.println(services); return services; }}

访问:http://localhost:9002/client

最后说明一下@EnableEurekaClient 与@EnableDiscoveryClient这两个注解

 首先这个两个注解都可以实现服务发现的功能,在spring cloud中discovery service有许多种实现(eureka、consul、zookeeper等等)

@EnableEurekaClient基于spring-cloud-netflix。服务采用eureka作为注册中心,使用场景较为单一。

@EnableDiscoveryClient基于spring-cloud-commons。服务采用其他注册中心。

eureka hostname作用_springcloud使用Eureka实现服务治理替代dubbo加zookeeper相关推荐

  1. eureka hostname作用_SpringCloud基础教程(三)-Eureka进阶

       我的博客:http://www.hao127.com.cn/,欢迎浏览博客!    上一章 http://hao127.com.cn/#/view/65当中,我们介绍了微服务组件当中的服务注册和 ...

  2. 微服务 注册中心的作用_SpringCloud(二)服务注册中心与Eureka工作原理介绍

    微服务的注册中心 author:QYX 注册中心可以说是微服务架构中的通讯录,它记录了服务和服务地址的映射关系,在分布式架构中,服务会注册到这里,当服务需要调用其他服务时, 就会在这里找到服务的地址, ...

  3. 分布式服务治理框架Dubbo的前世今生及应用实战

    Dubbo的出现背景# Dubbo从开源到现在,已经出现了接近10年时间,在国内各大企业被广泛应用. 它到底有什么魔力值得大家去追捧呢?本篇文章给大家做一个详细的说明. 大规模服务化对于服务治理的要求 ...

  4. 谈谈为什么需要服务治理(Dubbo)

    服务治理主要针对于当前分布式架构下多服务.微服务等. 服务是分布式系统下的一个不大不小的部分,有了服务的组成,整个系统才能活起来. 随着业务的增长,服务不能一味地随之增长,需要管理.治理.没有服务治理 ...

  5. 分布式服务治理框架Dubbo

    前言 Dubbo是一个被国内很多互联网公司广泛使用的开源分布式服务治理框架,是一个非常全面的SOA基础框架,当当网在Dubbo基础上新增了一些功能,并将其命名为Dubbox(Dubbo eXtensi ...

  6. 谈谈分布式服务治理框架 Dubbo 重大升级

    为什么80%的码农都做不了架构师?>>>    前言 本文首发公众号 [一名打字员] Dubbo 今年重启维护,并且进行了重大的升级.在 JAVA 社区很多人都知道并且使用过 Dub ...

  7. 【学习笔记】Eureka服务治理代码实例、相关配置和原理机制详解

    文章目录 代码示例 启动一个服务注册中心 注册服务提供者 高可用注册中心 服务的发现与消费 Eureka的一些配置 服务注册类配置 服务实例类配置 实例名配置 端点配置 Eureka服务治理基础架构原 ...

  8. Spring Cloud Alibaba——Nacos实现服务治理

    引言 本博客总结微服务开发中各个微服务调用的实现,并使用 Nacos 完成服务注册和发现. 文章中会涉及到 maven 的使用,以及 spring boot 的一些知识.开发工具采用 IDEA 202 ...

  9. 精华【分布式微服务云架构dubbo+zookeeper+springmvc+mybatis+shiro+redis】分布式大型互联网企业架构!

    摘要: 开发工具 1.Eclipse IDE:采用Maven项目管理,模块化. 2.代码生成:通过界面方式简单配置,自动生成相应代码,目前包括三种生成方式(增删改查):单表.一对多.树结构.生成后的代 ...

最新文章

  1. Python的f-strings格式化
  2. 低代码、无代码?深度解读硅谷新趋势(上)
  3. 8E1转10M/100M以太网===协转
  4. 如何在linux下检测内存泄漏
  5. 实现延时任务的 4 种实现方案!
  6. ITK:颜色归一化相关
  7. EasyRTSPClient:基于live555封装的支持重连的RTSP客户端RTSPClient
  8. php 访问 sharepoint列表,SharePoint—用REST方式访问列表
  9. apache mediawiki 安装_如何在CentOS 7上安装MediaWiki
  10. Unity AssetBundles and Resources指引 (三) AssetBundle基础
  11. mysql 计算时区差_在MySQL中计算时区的偏移量
  12. 固高运动控制卡的使用 1 启动程序以及环境(C#版)
  13. 百度云盘群组中资源文件实时同步更新保存到自己群组的方法
  14. Campass + Scss ,让我们更优雅的编写CSS
  15. python写邮箱系统登录_Python selenium登录163邮箱示例
  16. 个人职场工作感悟总结「如何尽快地提升自我」
  17. sem常用的数据分析方法有哪些
  18. A. Equalize Prices Again
  19. maven使用slf4j输出日志到文件
  20. 第四节:逻辑控制【java】

热门文章

  1. 有道词典Linux版下载安装
  2. 利用Object.defineProperty实现Vue数据双向绑定
  3. pytest十二:cmd命令行参数
  4. (@WhiteTaken)设计模式学习——组合模式
  5. linux 环境下安装oracle11g方法及安装过程中遇上的问题解决方法
  6. C++ string和c类型字符数组的比较
  7. iphone 原型工具
  8. 华为应用锁退出立即锁_华为P40系列三大安全锁,教你锁住你的隐私 - 企业资讯...
  9. Python框架篇之Django(Template模版:标签tag、自定义filter、extend模板继承)
  10. php 入库乱码,php 中文字符入库或显示乱码问题的解决方法_PHP教程