服务发现 &消费|学习笔记

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 快速学习服务发现 &消费

开发者学堂课程【SpringBoot 快速掌握 - 高级应用:服务发现 &;消费】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/613/detail/9321


服务发现 &;消费

内容介绍

一、编写一个简单的处理请求

二、在注册中心里发现服务

三、启动消费者并测试


一、编写一个简单的处理请求

1.新建名为 controller.UserController 的类

新建一个类,名为 controller.UserController:

package com.atguigu.consumeruser.controller;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RestController;

RestController;

@ RestController

public class UserController{  

@GetMapping(“/buy”)  

public String buyTicket(String name ){

return name+”购买了“+”s;

/“+”上名字

}

}

2.进行配置

在 resources 中使用 yml,新建一个文件,名为 application.yml

//这个层次更清晰

spring:

application:

name:consumer-user //当前应用的名字

//这里应用的名字,最终会落实到注册中心的 Application 上

同时演练访问端口

server:

port:8200  

eureka:

instance:

prefer-ip-address:true //注册服务时使用ip地址

client:

service-url:

defaultZone:http://localhost:8761/eureka/

会发现当前应用也能注册到注册中心当中


二、在注册中心里发现服务

1.添加注解 EnableDiscoveryClient  

package com.atguigu.consumeruser.controller;

import org.springframework.web.bind.annotation;

@EnableDiscoveryClient //开启发现服务功能

@SpringBootApplication

public class ConsumerUserApplication {

public static void main(String[ ]  args) {

SpringApplication. run(ConsumerUserApplication.class, args);

}

2.结合 RestTemplate

package com.atguigu.consumeruser.controller;

import org.springframework.web.bind.annotation;

@EnableDiscoveryClient //开启发现服务功能

@SpringBootApplication

public class ConsumerUserApplication {

public static void main(String[ ]  args) {

SpringApplication. run(ConsumerUserApplication.class, args);

}

@Bean

public RestTemplate restTemplate( ) {

return new RestTemplate( );

}

}

3.使用负载均衡机制

package com.atguigu.consumeruser.controller;

import org.springframework.web.bind.annotation;

@EnableDiscoveryClient //开启发现服务功能

@SpringBootApplication

public class ConsumerUserApplication {

public static void main(String[ ]  args) {

SpringApplication. run(ConsumerUserApplication.class, args);

}

@LoadBalanced //使用负载均衡机制

@Bean

public RestTemplate restTemplate( ) {

return new RestTemplate( );

}

}

4.消费服务

package com.atguigu.consumeruser.controller;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RestController;

import org.springframework.web.client.RestTemple;

@RestController

public class Ticketcontroller {

@Autowired

RestTemplate restTemplate;  //注册

@GetMapping(“/buy”)  //调用 buy

public String buyTicket(String name ){ //请求的时候,调用名字就可以返回

restTemplate.getForObject(url:”http://PROVIDER-TICKET/ticket,String.class”) //获取

return name+”购买了“+”s;

}

}


三、启动消费者并测试

启动 ConsumerUserApplication,显示端口8200已启动成功,返回注册中心刷新,会发现 Consumer-User 也注册成功了。接着通过192.168.0.104:8200/buy 访问端口8200的 buy 方法。

运行显示:null 购买了《厉害了,我的国》。说明此时 name 为空,传一个 name,192.168.0.104:8200/buy?name= 张三。其中《厉害了,我的国》是从注册中心PROVIDER-TICKET 的实例来调用的,且其为负载均衡体制。访问任意一个都是有均衡体制的。

注意:买票时会使用 restTemplate 来请求远程的 PROVIDER-TICKET 来获取门票

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
4天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
15天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1309 5
|
1天前
|
监控 JavaScript Java
基于大模型技术的反欺诈知识问答系统
随着互联网与金融科技发展,网络欺诈频发,构建高效反欺诈平台成为迫切需求。本文基于Java、Vue.js、Spring Boot与MySQL技术,设计实现集欺诈识别、宣传教育、用户互动于一体的反欺诈系统,提升公众防范意识,助力企业合规与用户权益保护。
|
14天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1345 87
|
1天前
|
JavaScript Java 大数据
基于JavaWeb的销售管理系统设计系统
本系统基于Java、MySQL、Spring Boot与Vue.js技术,构建高效、可扩展的销售管理平台,实现客户、订单、数据可视化等全流程自动化管理,提升企业运营效率与决策能力。
|
3天前
|
弹性计算 安全 数据安全/隐私保护
2025年阿里云域名备案流程(新手图文详细流程)
本文图文详解阿里云账号注册、服务器租赁、域名购买及备案全流程,涵盖企业实名认证、信息模板创建、域名备案提交与管局审核等关键步骤,助您快速完成网站上线前的准备工作。
189 82
2025年阿里云域名备案流程(新手图文详细流程)