当前位置: 首页 > news >正文

SpringCloud - 入门

目录

服务架构演变

单体架构

分布式架构

分布式架构要考虑的问题

微服务

初步认识

案例Demo

服务拆分注意事项

服务拆分示例

服务调用


  • 服务架构演变

  • 单体架构

    • 将业务的所有功能集中在一个项目中开发,打成一个包部署
  • 优点:
    • 架构简单
    • 部署成本低
  • 缺点:
    • 耦合度高
    • 扩展性差(维护困难、升级困难)适合小型项目
  • 分布式架构

  • 根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务
  • 优点:
    • 降低服务耦合
    • 有利于服务升级拓展
  • 缺点:
    • 服务调用关系错综复杂,架构复杂,难度大;适合大型互联网项目
  • 分布式架构要考虑的问题

  • 服务拆分粒度如何?
  • 服务集群地址如何维护?
  • 服务之间如何实现远程调用?
  • 服务健康状态如何感知?
  • 微服务

  • 微服务是一种经过良好架构设计的分布式架构方案
  • 优点:
    • 拆分粒度更小、服务更独立、耦合度更低
  • 缺点:
    • 架构非常复杂,运维、监控、部署难度提高
  • 微服务的架构特征:
  • 单一职责:
    • 微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发
  • 自治:
    • 团队独立、技术独立、数据独立,独立部署和交付
  • 面向服务:
    • 对外暴露业务接口
  • 隔离性强:
    • 服务调用做好隔离、容错、降级,避免出现级联问题
  • 初步认识

  • SpringCloud是目前国内使用最广泛的微服务框架
  • 它集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验

  • Dubbo,SpringCloud,SpringCloudAlibaba技术对比

  • 案例Demo

  • 服务拆分注意事项

  • 1.不同微服务,不要重复开发相同业务
  • 2.微服务数据独立,不要访问其它微服务的数据库
  • 3.微服务可以将自己的业务暴露为接口,供其它微服务调用
  • 服务拆分示例

  • cloud-demo:父工程,管理依赖
    • order-service:订单微服务,负责订单相关业务

    • user-service:用户微服务,负责用户相关业务

  • 服务调用

  • 修改order-service中的根据id查询订单业务,要求在查询订单的同时,根据订单中包含的userId查询出用户信息,一起返回
  • 在order-service中向user-service发起一个http的请求,调用http://localhost:8081/user/{userId}接口
  • 1.注册RestTemplate的实例到Spring容器

  • 2.修改order-service服务中的queryOrderById方法

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

相关文章:

SpringCloud - 入门

目录 服务架构演变 单体架构 分布式架构 分布式架构要考虑的问题 微服务 初步认识 案例Demo 服务拆分注意事项 服务拆分示例 服务调用 服务架构演变 单体架构 将业务的所有功能集中在一个项目中开发,打成一个包部署优点: 架构简单部署成本低缺…...

进一步了解C++函数的各种参数以及重载,了解C++部分的内存模型,C++独特的引用方式,巧妙替换指针,初步了解类与对象。满满的知识,希望大家能多多支持

C的编程精华,走过路过千万不要错过啊!废话少说,我们直接进入正题!!!! 函数高级 C的函数提高 函数默认参数 在C中,函数的形参列表中的形参是可以有默认值的。 语法:返…...

Chapter6:机器人SLAM与自主导航

ROS1{\rm ROS1}ROS1的基础及应用,基于古月的课,各位可以去看,基于hawkbot{\rm hawkbot}hawkbot机器人进行实际操作。 ROS{\rm ROS}ROS版本:ROS1{\rm ROS1}ROS1的Melodic{\rm Melodic}Melodic;实际机器人:Ha…...

Sass的使用要点

Sass 是一个 CSS 预处理器,完全兼容所有版本的 CSS。实际上,Sass 并没有真正为 CSS 语言添加任何新功能。只是在许多情况下可以可以帮助我们减少 CSS 重复的代码,节省开发时间。 一、注释 方式一:双斜线 // 方式二:…...

计算机启动过程,从按下电源按钮到登录界面的详细步骤

1、背景 自接触计算机以来,一直困扰着我一个问题。当我们按下电脑的开机键后,具体发生了哪些过程呢?计算机启动的具体步骤是什么? 计算机启动过程通常分为五个步骤:电源自检、BIOS自检、引导设备选择、引导程序加载和…...

LeetCode 刷题之 BFS 广度优先搜索【Python实现】

