专栏首页不蜇人的小蜜蜂spring cloud探索之路之服务发现与注册Eureka-应用篇

spring cloud探索之路之服务发现与注册Eureka-应用篇

前言

其实本人觊觎微服务已经很久了,也曾拜读过各位大咖的相关书籍,最近唯独对Spring Boot、Spring Cloud超感兴趣,毕竟这两者在互联网公司里的地位可是举足轻重的。初见Springcloud,抱着研究+应用的心态,本次系列文章会围绕着SpringCloud就微服务提供的一整套解决方案进行研究学习总结,拒绝浅尝辄止,拒绝空谈架构,更注重实际的工作应用。(注:本系列文章着重是自己的学习总结,不敢作为学习型文章)

-------------------------------------------------------------------------------------------------------

正文开始。。。

SpringCloud也是基于SpringBoot构建的,我也是深深的被SpringBoot的COC(Convention over Configuration)、避免冗余配置和各种基于注解的配置开发所着迷,只是苦于当前项目组的架构,还在沿袭老的一套spring架构(不是对原有的spring有偏见,只是对众多的配置感到力不从心,每次都要copy大量的配置文件,而且极易出错,排查也要浪费时间成本),下面就服务的注册于发现的实操进行简单梳理,包括相关配置信息及代码等,后续文章推送相关深层次内容。

Spring Cloud Eureka 是Spring Cloud Netflix微服务套件的一部分,主要服务于微服务架构中的服务治理(可以粗略认为和Dubbo的功能差不多吧),Spring Cloud Eureka 能够和SpringBoot很好的进行结合,方面我们能够利用Spring Boot的优良特性去进行体系的整合。

一、了解Eureka的服务端和客户端

Eureka的服务端即是我们通常所说的服务注册中心,如果了解过ZK的小伙伴能够很好的了解服务注册中心,只不过Eureka是基于AP理论,保证了我们的服务注册中心的高可用。客户端是我们用来发现服务并调用服务的主要处理者,可以利用注解和参数配置的方式来嵌入到客户端程序代码中,以确保在我们的程序在运行中能够向服务注册中心进行注册服务并利用心跳检测机制来检测当前服务提供者的状态。

二、简单示例--单机环境

1、创建注册中心

1)、构建名称为eureka-server的SpringBoot项目,并引入相应的依赖

<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

2)、在Application的启动类中添加@EnableEurekaServer注解,标明当前为服务的注册中心

3)、在application.properties中增加一下配置信息:

server.port=8081
eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/

eureka.instance.hostname=localhost //当前的服务注册中心的地址

eureka.client.register-with-eureka=false//避免该服务注册中心向中心注册自己的地址

eureka.client.fetch-registry=false //该服务注册中的主要职责是维护服务的示例,而不是去发现检索服务,设为false eureka.client.serverUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/

4)、运行Application启动类或者通过maven打包 mvn clean package -Dmaven test.skip=ture后通过java-jar xxxxx.jar --server.port=8080来运行,输入http://locahost:8080发现eureka的注册中心的页面(当然目前没有什么服务被注册)

2、创建服务提供者

1)、同第一步创建名为eureka-client的springboot项目,添加对应依赖

2)、在Application启动类中添加@RestController、@EnableDiscoveryClient标明当前为服务提供者

3)、模拟代码如下:

@SpringBootApplication
@RestController
@EnableDiscoveryClient
public class EurekaClientApplication {
   private static  final Logger logger = LoggerFactory.getLogger(EurekaClientApplication.class);
   @Autowired
   private DiscoveryClient discoveryClient;
   @RequestMapping(value = "/hello_mic",method = RequestMethod.GET)
   public String hello_mic(){
      return "hello world";
   }
   public static void main(String[] args) {
      SpringApplication.run(EurekaClientApplication.class, args);
   }
}

4)、配置application.properties的相关配置

server.port=8082 / /单机环境下避免端口冲突

spring.application.name =helloService//当前服务名

eureka.client.serverUrl.defaultZone=http://localhost:8080/eureka //注册中心的地址

5)、同上步骤打包运行,刷新http://localhost:8080发现已有当前名为helloService的服务实例。

三、集群环境

原理:多台注册中心之间相互注册,以自己作为服务提供方,向其他的注册中心注册自己的服务,这样形成的注册中心网,实现服务清单的同步。

在服务的发现与消费中,我们了解到,作为Eureka-server作为服务的注册中心维护服务实例清单,服务的发现与消费是服务消费者的主要目标,eurekaClient帮助我们完成服务的发现,Ribbon完成服务的消费(后续介绍Ribbon)。

文以至此,对当前的Spring Cloud Eureka已经有个大体的了解和认知,当然在真正的开发环境中并非如此简单,更多的内容等待着我们去探讨和研究。鉴以此文记录自己探索Spring Cloud的第一步。

本文分享自微信公众号 - BeeFarm(gh_bacb41b1dabe),作者:BeeFarmer

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-06-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spring Cloud Eureka Client的使用

    第一篇了解了Spring Cloud Eureka Server 之后,我们就可以搭建起单机或者简单集群的注册中心,此时已经可以允许客户端将服务注册到eurek...

    不蜇人的小蜜蜂
  • Spring Cloud Configuratin

    Spring cloud Configuation作为SC的基础服务,在全局化配置和统一运维方面起着不可或缺的作用。相信在做Spring项目的时...

    不蜇人的小蜜蜂
  • 静态工厂方法

    我们知道,当需要一个对象时,如果当前没有此对象,那我们首先想到的是new一个对象出来。这或许已经是我们习以为常并脱口而出的,正如下所示:

    不蜇人的小蜜蜂
  • SpringCloud教程-01:服务注册与发现(Eureka)

    摘要:本文讲述如何快速启动一个项目作为eureka服务注册中心,我们先简述相关的理论知识,然后介绍如何启动一个注册中心。

    IT云清
  • SpringCloud详细教程 | 第十篇: 搭建 Eureka集群,实现Eureka的高可用(Greenwich版本)

    在SpringCloud教程文章的 SpringCloud详细教程 | 第一篇:服务的注册与发现Eureka(Greenwich版本)实现Eureka的服务注册...

    小东啊
  • SpringCloud教程(Finchley版本)-08:eureka集群搭建

    在eureka的服务治理设计中,所有的节点既是服务提供方,也是服务消费方,注册中心也不例外。eureka server的高可用集群,其实就是将自己作为服务向其他...

    IT云清
  • SpringCloud微服务:Eureka组件之服务注册与发现

    角色职责如下: 1)、Register:服务注册中心,它是一个Eureka Server ,提供服务注册和发现功能。 2)、Provider:服务提供者,它是一...

    知了一笑
  • Spring cloud系列教程第五篇-Eureka单机版配置

    在上一篇我们对eurek做了介绍。知道了eureka两个组件:服务端和客户端。本篇咱们就来做单机版的配置。

    凯哥Java
  • Ribbon(客户端负载均衡)

    server: port: 8001 servlet: context-path: /eureka-provider # 访问的项目名称...

    爱撒谎的男孩
  • [微服务系列] 服务治理--Eureka

    用户2017109

扫码关注云+社区

领取腾讯云代金券