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

Springboot新手开发 Cloud篇

前言
👏作者简介:我是笑霸final,一名热爱技术的在校学生。
📝个人主页:个人主页1 || 笑霸final的主页2
📕系列专栏:后端专栏
📧如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
🔥如果感觉博主的文章还不错的话,👍点赞👍 + 👀关注👀 + 🤏收藏🤏

在这里插入图片描述

目录

  • 一、上一章Springboot新手开发 基本总结
  • 二、springcloud版本介绍
  • 三、注册中心 nacos
  • 四、服务调用 openfeign
  • 五、熔断器Netflix Hystrix
  • 六、整合geteway网关
  • 七、nacos配置中心
    • springboot配置文件的加载顺序


一、上一章Springboot新手开发 基本总结

Springboot新手开发 基本总结==》点此跳转


二、springcloud版本介绍

cloud和boot的版本对应关系

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

Spring Cloud由众多子项目组成,如Spring Cloud Config、Spring Cloud Netflix、Spring Cloud Consul 等,提供了搭建分布式系统及微服务常用的工具,如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性token、全局锁、选主、分布式会话和集群状态等,满足了构建微服务所需的所有解决方案。 总体如下

  • 服务发现(注册中心)——Netflix Eureka (nacos)
  • 服务调用——Netflix feign
  • 熔断器——Netflix Hystrix、 (Sentinel )
  • 服务网关——Netflix Zuul、spring cloud gateway
  • 分布式配置中心——Spring Cloud Config (nacos)
  • 客服端负载均衡——Netflix Ribbon
  • 消息总线——Spring Cloud bus(nacos)

三、注册中心 nacos

安装过程

  • 下载nacos 然后解压 官网nacos官网在这里插入图片描述

  • 启动nacos 并访问http://192.168.65.1:8848/nacos/index.html#/login 注意IP地址用戶名和密碼都是nacos
    在这里插入图片描述

实现不同的微服务模块之间调用,把这些模块在注册中心进行注册注册之后,实现互相调用

注册服务

  • 1.引入依赖
<!--服务注册--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
  • 2.在服务的配置文件中配置 配置nacos地址
#nacos服务地址
spring.cloud.nacos.discovery.server-addr=192.168.65.1:8848
  • 3.在服务的启动类上添加注解@EnableDiscoveryClient
    在这里插入图片描述

四、服务调用 openfeign

前提条件 把互相调用的服务需要在注册中心注册

步骤

  • 一、引入依赖
 <!--服务调用--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>
  • 二、调用端的启动类添加注解@EnableFeignClients

  • 三、在调用端 创建包和接口在这里插入图片描述在这里插入图片描述

  • 四、测试在这里插入图片描述


五、熔断器Netflix Hystrix

Hystrix 供分布式系统使用,提供延迟和容错功能,隔离远程系统、访问和第三方程序库的访问点,防止级联失败,保证复杂的分布系统在面临不可避免的失败时,仍能有其弹性。

  • 一、添加依赖
<!--ribbon 负载均衡 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-ribbon</artifactId></dependency><!--hystrix依赖,主要是用  @HystrixCommand --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix</artifactId></dependency>
  • 二、在调用端配置文件中添加配置
#开启熔断机制
feign.hystrix.enabled=true
#设置超时时间 默认10秒
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=3000
  • 三、在创建interface后还要创建实现类(出错了需要实现的类容)在这里插入图片描述
  • 四、在interface上添加注解和属性在这里插入图片描述

六、整合geteway网关

  • 客户端和服务端之间的一面墙,可以起到很多作用:请求转发、负载均衡、权限控制、跨域(如果使用getway来跨域,就得删除模块那个跨域注解)等

映入依赖

<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!--服务调用--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><!--gson--><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId></dependency></dependencies>

写配置文件

server:port: 8222
spring:application:name: service-gatewaycloud:
#    网关gateway:discovery:locator:enabled: true  #服务发现 默认是falseroutes:          #路由匹配规则- id: service-acl              #路由id 建议写服务名称predicates: Path=/*/acl/**   #断言  固定写法 Path=匹配规则    /**表示有多个值uri: lb://service-acl        #固定写法 lb://在nacos中注册的名字- id: service-edupredicates: Path=/eduservice/**uri: lb://service-edu- id: service-msmuri: lb://service-msmpredicates: Path=/edumsm/**
#  服务注册nacos:discovery:server-addr: ************:8848

测试
用网关的端口号访问服务

在这里插入图片描述

七、nacos配置中心

