springcloud实战微服务之——服务发现与服务注册

LIUXUN1993728 LIUXUN1993728     2022-11-10     227

关键词:

服务发现与服务注册——基本概念

(一)服务发现与服务注册

如何解决硬编码问题?


上次的实例中是采用的硬编码,实际上是不可取的。因为在实际开发中,服务组件的端口和IP都是动态变化的。一旦一个组件的访问地址发生变化 如果采用的是硬编码就要将所有依赖于此组件的服务组件进行停止-修改-部署 等一系列的操作,如果采用的是Nginx对同一组件的多个副本进行负载均衡 其工作量也是很大的。

为了解决这种硬编码造成的问题,引入了服务发现的概念:


服务发现:所谓的服务发现就是服务消费者和服务提供者在启动的时候就会将自己的网络IP和端口注册到服务发现组件里面去,当服务消费者调用服务提供者的时候会从服务发现组件中进行查询IP和端口 然后进行调用,被注册的组件会每隔一段时间向服务发现组件发送一次心跳,如果连续几次没有发送心跳,服务发现组件就会将其节点移除。

服务发现组件的功能:

  • 服务注册表:服务注册表是一个记录当前可用服务实例的网络信息的数据库,是服务发现机制的核心。服务注册表提供查询API和管理API,使用查询API获取可用的服务实例,使用管理API实现注册和注销。
  • 服务注册:服务注册很好理解,就是当服务启动时,将服务的网络地址注册到服务注册表中。
  • 健康检查:服务发现组件会通过一些机制定时检测已注册的服务,如果发现某服务无法访问了(可能是某几个心跳周期后),就将该服务从注册表中移除。

服务发现的方式:

客户端发现:通过Eureka ZK

服务器端发现:通过Consul+nginx

其实Spring CloudEureka支持是最好的,其次是Consul,支持最差的是ZK

其原理可以参考:http://blog.daocloud.io/microservices-4/

术语解释:目前市面上的书籍,服务注册、服务发现、注册中心,在很多场景下,都可以理解为是服务发现组件。



springcloud实战微服务之——服务发现与服务注册-eureka的简单使用(代码片段)

服务发现组件Eureka简介服务发现组件可以使用ZK,也可以使用Consul,之所以Eureka使用最多有如下的原因导致:①Eureka来自生产环境。②Spring Cloud对Eureka的支持很好。Eureka简介:Eureka是Netflix开发的服务发现组件࿰... 查看详情

微服务架构整理-(八springcloud实战之hystrix[1])(代码片段)

SpringCloud实战之Hystrix[1]-基本用法前言Hystrix概念Hystrix使用添加依赖配置启动类添加熔断机制服务降级超时异常总结前言我们知道,在微服务架构中,每个服务都是独立运行,服务与服务之间通过注册中心彼此发现和消... 查看详情

微服务架构整理-(八springcloud实战之hystrix[1])(代码片段)

SpringCloud实战之Hystrix[1]-基本用法前言Hystrix概念Hystrix使用添加依赖配置启动类添加熔断机制服务降级超时异常总结前言我们知道,在微服务架构中,每个服务都是独立运行,服务与服务之间通过注册中心彼此发现和消... 查看详情

springcloudalibaba实战之nacos服务注册和发现

...务实例的自动化注册与发现,是微服务治理的核心,学习SpringCloudAlibaba,首先要了解框架中的服务注册和发现组件——Nacos。一、SpringCloud服务注册和发现组件1.SpringCloudEureka闭源风波在SpringCloud的子项目中,SpringCloudNetflix提... 查看详情

springcloud实战微服务之——服务发现与服务注册

服务发现与服务注册——基本概念(一)服务发现与服务注册如何解决硬编码问题?上次的实例中是采用的硬编码,实际上是不可取的。因为在实际开发中,服务组件的端口和IP都是动态变化的。一旦一个组件... 查看详情

微服务架构整理-(七springcloud实战之resttemplate)(代码片段)

SpringCloud实战之RestTemplateGET请求getForEntitygetForObjectPOST请求postForEntitypostForObjectpostForLocationPUT请求DELETE请求总结RestTemplate不仅在SpringCloud中会使用,一般在服务之间相互调用的时候会使用此类。上一篇介绍Ribbon的时候通过在此类... 查看详情

微服务架构整理-(十springcloud实战之hystrix[3])(代码片段)

