【spring cloud学习】4、创建服务提供者

这篇具有很好参考价值的文章主要介绍了【spring cloud学习】4、创建服务提供者。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

注册中心Eureka Server创建并启动之后,接下来介绍如何创建一个Provider并且注册到Eureka Server中,再提供一个REST接口给其他服务调用。

首先一个Provider至少需要两个组件包依赖:Spring Boot Web服务组件和Eureka Client组件。如下所示:

<dependencies>
<!--Spring Boot Web服务组件 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
</dependency>

    <!--Eureka Client组件 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
</dependencies>

Spring Boot Web服务组件用于提供REST接口服务,Eureka Client组件用于服务注册与发现。从以上的Maven依赖可以看出,在Spring Cloud技术体系中,一个Provider首先是一个Spring Boot应用,所以在学习Spring Cloud微服务技术之前必须具备一些基本的Spring Boot开发知识。
然后在Spring Boot应用的启动类上加上**@EnableDiscoveryClient注解**,用于启用Eureka Client组件。

接下来,在Provider模块(或者项目)的src/main/resources的bootstrap启动属性文件(bootstrap.properties或bootstrap.yml)中增加Provider实例相关的配置,具体如下:

spring:
  application:
    name: uaa-provider

server:
  port: 7702
  servlet:
      context-path: /uaa-provider
eureka:
  instance:
    instance-id: ${spring.cloud.client.ip-address}:${server.port}
    ip-address: ${spring.cloud.client.ip-address}
    prefer-ip-address: true  #访问路径优先使用IP地址
    status-page-url-path: /${server.servlet.context-path}${management.endpoints.web.base-path}/info     health-check-url-path: /${server.servlet.context-path}${management.endpoints.web.base-path}/health 
client:
    register-with-eureka: true      #注册到Eureka服务器
    fetch-registry: true           #是否去注册中心获取其他服务
    serviceUrl:
      defaultZone: http://${EUREKA_ZONE_HOST:localhost}:7777/eureka/

配置完成后就可以启动provider实例,启动后,打开Eureka Server的控制台界面,可以看到uaa-provider的一个实例已经成功注册。
【spring cloud学习】4、创建服务提供者

前面讲到,Spring Cloud中的一个Provider实例身兼两个角色:服务提供者和注册中心客户端。所以,在Provider的配置文件中包含两类配置:Provider实例角色的相关配置和Eureka Client角色的相关配置。

1.Provider实例角色的相关配置

在微服务集群中,Eureka Server自身是一种特殊的服务提供者,对外提供REST服务,所以可以配置一些Provider实例专属的配置项。

  • (1)eureka.instance.instance-id:此项用于配置Provider实例ID,如果不进行ID配置,默认值的格式如下:“主机名:服务名称:服务端口”
${spring.cloud.client.hostname}:${spring.application.name}:${server.port} 

大多数时候需要将IP显示在instance-id中,只要把主机名替换成IP即可,假设用“IP:端口”的格式来定义,可以使用下面的配置:

eureka.instance.instance-id= ${spring.cloud.client.ip-address}:${server.port} 

从“IP:端口”的格式一看就知道provider在哪台机器上,端口是多少。我们还可以单击Eureka Server控制台的服务instance-id进行跳转,去查看实例的详细信息。跳转链接的默认路径是主机名,如果在链接路径时需要使用IP,就要将配置项eureka.instance.preferIpAddress设置为true。

  • (2)eureka.instance.ip-address:设置当前实例的IP地址。${spring.cloud.client.ip-address}是从Spring Cloud依赖包中导入的配置项,存放了客户端的IP地址。
  • (3)eureka.instance.prefer-ip-address:如果配置为true,就使用IP地址的形式来定义Provider实例的地址,而不是使用主机名来定义Provider实例的地址。
  • (4)eureka.instance.status-page-url-path:定义Provider实例状态页面的URL,此选项配置的是相对路径,默认使用HTTP访问,如果需要使用HTTPS,就使用绝对路径配置。默认的相对路径为/info。
  • (5)eureka.instance.health-check-url-path:定义Provider实例健康检查页面的URL,此选项配置的是相对路径,默认使用HTTP访问,如果需要使用HTTPS,就使用绝对路径配置。默认的相对路径为/health。

2.Eureka Client组件的相关配置

  • (1)eureka.client.register-with-eureka:作为Eureka Client,eureka.client.register-with-eureka表示是否将自己注册到Eureka Server,这里设置为true,表示需要将Provider实例注册到Eureka Server。
  • (2)eureka.client.fetch-registry:作为Eureka Client,是否从Eureka Server获取注册信息,这里设置为true,表示需要从Eureka Server定期获取注册了的Provider实例清单。
  • (3)eureka.client.service-url.defaultZone:作为Eureka Client,需要向远程的Eureka Server自我注册,查询其他的提供者。此配置项用于设置此客户端默认Zone(类似于默认机房)的Eureka Server的交互地址