当配置信息发生变动时,修改实时生效,无需要重新重启服务器,就能够自动感知相应的变化,并将新的变化统一发送到相应程序上,快速响应变化。比方说某个功能只是针对某个地区用户,还有某个功能只在大促的时段开放,使用配置中心后只需要相关人员在配置中心动态去调整参数,就基本上可以实时或准实时去调整相关对应的业务

springboot配置文件的加载顺序

在这里插入图片描述
在这里插入图片描述

引入依赖

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

新建配置文件bootstrap.properties或者bootstrap.yml

#配置中心地址
spring.cloud.nacos.config.server-addr=这里写nacos的IP地址:端口号#spring.profiles.active=dev# 该配置影响统一配置中心中的dataId
spring.application.name=配置的名称Data Id

在nacos加上配置文件
在这里插入图片描述

相关文章:

Springboot新手开发 Cloud篇

前言&#xff1a; &#x1f44f;作者简介&#xff1a;我是笑霸final&#xff0c;一名热爱技术的在校学生。 &#x1f4dd;个人主页&#xff1a;个人主页1 || 笑霸final的主页2 &#x1f4d5;系列专栏&#xff1a;后端专栏 &#x1f4e7;如果文章知识点有错误的地方&#xff0c;…...

Linux:函数指针做函数参数

#include <stdio.h> #include <stdlib.h> //创建带有函数指针做参数的函数框架api //调用者要先实现回调函数 //调用者再去调用函数框架 //所谓的回调是指 调用者去调用一个带有函数指针做参数的函数框架&#xff0c;函数框架反过来要调用调用者提供的回调函数 …...

Vue3(递归组件) + 原生Table 实现树结构复杂表格

一、递归组件 什么是递归&#xff0c;Javascript中经常能接触到递归函数。也就是函数自己调用自己。那对于组件来说也是一样的逻辑。平时工作中见得最多应该就是菜单组件&#xff0c;大部分系统里面的都是递归组件。文章中我做了按需引入的配置&#xff0c;所以看不到我引用组…...

ArrayList底层源码解析

Java源码系列&#xff1a;下方连接 http://t.csdn.cn/Nwzed 文章目录前言一、**ArrayList底层结构和源码分析**无参构造调用创建ArrayList集合无参构造总结&#xff1a;发文3个工作日后 up 会把总结放入前言部分&#xff0c;但也诚邀读者总结&#xff0c;可放入评论区有参构造…...

python:DIY字符画的程序使用说明.doc

目录开发环境要求运行方法具体的操作步骤如下&#xff1a;代码示例源码及运行程序下载地址开发环境要求 本系统的软件开发及运行环境具体如下。 操作系统&#xff1a;Windows 7、Windows 10。 Python版本&#xff1a;Python 3.7.0。 开发工具&#xff1a;Python IDLE。 …...

【Python/Opencv】图像权重加法函数:cv2.addWeighted()详解

【Python/Opencv】图像权重加法函数&#xff1a;cv2.addWeighted()详解 文章目录【Python/Opencv】图像权重加法函数&#xff1a;cv2.addWeighted()详解1. 介绍2. API3. 代码示例与效果3.1 代码3.2 效果4. 参考1. 介绍 在OpenCV图像加法cv2.add函数详解详细介绍了图像的加法运…...

容器的老祖宗LXC和Docker的关系

一、什么是LXC&#xff1f; LXC&#xff08;Linux Container的缩写&#xff09;是一个基于Linux内核的容器虚拟化技术&#xff0c;它提供了一种轻量级、快速、简便的方式来创建和管理系统容器。与传统虚拟化技术不同&#xff0c;LXC并不会模拟硬件&#xff0c;而是利用Linux内…...

Webpack迁移Rspack速攻实战教程(前瞻版)

前言 rspack 即将开源&#xff0c;但社区中不乏有已经落地的 case &#xff0c;比如 rspack-migration-showcase 、 modern.js 等。 基于此&#xff0c;本文将介绍如何迁移一个近似于 CRA&#xff08; create-react-app &#xff09; 的项目到 rspack 。 在阅读本文前&#…...

一行代码“黑”掉任意网站

文章目录只需一行代码&#xff0c;轻轻一点就可以把任意网站变成暗黑模式。 首先我们先做一个实验&#xff0c;在任意网站中&#xff0c;打开浏览器开发者工具(F12)&#xff0c;在 C1onsole 控制台输入如下代码并回车&#xff1a; document.documentElement.style.filterinve…...

