当前位置:首页 > 科技  > 软件

实现Eureka服务注册和服务发现,你学会了吗?

来源: 责编: 时间:2023-11-28 09:36:36 323观看
导读分布式在大型开发项目中通常使用分布式服务来根据项目中不同的功能划分为几个不通的模块。比如在一个商城系统中,通常会把用户服务、下单服务、商品推荐服务分散到几个模块中,如果在下单服务中需要获取用户的信息,这时候

分布式

在大型开发项目中通常使用分布式服务来根据项目中不同的功能划分为几个不通的模块。YVD28资讯网——每日最新资讯28at.com

比如在一个商城系统中,通常会把用户服务、下单服务、商品推荐服务分散到几个模块中,如果在下单服务中需要获取用户的信息,这时候就在代码内部调用用户服务的接口即可。这样一个过程就是分布式的基本概念。YVD28资讯网——每日最新资讯28at.com

Spring Cloud

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。YVD28资讯网——每日最新资讯28at.com

--以上内容来自百度百科。YVD28资讯网——每日最新资讯28at.com

图片图片YVD28资讯网——每日最新资讯28at.com

来自官网列举的主要项目YVD28资讯网——每日最新资讯28at.com

所以,Spring Cloud是一款主流的分布式服务框架,提供了服务注册与调用,统一配置管理,统一网关路由,服务链路监控等功能。并且在远程调用是支持Feign(HTTP)协议。YVD28资讯网——每日最新资讯28at.com

服务远程调用

3.1 创建两个项目

创建两个项目模拟分布式的场景,分别是userService和orderService,这两个服务对应的数据库不在同一个库中,在userService项目中有一个接口是根据user表的ID查询user对象;YVD28资讯网——每日最新资讯28at.com

同样的,orderService项目中有一个接口是根据order表的ID查询order信息,在一条信息中包含了单价,数量,总价和用户的ID。YVD28资讯网——每日最新资讯28at.com

这两个个项目布在了同一个大的项目中。现在有一个功能需求是通过使用orderService的接口查询order信息并同时获得这个订单对应的用户信息。YVD28资讯网——每日最新资讯28at.com

图片图片YVD28资讯网——每日最新资讯28at.com

3.2 远程调用

首先需要创建一个RestTemplate对象,这个对象功能能简单,就是用来发送HTTP请求,所以可以在项目的配置类中创建这么一个对象,然后在Controller层中注入。YVD28资讯网——每日最新资讯28at.com

图片图片YVD28资讯网——每日最新资讯28at.com

图片图片YVD28资讯网——每日最新资讯28at.com

这样就完成了一次远程调用了。YVD28资讯网——每日最新资讯28at.com

使用Postman测试一下,理论上是要返回一个response对象,response对象包含了user对象和order对象。YVD28资讯网——每日最新资讯28at.com

图片图片YVD28资讯网——每日最新资讯28at.com

Eureka服务搭建

在上面的远程调用的例子中,有许多的不足,比如访问的url信息是写死在代码中的,后期部署的时候要再专门修改这样是不现实的。YVD28资讯网——每日最新资讯28at.com

Eureka服务发现就相当于是一个专门获取项目中所有接口的程序。所以需要先创建一个Spring boot项目,然后把这个项目当作Eureka的server。YVD28资讯网——每日最新资讯28at.com

4.1 首先在Eureka_Server的Maven中导入依赖

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

4.2 接着在启动类添加@EnableEurekaServer注解

图片图片YVD28资讯网——每日最新资讯28at.com

4.3 在配置文件中配置Eureka服务的端口和应用名称

图片图片YVD28资讯网——每日最新资讯28at.com

验证是否成功只需要在浏览器上输入设置的网址,看能否进入页面即可。YVD28资讯网——每日最新资讯28at.com

图片图片YVD28资讯网——每日最新资讯28at.com

Eureka服务注册

5.1 在orderservice和userservice项目中分别引入Eureka依赖信息

注:这里导入的是client依赖。YVD28资讯网——每日最新资讯28at.com

图片图片YVD28资讯网——每日最新资讯28at.com

