java B2B2C Springboot多租户电子商城系统-spring-cloud-eureka-consumer

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 介绍spring-cloud-eureka,更加具体的内容,这里将会介绍远程服务调用和及其负载均衡。我们将我们的服务注册在我们的服务中心里,那么如何去调用这些服务呢?我们可以用使用远程服务调用来解决,顺带还有方便的负载均衡功能。

介绍

spring-cloud-eureka,更加具体的内容,这里将会介绍远程服务调用和及其负载均衡。

我们将我们的服务注册在我们的服务中心里,那么如何去调用这些服务呢?我们可以用使用远程服务调用来解决,顺带还有方便的负载均衡功能。

如何使用

创建服务中心

注册几个被调用服务

注册一个consumer

测试consumer与负载均衡

  1. 创建服务中心

上一篇文章,我们已经学会了使用单机或者集群的方式来创建服务中心,这里我们使用简单的单机方式来创建!

在 spring-cloud-eureka-server 里启动采用这个profile文件:

server:
  port: 8761

spring:
  application:
    name: eureka-server

eureka:
  instance:
    lease-expiration-duration-in-seconds: 6
    lease-renewal-interval-in-seconds: 2
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/

这个是单机版的。并将自己注册到了服务里。

  1. 注册几个被调用服务

我们启动了这三个profile文件。

配置文件中,server.port 分别是 8083,8084,8085,其他参数完全一致!同时,我们在controller中设置了这样一个rest服务。

    @Value("${server.port}")
    String port;

    @RequestMapping("/hi")
    public String hi() {
        return port+" 端口为您服务!";
    }

这样方便知道我们具体调用了哪个服务。

  1. 注册一个consumer

需要额外的依赖,使用了feign来进行远程调用。

pom.xml :

        <!--远程调用-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-feign</artifactId>
        </dependency>

创建一个接口:

@Component
@FeignClient(name = "eureka-client-1")
public interface HelloRemoteInterface {

    @RequestMapping(value = "/hi")
    public String hi();
}

这里的name就是你的那个服务的application.name。根据名字来调用,才能实现负载均衡嘛。

使用接口,创建一个测试的controller:

@RestController
public class ConsumerController {

    @Autowired
    HelloRemoteInterface helloRemoteInterface;

    @RequestMapping("/hello")
    public String hello() {
        return helloRemoteInterface.hi();
    }
}

同时,将我们的这个服务也注册到服务中心。

配置文件:

server:
  port: 8086

spring:
  application:
    name: eureka-consumer

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/

启动方法:

@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class SpringCloudEurekaConsumerApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringCloudEurekaConsumerApplication.class, args);
    }
}

到这里,我们已经启动了好多个服务,如上图所示,在IDEA中,采用不同的profile来启动的方式,有一个单机的server,三个普通的服务(端口号不一样),还有我们的消费服务,下一节,你可以从截图中看的更明白。

  1. 测试consumer与负载均衡

到上一步为止,我们已经可以看到在Eureka的dashboard中已经有了好多个服务,如下图,主要包括:

一个服务注册server

一个消费者,用来进行远程调用

三个普通的client(其端口不一样,来模拟分布式)

这时候,我们调用我们的consumer服务,浏览器里输入 http://localhost:8086/hello

得到的结果是不一样的,一共有三个:

8083 端口为您服务!

8084 端口为您服务!

8085 端口为您服务!

正好就是我们想要的结果。

不断的进行测试下去会发现3种结果交替出现,说明服务中心自动提供了服务均衡负载的功能。如果我们将服务提供者的数量在提高为N个,测试结果一样,请求会自动轮询到每个服务端来处理。java B2B2C Springboot多租户电子商城系统 

相关实践学习
小试牛刀,一键部署电商商城
SAE 仅需一键,极速部署一个微服务电商商城,体验 Serverless 带给您的全托管体验,一起来部署吧!
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
3月前
|
人工智能 Java API
Java也能快速搭建AI应用?一文带你玩转Spring AI可落地性
Java语言凭借其成熟的生态与解决方案,特别是通过 Spring AI 框架,正迅速成为 AI 应用开发的新选择。本文将探讨如何利用 Spring AI Alibaba 构建在线聊天 AI 应用,并实现对其性能的全面可观测性。
830 29
|
29天前
|
前端开发 Java 物联网
智慧班牌源码,采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署
智慧班牌系统是一款基于信息化与物联网技术的校园管理工具,集成电子屏显示、人脸识别及数据交互功能,实现班级信息展示、智能考勤与家校互通。系统采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署与私有化定制。核心功能涵盖信息发布、考勤管理、教务处理及数据分析,助力校园文化建设与教学优化。其综合性和可扩展性有效打破数据孤岛,提升交互体验并降低管理成本,适用于日常教学、考试管理和应急场景,为智慧校园建设提供全面解决方案。
210 70
|
1月前
|
人工智能 Java 程序员
Java程序员在AI时代必会的技术:Spring AI
在AI时代,Java程序员需掌握Spring AI技术以提升竞争力。Spring AI是Spring框架在AI领域的延伸,支持自然语言处理、机器学习集成与自动化决策等场景。它简化开发流程,无缝集成Spring生态,并提供对多种AI服务(如OpenAI、阿里云通义千问)的支持。本文介绍Spring AI核心概念、应用场景及开发步骤,含代码示例,助你快速入门并构建智能化应用,把握AI时代的机遇。
|
1月前
|
人工智能 Java 决策智能
Java版Manus实现来了,Spring AI Alibaba发布开源OpenManus实现
此次官方发布的 Spring AI Alibaba OpenManus 实现,包含完整的多智能体任务规划、思考与执行流程,可以让开发者体验 Java 版本的多智能体效果。它能够根据用户的问题进行分析,操作浏览器,执行代码等来完成复杂任务等。
834 58
|
20天前
|
人工智能 Java 定位技术
Java 开发玩转 MCP:从 Claude 自动化到 Spring AI Alibaba 生态整合
本文以原理与示例结合的形式讲解 Java 开发者如何基于 Spring AI Alibaba 框架玩转 MCP。
445 41
|
20天前
|
人工智能 Java 定位技术
Java 开发玩转 MCP:从 Claude 自动化到 Spring AI Alibaba 生态整合
本文详细讲解了Java开发者如何基于Spring AI Alibaba框架玩转MCP(Model Context Protocol),涵盖基础概念、快速体验、服务发布与调用等内容。重点包括将Spring应用发布为MCP Server(支持stdio与SSE模式)、开发MCP Client调用服务,以及在Spring AI Alibaba的OpenManus中使用MCP增强工具能力。通过实际示例,如天气查询与百度地图路线规划,展示了MCP在AI应用中的强大作用。最后总结了MCP对AI开发的意义及其在Spring AI中的实现价值。
376 9
|
2月前
|
人工智能 Java API
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性
120 4
|
3月前
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
145 7
|
2月前
|
存储 监控 数据可视化
SaaS云计算技术的智慧工地源码,基于Java+Spring Cloud框架开发
智慧工地源码基于微服务+Java+Spring Cloud +UniApp +MySql架构,利用传感器、监控摄像头、AI、大数据等技术,实现施工现场的实时监测、数据分析与智能决策。平台涵盖人员、车辆、视频监控、施工质量、设备、环境和能耗管理七大维度,提供可视化管理、智能化报警、移动智能办公及分布计算存储等功能,全面提升工地的安全性、效率和质量。
|
3月前
|
人工智能 Java API
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性
Java 也能快速搭建 AI 应用?一文带你玩转 Spring AI 可观测性

热门文章

最新文章