51单片机入门 -驱动 8x8 LED 点阵屏

硬件型号、软件版本、以及烧录流程 操作系统&#xff1a;Windows 10 x84-64单片机&#xff1a;STC89C52RC编译器&#xff1a;SDCC烧录软件&#xff1a;stcgal 1.6开发板&#xff1a;普中51单片机开发板A2套件&#xff08;2022&#xff09; 在 VS Code 中新建项目到烧录的过程…...

Xinlinx zynq7045国产替代 FMQL45T900全国产化 ARM 核心板+扩展板

TES745D 是一款基于 FMQL45T900 的全国产化 ARM 核心板。该核心板将 FMQL45T900&#xff08;与XC7Z045-2FFG900I 兼容&#xff09;的最小系统集成在了一个 87*117mm 的核心板上&#xff0c;可以作为一个核心模块&#xff0c;进行功能性扩展&#xff0c;能够快速的搭建起一个信号…...

硬刚ChatGPT!文心一言能否为百度止颓?中国版ChatGPT“狂飙”的机会在哪儿?

文章目录目录产品背景发展历程科技简介主要功能合作伙伴结语文心一言 &#xff08;英文名&#xff1a;ERNIE Bot&#xff09; *是百度基于文心大模型技术推出的生成式对话产品&#xff0c;被外界誉为“中国版ChatGPT”&#xff0c;将于2023年3月份面向公众开放。 [40] 百度在人…...

Python 异步: 在非阻塞子进程中运行命令(19)

动动发财的小手&#xff0c;点个赞吧&#xff01; 我们可以从 asyncio 执行命令。该命令将在我们可以使用非阻塞 I/O 写入和读取的子进程中运行。 1. 什么是 asyncio.subprocess.Process asyncio.subprocess.Process 类提供了由 asyncio 运行的子进程的表示。它在 asyncio 程序…...

蓝桥杯嵌入式第五课--输入捕获

前言输入捕获的考题十分明确&#xff0c;就是测量输入脉冲波形的占空比和频率&#xff0c;对我们的板子而言&#xff0c;就是检测板载的两个信号发生器产生的信号&#xff1a;具体来说就是使用PA15和PB4来做输入捕获。输入捕获原理简介输入捕获能够对输入信号的上升沿和下降沿进…...

Spring事务和事务传播机制

目录 Spring中事务的实现 1、通过代码的方式手动实现事务 2、通过注解的方式实现声明式事务 2.1、Transactional作用范围 2.2、Transactional参数说明 2.3、注意事项 2.4、Transactional工作原理 事务隔离级别 1、事务特性 2、Spring中设置事务隔离级别 2.1、MySQL事…...

基于OpenCV+CUDA实时视频抠绿、背景合成以及抠绿算法小结

一、关于抠绿 百度百科上描述抠绿“抠绿是指在摄影或摄像时,以绿色为背景进行拍摄,在后期制作时使用特技机的“色键”将绿色背景抠去,改换其他更理想的背景的技术。”绿幕的使用已经非常普遍,大到好莱坞大片,小到自媒体的节目,一些商业娱乐场景,几乎都用使用。但是很多非…...

MySQL 中的 UNION 语句

文章目录一、数据准备一、UNION 和 UNION ALL二、UNION 的执行顺序&#xff08;UNION 和其他语句一同出现&#xff09;三、MySQL 使用 UNION&#xff08;ALL&#xff09; ORDER 导致排序失效四、UNION 报错语法一、数据准备 -- 创建表 CREATE TABLE test_user (ID int(11) NO…...

高完整性系统工程(三): Logic Intro Formal Specification

目录 1. Propositions 命题 2.1 Propositional Connectives 命题连接词 2.2 Variables 变量 2.3 Sets 2.3.1 Set Operations 2.4 Predicates 2.5 Quantification 量化 2.6 Relations 2.6.1 What Is A Relation? 2.6.2 Relations as Sets 2.6.3 Binary Relations as…...

【linux】多线程概念详述

文章目录一、线程基本概念1.1 进程地址空间与页表1.2 页表结构1.3 线程的理解1.3.1 如何描述线程1.4 再谈进程1.5 代码理解1.5.1 原生库提供线程pthread_create1.6 资源共享问题1.7 资源私有问题二、总结2.1 什么是线程2.2 并行与并发2.3 线程的优点2.4 线程的缺点2.5 线程异常…...

【Java】P8 面向对象(3)方法 基本知识