5.2 在userservice和orderservice配置Eureka的配置信息

注:与4.3的样式一致。YVD28资讯网——每日最新资讯28at.com

图片图片YVD28资讯网——每日最新资讯28at.com

5.3 访问eureka地址查看这俩个新注册的服务YVD28资讯网——每日最新资讯28at.com

图片图片YVD28资讯网——每日最新资讯28at.com

可以发现服务都注册在eureka上了。YVD28资讯网——每日最新资讯28at.com

Eureka服务发现

6.1 把消费者的调用链接中的ip和端口信息换成注册在Eureka的服务名

图片图片YVD28资讯网——每日最新资讯28at.com

6.2 在消费者的配置类的RestTemplate上添加@LoadBalanced注解

注:这里的消费者当然是orderservice。YVD28资讯网——每日最新资讯28at.com

图片图片YVD28资讯网——每日最新资讯28at.com

6.3 再测试一次程序

图片图片YVD28资讯网——每日最新资讯28at.com

可见是成功调用了userservice的接口。YVD28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-34659-0.html实现Eureka服务注册和服务发现,你学会了吗?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 100行代码实现审计日志中间件

下一篇: Display和Visibility的区别,你了解了吗?

标签:
  • 热门焦点
  • 5月iOS设备好评榜:iPhone 14仅排第43?

    来到新的一月,安兔兔的各个榜单又重新汇总了数据,像安卓阵营的榜单都有着比较大的变动,不过iOS由于设备的更新换代并没有那么快,所以相对来说变化并不大,特别是iOS好评榜,老款设
  • 《英雄联盟》夏季赛总决赛今日开打!JDG对阵LNG首发名单来了 Knight:准备三连冠

    8月5日消息,今日17:00,《英雄联盟》2023LPL夏季赛总决赛将正式开打,由JDG对阵LNG。对两支队伍来说,这场比赛不仅要争夺夏季赛冠军,更要决定谁才是LPL赛区一
  • K8S | Service服务发现

    一、背景在微服务架构中,这里以开发环境「Dev」为基础来描述,在K8S集群中通常会开放:路由网关、注册中心、配置中心等相关服务,可以被集群外部访问;图片对于测试「Tes」环境或者
  • 19个 JavaScript 单行代码技巧,让你看起来像个专业人士

    今天这篇文章跟大家分享18个JS单行代码,你只需花几分钟时间,即可帮助您了解一些您可能不知道的 JS 知识,如果您已经知道了,就当作复习一下,古人云,温故而知新嘛。现在,我们就开始今
  • 这款新兴工具平台,让你的电脑效率翻倍

    随着信息技术的发展,我们获取信息的渠道越来越多,但是处理信息的效率却成为一个瓶颈。于是各种工具应运而生,都在争相解决我们的工作效率问题。今天我要给大家介绍一款效率
  • 一文搞定Java NIO,以及各种奇葩流

    大家好,我是哪吒。很多朋友问我,如何才能学好IO流,对各种流的概念,云里雾里的,不求甚解。用到的时候,现百度,功能虽然实现了,但是为什么用这个?不知道。更别说效率问题了~下次再遇到,
  • 阿里大调整

    来源:产品刘有媒体报道称,近期淘宝天猫集团启动了近年来最大的人力制度改革,涉及员工绩效、层级体系等多个核心事项,目前已形成一个初步的&ldquo;征求意见版&rdquo;:1、取消P序列
  • iQOO Neo8 Pro即将开售:到手价3099元起 安卓性能最强旗舰

    5月23日,iQOO如期举行了新品发布会,全新的iQOO Neo8系列也正式与大家见面,包含iQOO Neo8和iQOO Neo8 Pro两个版本,其中标准版搭载高通骁龙8+,而Pro版更
  • iQOO Neo8系列今日官宣:首发天玑9200+ 全球安卓最强芯!

    在昨日举行的的联发科新一代旗舰芯片天玑9200+的发布会上,iQOO官方也正式宣布,全新的iQOO Neo8系列新品将全球首发搭载这款当前性能最强大的移动平台
Top