山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(二十一)- 微服务(1)

news2024/9/23 1:39:17

微服务

1.认识微服务

SpringCloud底层是依赖于SpringBoot的,并且有版本的兼容关系,如下:

2. 服务拆分

需求 : 把订单信息和用户信息一起返回

从订单模块向用户模块发起远程调用 , 把查到的结果一起返回

步骤 :

2.1 注册RestTemplate

在启动类中注入RestTemplate

  @MapperScan("cn.itcast.order.mapper")
  @SpringBootApplication
  public class OrderApplication {
  ​
      public static void main(String[] args) {
          SpringApplication.run(OrderApplication.class, args);
      }
  ​
      // 创建RestTemplate对象并注入容器
      @Bean
      public RestTemplate restTemplate(){
          return new RestTemplate();
      }
  ​
  }

2.2 在订单业务层 利用RestTemplate发出http请求

  
  @RestController
  @RequestMapping("order")
  public class OrderController {
  ​
     @Autowired
     private OrderService orderService;
  ​
     @Autowired
     private RestTemplate restTemplate;
  ​
      @GetMapping("{orderId}")
      public Order queryOrderByUserId(@PathVariable("orderId") Long orderId) {
          // 根据id查询订单并返回
          Order order = orderService.queryOrderById(orderId);
          // 利用RestTemplate发http请求
          // url路径
          String url = "http://localhost:8081/user/" + order.getUserId();
          // 发送请求
          User user = restTemplate.getForObject(url, User.class);
          // 封装user
          order.setUser(user);
          return order;
      }
  }

3. Eureka

3.1 提供者和消费者

提供者 : 一次业务中,被其它微服务调用的业务(提供接口给其它微服务)

消费者 : 一次业务中, 调用其他微服务(调用其它微服务的接口)

3.2 Eureka原理分析

3.2.1 Eureka注册中心

3.2.2搭建Eureka注册中心

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

新建eureka-server模块

启动类:

  
  ​
  @SpringBootApplication
  @EnableEurekaServer
  public class EurekaApplication {
      public static void main(String[] args) {
          SpringApplication.run(EurekaApplication.class,args);
      }
  }

配置文件 :

  
  server:
    port: 10086
  spring:
    application:
      name:eurekaserver   # 服务名称
  eureka:
    client:
      service-url:
        defaultZone: http://localhost:10086/eureka   # 地址信息

服务注册:

把user-service注册到EurekaServer下:

引入依赖

配置user-service的yml文件

  
  server:
    port: 8081
  spring:
    datasource:
      url: jdbc:mysql://localhost:3306/cloud_user?useSSL=false
      username: root
      password: 888888
      driver-class-name: com.mysql.jdbc.Driver
    application:
      name: userservice  # user服务名称
  mybatis:
    type-aliases-package: cn.itcast.user.pojo
    configuration:
      map-underscore-to-camel-case: true
  logging:
    level:
      cn.itcast: debug
    pattern:
      dateformat: MM-dd HH:mm:ss:SSS
  ​
  eureka:
    client:
      service-url:
        defaultZone: http://localhost:10086/eureka   # 地址 信息

服务列表 :

3.2.3 在order-service完成服务拉取

原来的代码:

  
  String url = "http://localhost:8081/user/" + order.getUserId();

修改后 :

  
  String url = "http://userservice/user/" + order.getUserId();

加上负载均衡注解

  
      @Bean
      @LoadBalanced    // 标记要被Ribbon拦截处理!
      public RestTemplate restTemplate(){
          return new RestTemplate();
      }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1701974.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu切换CUDA版本

查询版本 cd /usr/local在此目录下进行 ls 命令可以查看自己安装了哪些版本 使用stat cuda命令可以查看当前软连接(符号)为哪个版本&#xff0c;即使用的是哪个版本 若要修改使用的CUDA&#xff0c;只需要删除此软连接&#xff0c;再创建一个新的软连接&#xff0c;指向自己…

最新!!2024年上半年软考【中级】网络工程师 综合知识真题解析

2024上半年软考考试已经结束了&#xff0c;为大家整理了网友回忆版的网络工程师真题及答案&#xff0c;总共41道题。 上半年考试的宝子们可以对答案预估分数&#xff01;准备下半年考的宝子可以提前把握考试知识点和出题方向&#xff0c;说不定会遇到相同考点的题目&#xff01…

python九九乘法表的打印思考及实现

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、问题引入 九九乘法表的显示需求 二、问题分析 嵌套循环的概念 屏幕宽度与换行的考虑…

【NumPy】关于numpy.multiply()函数,看这一篇文章就够了

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

艾体宝干货 | 用于故障排除的最佳 Wireshark 过滤器

在网络故障排除过程中&#xff0c;Wireshark是一款非常强大的工具&#xff0c;它可以用来分析网络数据包并解决各种问题。本文将介绍一些好用的Wireshark过滤器&#xff0c;以便更有效地进行故障排除。 分析网络行为和排除网络故障就像用漏斗过滤渣滓。因此&#xff0c;网络协…

研二学妹面试字节,竟倒在了ThreadLocal上,这是不要应届生还是不要女生啊?

一、写在开头 今天和一个之前研二的学妹聊天&#xff0c;聊及她上周面试字节的情况&#xff0c;着实感受到了Java后端现在找工作的压力啊&#xff0c;记得在18&#xff0c;19年的时候&#xff0c;研究生计算机专业的学生&#xff0c;背背八股文找个Java开发工作毫无问题&#x…

