【黑马程序员】SpringCloud——微服务

文章目录

  • 前言
  • 一、服务架构演变
    • 1. 单体架构
    • 2. 分布式架构
      • 2.1 服务治理
    • 3. 微服务
      • 3.1 微服务结构
      • 3.2 微服务技术对比
      • 3.3 企业需求
  • 二、SpringCloud
    • 兼容性
  • 三、服务拆分及远程调用
    • 1. 服务拆分
      • 1.1 服务拆分注意事项
      • 1.2 导入服务拆分 Demo
    • 2. 远程调用
      • 2.1 根据订单 id 查询订单功能
      • 2.2 远程调用方式分析
        • 2.2.1 微服务远程调用—查询订单
          • ① 注册 RestTemplate
          • ② 服务远程调用 RestTemplate
  • 总结


前言

跟着B站的黑马程序员学习 SpringCloud,语言为java,目前是第一个学习内容
课程传送门:SpringCloud——微服务


一、服务架构演变

  • 单体架构特点:
    简单方便,高度耦合,拓展性差,适合小型项目

  • 分布式架构特点:
    松耦合,扩展性好,但架构复杂,难度大,适合大型互联网项目

  • 微服务:一种良好的分布式架构方案
    优点:拆分粒度更小、服务更独立、耦合度更低
    缺点:架构非常复杂,运维、监控、部署难度提高

1. 单体架构

在这里插入图片描述

2. 分布式架构

在这里插入图片描述

2.1 服务治理

在这里插入图片描述

3. 微服务

在这里插入图片描述

3.1 微服务结构

在这里插入图片描述

3.2 微服务技术对比

在这里插入图片描述

3.3 企业需求

在这里插入图片描述

二、SpringCloud

在这里插入图片描述

兼容性

在这里插入图片描述

三、服务拆分及远程调用

1. 服务拆分

  • 微服务需要根据业务模块拆分,做到单一职责,不要重复开发相同业务
  • 微服务可以将业务暴露为接口,供其他微服务使用
  • 不同微服务都应该有自己独立的数据库

1.1 服务拆分注意事项

在这里插入图片描述

1.2 导入服务拆分 Demo

在这里插入图片描述

2. 远程调用

  • 基于 RestTemplate 发起的 http 请求实现远程调用
  • http 请求远程调用是与语言无关的调用,只要知道对方的 ip、端口、接口路径、请求参数即可

2.1 根据订单 id 查询订单功能

在这里插入图片描述

2.2 远程调用方式分析

在这里插入图片描述

2.2.1 微服务远程调用—查询订单
① 注册 RestTemplate

在这里插入图片描述

② 服务远程调用 RestTemplate

在这里插入图片描述


总结

以上就是本章要讲的内容,本文仅仅简单复述了老师讲课的文本内容,内容有误麻烦联系。

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

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

相关文章

Synthetic Data Generation with Large Language Models for Text Classification

本文是LLM系列文章,针对《Synthetic Data Generation with Large Language Models for Text Classification: Potential and Limitations》的翻译。 基于大型语言模型的文本分类合成数据生成:潜力和局限性 摘要1 引言2 相关工作3 方法4 评估1&#xff1…

软考 系统架构设计师系列知识点之边缘计算(2)

接前一篇文章:软考 系统架构设计师系列知识点之边缘计算(1) 所属章节: 第11章. 未来信息综合技术 第4节. 边缘计算概述 3. 边缘计算的特点 边缘计算是在靠近物或数据源头的网络边缘侧,融合网络、计算、存储、应用核心…

JAVA客户端使用账号密码调用influxdb2报错:{“code“:“unauthorized“,“message“:“Unauthorized“}

问题&#xff1a;JAVA客户端访问influxdb2报错 说明&#xff1a;当前influxdb版本&#xff1a;2.6.1 使用依赖&#xff1a; <dependency><groupId>org.influxdb</groupId><artifactId>influxdb-java</artifactId><version>2.10</vers…

IDEA插件分享:代码零入侵,后端神器

今天给大家介绍一款好用的IDEA插件&#xff1a;Apipost-Helper-2.0。非常好用&#xff01;主要包含以下功能&#xff1a; 1、无侵入生成API文档 编写完代码后&#xff0c;只需右键upload同步接口即可快速将源码中包含的API以及注解自动生成API文档&#xff0c;并生成可以访问…

Django ORM:数据库操作的Python化艺术

Django的对象关系映射器&#xff08;ORM&#xff09;是其核心功能之一&#xff0c;允许开发者使用Python代码来定义、操作和查询数据库。这篇文章将带你深入了解Django ORM的强大之处&#xff0c;从基本概念到高级查询技巧&#xff0c;提供丰富的示例帮助你掌握使用Django ORM进…

说说你在React项目是如何捕获错误的?

一、是什么 错误在我们日常编写代码是非常常见的 举个例子&#xff0c;在react项目中去编写组件内JavaScript代码错误会导致 React 的内部状态被破坏&#xff0c;导致整个应用崩溃&#xff0c;这是不应该出现的现象 作为一个框架&#xff0c;react也有自身对于错误的处理的解…

