微服务调用-上|学习笔记

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: 快速学习微服务调用-上

开发者学堂课程【全面讲解 Spring Cloud Alibaba 技术栈微服务调用-上】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/683/detail/11860


微服务调用-上


内容介绍:

一、微服务之间的调用关系

二、商品微服务有关代码


一、微服务之间的调用关系

1.在微服务架构中,最常见的场景是微服务之间的相互调用。以电商系统中常见的用户下单为例来演示微服务的调用:客户向订单微服务发起一个下单的请求,在进行保存订单之间需要调用商品微服务查询商品的信息,一般把服务的主动调用方称为服务消费者,把服务的被调用方称为服务提供者。

image.png

在这种场景下,订单微服务就是一个服务消费者,商品微服务就是一个服务提供者。

用户下单:客户下单发起请求:告诉网站要买几件什么商品。

2.微服务之间的调用关系:

一个请求传入 pid 告诉订单微服务(order)要买几件什么商品,订单微服务(order)创建订单前调用商品微服务(product)查询商品详细信息,订单微服务(order)向商品微服务(product)发起请求传递一个 pid,商品微服务(product)根据 pid 查询商品信息,然后将商品信息封装成 product 再传递回来。商品微服务(product)的方法是查询(根据pid查询商品信息),订单微服务(order)的方法创建订单(将订单保存到数据库)。如图:

image.png


二、商品微服务有关代码

1.商品微服务代码:

@RestController

@Slf4j

public class ProductController{

@Autowired

private ProductService productService;

//商品信息查询

@RequestMapping("/product/{pid}")  //请求路径,查询某一件商品

public Product product(@PathVariable("pid") Integer pid) {

log.info("接下来要进行{ }号商品信息的查询",pid);//pid将放在{ }中

Product product = productService.findByPid(pid);

log.info("商品信息查询成功,内容为{ }",JSON.toJSONString(product));

return product;

}

}

2.补充 productService 代码:

接口代码:

package com.itheima.service;

import com,itheima.domain.Product;

public interface ProductService(

//根据pid查询商品信息

Product findByPid(Integer pid);

}

补充必要的做实现:

package com.itheima.service.impl;

import com.itheima.dao.ProductDao;

import com.itheima.domain.Product;

import com.itheima.service.ProductService;

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

import org.springframework.stereotype.Service;

@Service

public class ProductServiceImpl implements ProductService{

@Autowired

private ProductDao productDao;

@Override

public Product findByPid(Integer pid) {

return productDao.findById(pid).get();

}

3.端口是8081,需要创建一个名字叫 shop 的数据库

启动结果:

image.png

image.png

4.系统已自动创建好表,需要加测试数据,添加后运行结果:

image.png

5.通过浏览器查询:

image.png

继续查询:

image.png

后台日志,如图:

image.png

相关文章
|
6月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
159 0
|
6月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
270 0
|
6月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
156 1
|
6月前
|
SpringCloudAlibaba Java 测试技术
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(六)Hystrix(豪猪哥)的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(六)Hystrix(豪猪哥)的使用
146 1
|
6月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(三)Eureka服务注册中心
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(三)Eureka服务注册中心
101 1
|
6月前
|
SpringCloudAlibaba Java 持续交付
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(一)基础知识+各个组件介绍+聚合父工程创建
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(一)基础知识+各个组件介绍+聚合父工程创建
759 1
|
6月前
|
Java Nacos Sentinel
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(九)Nacos+Sentinel+Seata
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(九)Nacos+Sentinel+Seata
781 0
|
6月前
|
消息中间件 SpringCloudAlibaba Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
1003 0
|
6月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(五)OpenFeign的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(五)OpenFeign的使用
104 0
|
6月前
|
负载均衡 算法 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(四)Ribbon的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(四)Ribbon的使用
133 0
下一篇
无影云桌面