SpringCloud实战之Hystrix[3]-看版监控前言搭建Dashboard服务创建springboot工程添加依赖配置启动类添加配置文件引用Dashboard服务添加Hystrix依赖添加springboot服务监控依赖配置springboot监控接口的访问权限结果总结前言当需要查看服务的状... 查看详情

微服务架构整理-(十springcloud实战之hystrix[3])(代码片段)

SpringCloud实战之Hystrix[3]-看版监控前言搭建Dashboard服务创建springboot工程添加依赖配置启动类添加配置文件引用Dashboard服务添加Hystrix依赖添加springboot服务监控依赖配置springboot监控接口的访问权限结果总结前言当需要查看服务的状... 查看详情

微服务架构整理-(六springcloud实战之ribbon)

SpringCloud实战之Ribbon负责均衡介绍Ribbon概念Ribbon中的负载均衡算法Ribbon使用添加一个服务提供者添加Ribbon区别服务提供者访问服务提供者运行结果总结负责均衡介绍负载均衡分为硬件负载均衡和软件负载均衡。常用见的如下:... 查看详情

springcloud实战微服务之——微服务简介以及入门使用(代码片段)

微服务概述微服务是什么?微服务解决了什么问题?微服务有什么特点?单体架构是什么?一个归档包包含了应用所有功能的应用程序,我们通常称之为单体应用。架构单体应用的架构风格,我们称之为单... 查看详情

微服务架构整理-(六springcloud实战之ribbon)(代码片段)

SpringCloud实战之Ribbon负责均衡介绍Ribbon概念Ribbon中的负载均衡算法Ribbon使用添加一个服务提供者添加Ribbon区别服务提供者访问服务提供者运行结果总结负责均衡介绍负载均衡分为硬件负载均衡和软件负载均衡。常用见的如下:... 查看详情

微服务架构整理-(十二springcloud实战之zuul网关)(代码片段)

SpringCloud实战之Zuul网关Zuul概念Zuul构建网关创建SpringBoot工程添加依赖添加注解添加配置文件基础配置注册Eureka添加路由规则Zuul请求过滤定义过虑逻辑请求结果Zuul路由规则总结Zuul概念Zuul是Netflix旗下的又一重要成员,是一个... 查看详情

springcloud实战微服务之——ribbon详解(代码片段)

Ribbon简介需要解决的问题:① 如何在配置EurekaClient注册中心时不去硬编码Eureka Server的地址?② 在微服务不同模块间进行通信时,如何不去硬编码服务提供者的地址?③当部署多个相同微服务时,如何实现... 查看详情

微服务架构整理-(九springcloud实战之hystrix[2])

SpringCloud实战之Hystrix[2]-自定义异常熔断处理自定义熔断机制测试同步调用异步调用总结上文中,对异常处理是使用注解@HystrixCommand完成的,当然也可以不使用此注解来完成,我们可以自定义一个机制处理超时,... 查看详情

springcloud微服务安全实战_6-1_微服务之间的通讯安全之概述

   到目前为止已经实现了一个基于微服务的,前后端分离(这里我用的jquery做的,并不是真的前后端分离,因为我不会vue和angular所以没用)的架构。在网关上做了限流、认证、审计、授权等安全机制,在前端应用上... 查看详情

微服务架构springcloud之eureka(服务注册和服务发现基础篇)

上篇文章讲解了SpringCloud组件和概念介绍,接下来讲解一下SpringCloud组件相关组件使用、原理和每个组件的作用的,它主要提供的模块包括:服务发现(Eureka),断路器(Hystrix),智能路有(Zuul),客户端负载均衡(Ribbon),Arc... 查看详情

024.微服务之服务注册与发现(基于kubernetes/springcloud)

微服务  微服务是一种架构模式,一种分布式的架构风格。  顾名思义,microservice,将一个庞大的单体应用拆分成若干个“微小”的服务,服务间通过进程通讯完成原本在单体应用中的调用。  其中必要的六个基本... 查看详情

微服务架构整理-(九springcloud实战之hystrix[2])(代码片段)

SpringCloud实战之Hystrix[2]-自定义异常熔断处理自定义熔断机制测试同步调用异步调用总结上文中,对异常处理是使用注解@HystrixCommand完成的,当然也可以不使用此注解来完成,我们可以自定义一个机制处理超时,... 查看详情