vuecli3 批量打印二维码

安装以个命令: npm install qrcode --save npm install print-js --save 页面使用: import qrcode from qrcode import printJS from print-js <el-button type"primary" click"handleBulkPrint">批量打印</el-button>methods: {// 批量打印…

c++ 信奥赛编程 2049:【例5.19】字符串判等

#include <iostream> using namespace std; string strlwr(string s) { for(int i0;i<s.size();i){if(s[i]>A && s[i]<Z)s[i]s[i]-Aa;}return s; } int main() {string str1,str2; //定义两个字符串变量 getline(cin,str1); //通过函数输入字符串 getl…

JavaWeb 学习路线

JavaWeb 学习路线 基础知识 1. Java基础 数据类型、循环、条件语句等基本概念面向对象编程&#xff08;OOP&#xff09;的概念和实践 2. Java核心 集合框架、异常处理、多线程等I/O流、网络编程基础 3. Servlet基础 Servlet生命周期HTTP协议和请求/响应概念 Web开发 1…

集成运算放大电路

引用原文链接&#xff1a; 集成运放及其经典电路详解 - 知乎 (zhihu.com) 1、 反比例运算放大器 输入负电压则输出正电压&#xff0c;输入正电压则输出负电压 2、同相放大电路&#xff08;同相指输入电压与输出电压的位相相同&#xff09; 输入负电压则输出负电压&#xf…

LeetCode----188. 买卖股票的最佳时机 IV

 题目 给你一个整数数组 prices 和一个整数 k &#xff0c;其中 prices[i] 是某支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。也就是说&#xff0c;你最多可以买 k 次&#xff0c;卖 k 次。 注意&#xff1a;你不能同…

网络测试工具—— iperf2 安卓APK 下载 及简单使用

网络测试工具—— iperf2 安卓APK 下载 及简单使用 前言一、iperf2是什么&#xff1f;二、使用步骤附上help中命令截图翻译总结 前言 项目上有一款安卓车机加载局域网图片加载非常慢&#xff0c;所以需要测试一个安卓车机设备的带宽&#xff0c;经过调研后使用到了iperf2。 一…

elementUI 常遇问题

一.解决element-ui中下拉菜单子选项click事件不触发的问题 将click改为click.nativelogoutHandle;即可监听选项的点击事件。 (原因&#xff1a; click.native 可以监听 DOM 元素的原生 click 事件)

四阶龙格库塔与元胞自动机

龙格库塔法参考&#xff1a; 【精选】四阶龙格库塔算法及matlab代码_四阶龙格库塔法matlab_漫道长歌行的博客-CSDN博客 龙格库塔算法 Runge Kutta Method及其Matlab代码_龙格库塔法matlab_Lzh_023016的博客-CSDN博客 元胞自动机参考&#xff1a; 元胞自动机&#xff1a;森林…

Globalsign证书

GlobalSign是全球可信的数字证书提供商之一&#xff0c;提供广泛的证书服务&#xff0c;包括SSL证书、代码签名证书、电子邮件证书等&#xff0c;帮助保护企业和个人的网络安全。本文将详细介绍GlobalSign证书的特点和优势&#xff0c;帮助您更好地了解这一重要的数字证书提供商…

C++线程库的基本使用(初级)

#include<iostream> #include<thread> #include<string> void printHelloWorld(std::string msg) {std::cout << msg<< std::endl;return; } int main() {std::thread threadl(printHelloWorld,"Hello Thread");//第一个参数是函数名&…

快速了解什么是跳跃表(skip list)

什么是跳跃表&#xff08;skip list&#xff09; 跳跃表&#xff08;Skip List&#xff09;是一种概率性的数据结构&#xff0c;它通过在多层链表的基础上添加“快速通道”来提高搜索效率。跳跃表的效率可以与平衡树相媲美&#xff0c;即在平均和最坏的情况下&#xff0c;查找…

springboot http添加请求头 添加请求证书

首先明确两个事情&#xff1a;请求对象&#xff0c;连接对象 我们知道你要是想发起一个请求&#xff0c;需要指定两个环节内容&#xff0c;一个是请求内容对象(request)&#xff0c;一个是连接内容对象(httpClient) 它们两个的作用我们在下面会看到 简要分析源码 1.先说一下…

selenium自动化测试入门 —— 键盘鼠标事件ActionChains

在使用 Selenium WebDriver 做自动化测试的时候&#xff0c;会经常模拟鼠标和键盘的一些行为。比如使用鼠标单击、双击、右击、拖拽等动作&#xff1b;或者键盘输入、快捷键使用、组合键使用等模拟键盘的操作。在 WebDeriver 中&#xff0c;有一个专门的类来负责实现这些测试场…

如何在在线Excel文档中规范单元格输入

在日常的工作中&#xff0c;我们常常需要处理大量的数据。为了确保数据的准确性和可靠性。我们需要对输入的数据进行规范化和验证。其中一个重要的方面是规范单元格输入。而数据验证作为Excel中一种非常实用的功能&#xff0c;它可以帮助用户规范单元格的输入&#xff0c;从而提…