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

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

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

分布式

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

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

Spring Cloud

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

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

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

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

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

服务远程调用

3.1 创建两个项目

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

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

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

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

3.2 远程调用

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

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

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

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

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

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

Eureka服务搭建

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

Eureka服务发现就相当于是一个专门获取项目中所有接口的程序。所以需要先创建一个Spring boot项目,然后把这个项目当作Eureka的server。QCz28资讯网——每日最新资讯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注解

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

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

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

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

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

Eureka服务注册

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

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

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

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

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

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

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

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

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

Eureka服务发现

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

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

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

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

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

6.3 再测试一次程序

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

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

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

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

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

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

标签:
  • 热门焦点
Top