1. BFS 算法框架 BFS:用来搜索 最短路径 比较合适,如:求二叉树最小深度、最少步数、最少交换次数,一般与 队列 搭配使用,空间复杂度比 DFS 大很多DFS:适合搜索全部的解,如:寻找最短…...

Hadoop01【尚硅谷】

大数据学习笔记 大数据概念 大数据:指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 主要解决,海量数据的存储…...

Echarts 配置横轴竖轴指示线,更换颜色、线型和大小

第018个点击查看专栏目录本示例是描述如何在Echarts上配置横轴竖轴指示线,更换颜色、线型和大小。方法很简单,参考示例源代码。 文章目录示例效果示例源代码(共85行)相关资料参考专栏介绍示例效果 示例源代码(共85行&a…...

OpenAI 官方API Java版SDK,两行代码即可调用。包含GhatGPT问答接口。

声明:这是一个非官方的社区维护的库。 已经支持OpenAI官方的全部api,有bug欢迎朋友们指出,互相学习。 注意:由于这个接口: https://platform.openai.com/docs/api-reference/files/retrieve-content 免费用户无法使…...

SpringBoot 日志文件

(一)日志文件有什么用?除了发现和定位问题之外,我们还可以通过日志实现以下功能:记录用户登录日志,以便分析用户是正常登录还是恶意破解用户。记录系统的操作日志,以便数据恢复和定位操作 。记录程序的执行时间&#x…...

SQL71 检索供应商名称

描述Vendors表有字段供应商名称(vend_name)、供应商国家(vend_country)、供应商州(vend_state)vend_namevend_countryvend_stateappleUSACAvivoCNAshenzhenhuaweiCNAxian【问题】编写 SQL 语句,…...

02:入门篇 - 漫谈 CTK

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 十万个为什么 五千个在哪里?七千个怎么办?十万个为什么?。。。生活中,有很多奥秘在等着我们去思考、揭示! 同样地,在使用 CTK 时,很多小伙伴一定也存在诸多疑问: 为什么 CTK Plugin Framework 要借…...

SpringBoot常用注解

SpringBootApplication注解包含如下三个SpringBootConfigurationEnableAutoConfigurationComponentScanSpringBootConfiguration等同于Configuration,是属于spring的一个配置类这里的 Configuration 对我们来说并不陌生,它就是 JavaConfig 形式的 Spring…...

RBAC权限模型

什么是RBAC权限模型? RBAC是基于角色的访问控制,在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。 1.0级 用户、角色、权限 2.0 权限分级 公司>部门>小组 2.1 权限继承 ps: 这个人是一个小组长…...

【郭东白架构课 模块一:生存法则】07|法则三:架构师如何找到自己的商业模式?

你好,我是郭东白,今天我们来聊聊架构活动中对商业价值的考量。 今天我们要讲的是架构师的第三个生存法则:作为一个架构师,必须要在有限的资源下最大化架构活动所带来的商业价值。对于任何一个架构活动而言,架构师的可…...

STM32 - 看门狗

独立看门狗 IWDG专业时钟LSI 低功耗仍可以运行对定时的控制比较松喂狗这些时间是按照40kHz时钟给出。实际上,MCU内部的RC频率会在30kHz到60kHz之间变化。此外,即使RC振荡器的频率是精确的,确切的时序仍然依赖于APB接口时钟与RC振荡器时钟之间…...

Redis集群搭建

一、哨兵模式 在 redis3.0之前,redis使用的哨兵架构,它借助 sentinel 工具来监控 master 节点的状态;如果 master 节点异常,则会做主从切换,将一台 slave 作为 master。 哨兵模式的缺点: (1&…...

车载基础软件——AUTOSAR AP典型应用案例

我是穿拖鞋的汉子,魔都中一位坚持长期主义的工程师! 最近不知道为何特别喜欢苏轼的一首词: 缺月挂疏桐,漏断人初静。谁见幽人独往来,缥缈孤鸿影。 惊起却回头,有恨无人省。拣尽寒枝不肯栖,寂寞…...

消息中间件----内存数据库 Redis7(第3章 Redis 命令)

Redis 根据命令所操作对象的不同,可以分为三大类:对 Redis 进行基础性操作的命令,对 Key 的操作命令,对 Value 的操作命令。3.1 Redis 基本命令首先通过 redis-cli 命令进入到 Redis 命令行客户端,然后再运行下面的命令…...

react-03-react-router-dom-路由

react-router-dom:react路由 印记中文:react-router-dom 1、路由原理 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>前端路由的基石_history</title> </head> <body><a hre…...

Qwen3字幕系统Linux部署指南:从安装到性能调优

Qwen3字幕系统Linux部署指南&#xff1a;从安装到性能调优 为视频内容自动生成精准字幕的时代已经到来 还记得手动为视频添加字幕的痛苦经历吗&#xff1f;一遍遍听写、校对、调整时间轴&#xff0c;几分钟的视频往往需要花费数小时。现在&#xff0c;基于Qwen3的智能字幕系统可…...

停车场、门禁、移动执法…聊聊C#车牌识别系统在不同业务场景下的‘调教’心得

停车场、门禁、移动执法&#xff1a;C#车牌识别系统的场景化调优实战 当车牌识别系统从实验室走向真实业务场景&#xff0c;开发者往往会发现一个残酷的现实&#xff1a;那些在标准测试集上表现优异的模型&#xff0c;一旦部署到实际环境中&#xff0c;识别率可能断崖式下跌。我…...

个人开发者如何高效率APP上架安卓应用市场?软著、备案、资质、审核详解大全,一篇文章讲透流程规则!

一、上架前的资质准备 1. 软件著作权登记证书&#xff08;软著&#xff09; 软著是证明APP拥有自主知识产权的重要文件&#xff0c;多数应用商店要求上架时提供。申请周期通常为1-2个月&#xff0c;建议提前规划。 2. APP备案 根据工信部要求&#xff0c;APP主办者需要在接…...

java rabbitmq实现消息协作

场景&#xff1a;数据下载采用rpa实现&#xff0c;数据服务采用java springboot实现&#xff0c;需要进行一键数据补录操作1、设置消息承载的通信队列&#xff0c;java 发送任务到rabbitmq和rpa端收到消息&#xff08;neimeng_data_download&#xff09;后&#xff0c;将下载结…...

学术PDF处理神器:OpenClaw+GLM-4.7-Flash自动提取关键结论

学术PDF处理神器&#xff1a;OpenClawGLM-4.7-Flash自动提取关键结论 1. 为什么需要自动化文献处理&#xff1f; 作为一名经常需要阅读大量学术文献的研究者&#xff0c;我发现自己花费在整理文献上的时间甚至超过了实际阅读时间。每次下载几十篇PDF后&#xff0c;手动提取目…...

Markdown Viewer 突破限制:全新自定义主题功能释放创作潜能

Markdown Viewer 突破限制&#xff1a;全新自定义主题功能释放创作潜能 【免费下载链接】markdown-viewer Markdown Viewer / Browser Extension 项目地址: https://gitcode.com/gh_mirrors/ma/markdown-viewer 副标题&#xff1a;如何通过自定义主题功能实现文档视觉体…...

PyTorch 2.8镜像效果展示:使用OpenCV对VideoLDM输出做运动模糊增强处理

PyTorch 2.8镜像效果展示&#xff1a;使用OpenCV对VideoLDM输出做运动模糊增强处理 1. 效果展示概览 在视频生成领域&#xff0c;运动模糊效果是提升视频真实感的关键因素之一。本文将展示如何利用PyTorch 2.8镜像环境&#xff0c;结合OpenCV对VideoLDM生成的原始视频进行运动…...

Open Images数据集完全指南:从零开始构建计算机视觉应用

Open Images数据集完全指南&#xff1a;从零开始构建计算机视觉应用 【免费下载链接】dataset The Open Images dataset 项目地址: https://gitcode.com/gh_mirrors/dat/dataset Open Images数据集是谷歌推出的一个大规模计算机视觉数据集&#xff0c;包含约900万张图像…...

MD_DS3231库:工业级DS3231 RTC全功能驱动设计与实践

1. MD_DS3231库深度解析&#xff1a;面向工业级RTC应用的DS3231全功能驱动设计与工程实践DS3231是Maxim&#xff08;现属Analog Devices&#xff09;推出的高精度IC实时时钟芯片&#xff0c;其2ppm温漂特性、内置温度补偿晶振&#xff08;TCXO&#xff09;、独立电池供电备份、…...

Mojo调用Python模块性能翻倍?深度剖析混合编程内存管理、GIL绕过与ABI兼容性(附实测基准数据)

第一章&#xff1a;Mojo与Python混合编程案例源码分析Mojo 作为兼具 Python 兼容性与系统级性能的新一代编程语言&#xff0c;其与 Python 的混合编程能力是实际工程落地的关键。以下通过一个典型场景——在 Python 主程序中调用 Mojo 实现的高性能向量加法函数——展开源码级剖…...