KT6368A蓝牙芯片AT命令会被透传出去,指令对为什么会被透传出去

一、简介 KT6368A再被连接之后&#xff0c;AT命令会被透传出去。被透传的这组AT命令是符合文档要求&#xff0c;不应被透传&#xff0c;实际却经常被透传。并且可以每次都复现 详细描述 有问题部分的串口数据监控结果如下&#xff1a;其中41 54 2B 42 4D 46 30 41 46 42 43 3…

SpringValidation

一、概述&#xff1a; ​ JSR 303中提出了Bean Validation&#xff0c;表示JavaBean的校验&#xff0c;Hibernate Validation是其具体实现&#xff0c;并对其进行了一些扩展&#xff0c;添加了一些实用的自定义校验注解。 ​ Spring中集成了这些内容&#xff0c;你可以在Spri…

力扣算法之1050. 合作过至少三次的演员和导演

题解 actor_id 和director_id&#xff0c;类似一个坐标&#xff0c;只要出现三次或者三次以上就打印出来 我的解 SELECT actor_id,director_id FROM ActorDirector GROUP BY actor_id,director_id HAVING COUNT(1)>3我的解注解 同时分组&#xff0c;两个出现次数大于等于…

深入了解时间处理:当前时间显示与格式化

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、引言 二、显示当前时间 1. 导入时间模块 2. 使用time模块获取当前时间 3. 格式化当前…

【源码】二开版发卡自助下单授权DU系统/发卡秒u系统//完整总代理+子代理系统/支付模板全部优化授权

测试环境&#xff1a;宝塔、Linux系统、PHP7.4、MySQL5.6&#xff0c;根目录public&#xff0c;伪静态thinkPHP&#xff0c;开启SSL 和前面发的那一套不一样哈&#xff0c;这套是新的后端&#xff0c;然后用了前面那一套的前端支付授权模板&#xff0c;总之改了很多东西&#…

从杂乱无章到井井有条——五款笔记软件,重塑工作与生活

记得刚入职场那会&#xff0c;我总是被各种繁杂的信息和任务搞得焦头烂额。会议记录、项目计划、灵感闪现……这些都需要我随时记录和整理。 然而&#xff0c;我的桌面总是堆满了便签纸和草稿本&#xff0c;手机相册里充斥着各种截图和备忘录&#xff0c;每次需要查找资料都像…

JSP期末要点复习

一、JSP工作原理 1.客户端请求JSP页面&#xff1a;用户通过浏览器发送一个请求到服务器&#xff0c;请求一个特定的JSP页面。这个请求被服务器上的Web容器&#xff08;如Apache Tomcat&#xff09;接收。 2.JSP转换为Servlet&#xff1a;当JSP页面第一次被请求时&#xff0…

JS入门学习

JS JavaScript是一门解释型的脚本语言&#xff0c;其是弱类型的&#xff0c;对变量的数据类型不做严格的要求&#xff0c;变量的类型可以在运行过程中变化 JavaScript能改变HTML内容&#xff0c;属性&#xff0c;样式 大纲 使用方式变量运算符数组JS函数自定义对象事件补充 …

斯洛文尼亚普利雅玛城堡:吉尼斯世界纪录认证的世界最大溶洞城堡

除了著名的波斯托伊纳溶洞&#xff08;Postojna Cave&#xff09;&#xff0c;普利雅玛城堡&#xff08;Predjama Castle&#xff09;也是波斯托伊纳洞穴公园&#xff08;Postojna Cave Park&#xff09;不容错过的景点之一。这座城堡坐落在斯洛文尼亚&#xff08;Slovenia&…

亚马逊,沃尔玛,速卖通卖家必知:如何运用测评提升产品权重

说到 测评&#xff0c;对于绝大部分卖家而言应该都非常熟悉。因为他们知道&#xff0c;通过测评可以快速地为自己的产品增加评论数量&#xff0c;提升排名&#xff0c;甚至打造畅销产品。 测评不是唯一的手段&#xff0c;但是推销量的一把好手。首先测评能让listing快速成长&a…

中医能治疗懒吗?这3种懒病,中医可以治!

“中医能治懒吗&#xff1f;总感觉肢体软弱&#xff0c;自己想做事&#xff0c;但因为力不从心而怕做。”在史仁杰医生门诊上&#xff0c;有个患者这样问到。 我们常听说&#xff0c;某人很懒&#xff0c;甚至还会把“懒”等同于“好逸恶劳”“不劳而获”&#xff1b;说句公道…

5.14.5 不同 CNN 对超声图像乳腺肿瘤分类的比较

VGG-16 和 Inception V3 两种模型 第一个是使用预训练模型作为特征提取器&#xff0c;第二个是微调预训练模型。 1. 介绍 乳腺癌是女性最常见的癌症&#xff0c;癌症筛查是通过乳房超声 (BUS) 成像和乳房 X 光检查进行的。 目前的问题是需要 依赖大型且带注释的BUS数据集进…

【权威出版】2024年城市建设、智慧交通与通信网络国际会议(UCSTCN 2024)

2024年城市建设、智慧交通与通信网络国际会议 2024 International Conference on Urban Construction, Smart Transportation, and Communication Networks 【1】会议简介 2024年城市建设、智慧交通与通信网络国际会议即将盛大召开&#xff0c;这是一次聚焦城市建设、智慧交通与…

[算法] 优先算法(三):滑动窗口(上)

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏:&#x1f355; Collection与数据结构 (92平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 &#x1f9c0;Java …