eureka.client.service-url.defaultZone= http://${EUREKA_ZONE_HOST:localhost}:
7777/eureka/

为了安全和方便,地址中并没有以硬编码方式设置Eureka Server的IP地址,而是使用了事先在操作系统中配置好的指向Eureka IP地址的环境变量EUREKA_ZONE_HOST,之所以这样配置,主要是为了后续在Eureka Server的IP地址发生变化时只需要修改环境变量的值,而不需要修改配置文件。文章来源地址https://www.toymoban.com/news/detail-509270.html

到了这里,关于【spring cloud学习】4、创建服务提供者的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RpcProvider(rpc服务提供者)实现思路

    上一节说到,如何将一个本地服务发布成远程服务,但没有说明一个rpc框架怎么进行调用的,看看上节代码 现在实现的发布服务方,那么显然Login方法是rpc框架帮我们调用的,什么时候调用?当rpc客户端通过网络发送rpc调用请求之后,这边接收到rpc请求,解析请求然后调用发

    2024年02月14日
    浏览(29)
  • 服务提供者 Eureka + 服务消费者(Rest + Ribbon)实战

    Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单来说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某

    2024年02月04日
    浏览(29)
  • Java安全——安全提供者

    安全提供者 在Java中,安全提供者(Security Provider)是一种实现了特定安全服务的软件模块。它提供了一系列的加密、解密、签名、验证和随机数生成等安全功能。安全提供者基础设施在Java中的作用是为开发人员提供一种扩展和替换标准安全功能的方式,以满足特定的安全需

    2024年02月12日
    浏览(29)
  • 探索安卓内容提供者:构建、访问和管理数据【复习】

    内容提供者(ContentProvider)是Android系统四大组件之一,它是不同应用程序之间进行数据共享的标准API ,通过ContentResolver类可以访问ContentProvider中共享的数据。 ContentProvider的工作原理如下: A程序使用ContetntProvider暴露数据,才能被其他程序操作。B程序通过ContetnResolver操作A程序

    2024年02月10日
    浏览(27)
  • 移动应用开发实验-内容提供者-ContentResolver的使用

    本人将所学和前人的成果和经验结合,仅供学习和参考!!! 本文大部分源码内容有清晰的注释,请认真阅读! 通过线性布局和相对布局来搭建通讯录界面,界面效果如下图所示。创建布局文件contact_item.xml、导入界面图片、放置界面控件、创建条目界面的背景文件。创建

    2024年02月08日
    浏览(38)
  • 简单步骤:Android studio 内容提供者 - 实现建立手机通讯录界面,读取系统联系人

    提示:本篇文章将会尽量保持精简,同时请诸位敲写代码时保持耐心,三连是最大的支持! 文章目录 前言 一、项目介绍 二、使用步骤 1.创建程序 2.添加 recyclerview-v7 库 3.放置界面控件 4.搭建界面布局 5.封装实体类 6.编写数据适配器 7.实现显示界面数据功能 8.去掉默认标题栏

    2024年02月08日
    浏览(37)
  • dubbo启动报错 java.lang.reflect.InvocationTargetException null 没有提供者没有消费者

    启动dubbo时,控制台报错信息如下。 打开dubbo的服务注册中心发现 在网上查找了一番,网上的说发众说飞云,有人说要保证提供者和消费者的包名一致,也有人说是ip的问题要在host里面配置, 后来经过一番仔细查找发现不对的地方了 服务提供者的主类上没有配置注解,这个

    2024年02月13日
    浏览(34)
  • CSDN博客批量查询质量分https://yma16.inscode.cc/请求超时问题(设置postman超时时间)(接口提供者设置了nginx超时时间)

    https://yma16.inscode.cc/ 查询别人的一下子就返回了,查询我自己的,1分钟还不返回,然后就显示超时了。。 一开始我还以为是这个开源项目本身的问题,设置了请求超时时间,我还给它改了超时时间,后来发现不是的。。。 本来是100000的,我给改成1000000了,我对js代码不熟,

    2024年02月12日
    浏览(34)
  • 【spring cloud学习】2、Eureka服务注册与发现

    一套微服务架构的系统由很多单一职责的服务单元组成,而每个服务单元又有众多运行实例。由于各服务单元颗粒度较小、数量众多,相互之间呈现网状依赖关系,因此需要服务注册中心来统一管理微服务实例,维护各服务实例的健康状态。 从宏观角度,微服务架构下的系统

    2024年02月10日
    浏览(37)
  • Spring Cloud之一:注册与发现-Eureka工程的创建

      系列目录(持续更新。。。) Spring Cloud:什么是微服务 Spring Cloud之一:注册与发现-Eureka工程的创建 Spring Cloud之二:服务提供者注册到Eureka Server Spring Cloud之三:Eureka Server添加认证 Spring Cloud 之四:使用Feign实现微服务间的交互 Spring Cloud 之五:Feign使用Hystrix 目录 环境 E

    2023年04月09日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包