面向对象 方法方法方法的声明权限修饰符返回值类型方法名形参列表方法体简单案例方法 方法 是对类或对象行为特征的抽象&#xff0c;用来完成某个功能的操作。方法的目的 是为了实现代码复用&#xff0c;减少冗余&#xff0c;简化代码&#xff1b;方法不能独立存在&#xff0c…...

MobaXterm实战:一站式打通串口调试与远程SSH管理

1. 为什么选择MobaXterm作为全能终端工具 第一次接触嵌入式开发时&#xff0c;我被各种终端工具搞得晕头转向——串口调试要用SecureCRT&#xff0c;SSH连接得开PuTTY&#xff0c;文件传输还得额外装WinSCP。直到同事推荐了MobaXterm&#xff0c;这个法国开发者打造的免费工具彻…...

循迹小车传感器布局与状态机编程避坑指南:从5路红外到精准过直角弯

循迹小车传感器布局与状态机编程避坑指南&#xff1a;从5路红外到精准过直角弯 在智能小车开发领域&#xff0c;循迹功能是最基础也最具挑战性的环节之一。许多创客和学生在完成硬件搭建后&#xff0c;往往会陷入软件调试的泥潭——小车要么频繁偏离轨道&#xff0c;要么在直角…...

Windows下pthread开发环境搭建:MinGW-w64与winpthreads实战指南

1. 项目概述&#xff1a;为什么要在Windows上折腾pthread&#xff1f;如果你是一个从Linux或Unix环境转向Windows平台的C/C开发者&#xff0c;第一次在Windows上尝试编译一个依赖pthread&#xff08;POSIX线程&#xff09;库的老项目时&#xff0c;大概率会碰一鼻子灰。编译器会…...

实在Agent物流对账全流程自动化方案与落地案例:2026智享财务新标杆

在2026年5月这个生成式AI深度重构实体经济的关键周期&#xff0c;全球物流行业已全面跨入“智能体&#xff08;Agent&#xff09;常态化运营”时代。根据《2026年全球供应链数字化趋势报告》显示&#xff0c;超过65%的大型物流企业已部署了具备自主决策能力的智能体来替代传统的…...

5步轻松上手:Grasscutter命令生成器实用指南

5步轻松上手&#xff1a;Grasscutter命令生成器实用指南 【免费下载链接】GrasscutterCommandGenerator Command Generator and Gacha Banner Editor 项目地址: https://gitcode.com/gh_mirrors/gr/GrasscutterCommandGenerator 还在为复杂的原神私服命令而烦恼吗&#…...

终极解决方案:3分钟免费恢复微信网页版完整访问权限

终极解决方案&#xff1a;3分钟免费恢复微信网页版完整访问权限 【免费下载链接】wechat-need-web 让微信网页版可用 / Allow the use of WeChat via webpage access 项目地址: https://gitcode.com/gh_mirrors/we/wechat-need-web 还在为微信网页版无法登录而烦恼吗&am…...

STM32篇-12.指针函数和函数指针

指针函数是什么指针函数是指返回值类型为指针的函数 比如&#xff1a;int* open(void) { return (an addr); }该函数返回的地址或者变量&#xff1b;函数指针是什么函数指针其实类似变量的指针&#xff1b; 比如下面&#xff1a;#include <stdio.h>void open(void) {prin…...

书成紫微动律定凤凰驯:抛开网络臆想歪论正视海棠山铁哥的大道凰标之道

——褪去网络流言&#xff0c;正视正统文脉网络世间众说纷纭&#xff0c;流言四起&#xff0c;诸多无根揣测、片面臆想肆意流传。 不少人未曾静心品读深意&#xff0c;仅凭只言片语便妄加评判&#xff0c;或是跟风曲解本意&#xff0c;或是刻意附会杂论&#xff0c;更有甚者凭空…...

数据结构第7章图:课后习题全解析(选择题+综合题+算法设计题,含DFS/BFS遍历、拓扑排序、最小生成树)

第7章 图 课后习题一、单项选择题1. 设无向图的顶点个数为 n&#xff0c;则该图最多有&#xff08;B &#xff09;条边。A. n−1 B. n(n−1)/2 C. n(n1)/2 D. n(n−1)解析&#xff1a; 无向完全图边数最多&#xff0c;每对顶点之间有一条边&#xff0c;总边数为 n(n−1)/2。2. …...

APK Installer完整指南:在Windows电脑上快速安装Android应用的终极解决方案

APK Installer完整指南&#xff1a;在Windows电脑上快速安装Android应用的终极解决方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经想在Windows电脑上直…...