SpringCloud全家通新人入门手册

news2024/11/15 17:47:27

一、架构图

 二、springCloud全家桶组件库

三、Spring Cloud 实战项目全景规划

 

四、技术选型

第一阶段:搭建基础的微服务功能,实现微服务之间的通信;

1、服务治理:服务治理的重点是搭建基础的跨服务调用功能。我会把用户服务、优惠计算服务和订单服务改造成可以独立启动的微服务,并借助 Nacos 的服务发现功能,通过 Webflux 组件中的 WebClient 实现基于 HTTP 的跨服务间的调用;

2、负载均衡:在这部分,我们将在服务治理的基础上,引入 Loadbalancer 组件为跨服务调用添加负载均衡的能力。除此之外,我会对 Loadbalancer 组件的扩展接口做自定义开发,实现一个金丝雀测试的负载均衡场景;

3、简化服务调用:我将使用 OpenFeign 组件对用户服务进行改造,将原先复杂的 WebClient 调用替换为简洁的 OpenFeign 调用。

第二阶段:为各个模块构建服务容错、分布式配置中心、分布式链路追踪能力;

1、配置管理:配置管理的重点是将三个微服务应用接入到 Nacos Config 配置中心,使用远程配置中心存储部分配置项

2、。服务容错:搭建 Sentinel Dashboard 控制台,通过控制台将降级规则和流量整形规则应用到业务埋点中。

3、链路追踪:这部分的重点是搭建分布式链路追踪与日志系统。

第三阶段:进一步实现微服务网关、消息驱动和分布式事务。

1、搭建微服务网关作为统一流量入口;

2、使用消息驱动组件对接 RabbitMQ;

3、通过分布式事务保证数据一致性。

补充知识:

 

重要流程:创建一个单pom项目改为父子pom项目

0、检查idea是否在父模块pom中生成子模块

    <modules>
        <module>eureka</module>
    </modules>

1、子模块pom.xml添加

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>

2、使用Eureka搭建注册中心

        ① 通过idea创建一个maven模块

        ② 创建启动类 EurekaApplication

@EnableEurekaServer

        ③ 关闭链接到注册中心(不用自己链接自己)

spring.application.name=eureka
server.port=8761
eureka.client.fetch-registry=false
eureka.client.register-with-eureka=false

3、搭建server模块处理公共逻辑

① 使用方法:其他项目引入server模块的jar包

pom.xml

        <dependency>
            <groupId>com.course</groupId>
            <artifactId>server</artifactId>
        </dependency>

② 注册到Eureka注册中心模块

第一步、增加eureka client依赖 

pom.xml

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

 第二步、增加配置,注册中心地址

application.properties

spring.application.name=eureka
server.port=8761

eureka.client.fetch-registry=true
eureka.client.register-with-eureka=true
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/

第三步、启动类加EnableeurekaClient注解

@EnableEurekaClient

4、搭建路由模块-gateway

作用:网关主要功能:限流(流量控制);重试(请求失败时重试,慎用); 跨域(前后端不在同一个域);路由转发请求); 鉴权(登录校验,签名校验等

① 配置端口为9000表示路由

application.properties

spring.application.name=gateway
server.port=9000

注册到注册中心逻辑同上

② 路由转发

application.properties

spring.cloud.gateway.routes[0].id=system
spring.cloud.gateway.routes[0].uri=http://127.0.0.1:9001
spring.cloud.gateway.routes[0].predicates[0].name=Path
spring.cloud.gateway.routes[0].predicates[0].args[0]=/system/**
spring.cloud.gateway.routes[0].filters[0].name=LoginAdmin
spring.cloud.gateway.routes[0].filters[0].args[0]=true

5、搭建业务模块-system处理业务逻辑

① 配置公共请求头

application.properties

server.servlet.context-path=/system

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

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

相关文章

2023年国赛数学建模思路 - 案例:退火算法

文章目录 1 退火算法原理1.1 物理背景1.2 背后的数学模型 2 退火算法实现2.1 算法流程2.2算法实现 建模资料 ## 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 退火算法原理 1.1 物理背景 在热力学上&a…

让你专注于工作的电脑桌面日程提醒软件

在现代职场中&#xff0c;上班族们常常在繁忙的工作中会遇到各种各样的事情干扰。比如&#xff0c;当我们专注于完成重要的报告时&#xff0c;却又有同事来询问问题&#xff1b;在准备去会议事项时&#xff0c;手机却突然收到了一系列的短信和通知。这些干扰不仅浪费了我们的时…

Linux 内存管理 pt.1

今天我们来学习一下 Linux 操作系统核心之一&#xff1a;内存 跟 CPU 一样&#xff0c;内存也是操作系统最核心的功能之一&#xff0c;内存主要用来存储系统和程序的指令、数据、缓存等 关于内存的学习&#xff0c;我会尽量以通俗易懂的方式且分成多篇文章去讲解 那么今天在 pt…

电商商家花式整活,真蚌不住了

这年头&#xff0c;大数据永远比你自己更懂你&#xff0c;每个人手机里面的各种应用仿佛都是为自己量身定做的一般&#xff0c;总会准时准点推送你喜欢的内容。 我只是跟同事抱怨了一句“夏天太阳好晒”&#xff0c;转头淘宝就给我推防晒衣猜我喜欢&#xff1f;猜得很准&#…

echarts 饼图 值为0时页面显示undefined%的解决方案

当饼图的数据为0时&#xff0c;页面会出现 undefined% 的情况 值为0的数据&#xff1a; pieData: [{name: 分类一,value: 0,},{name: 分类二,value: 0,}, ], //饼图数据 页面显示为undefined% 我们可以通过 label 的 formatter 来进行自定义调整&#xff0c;具体点就是在 fo…

cesium学习记录08-鼠标绘制实体(点,线,矩形,圆,多边形)

上一篇学习了创建实体的一些基础知识&#xff0c;但有时还需要我们使用鼠标进行手动绘制&#xff0c;这一篇就来进行鼠标绘制实体的实现&#xff08;点&#xff0c;线&#xff0c;矩形&#xff0c;圆&#xff0c;多边形&#xff09;。 一、鼠标事件 既然是鼠标绘制&#xff…

Work Experience

上班工作体验感测算&#xff0c;纯属娱乐 这b班上的值不值测算版(1).xlsx https://download.csdn.net/download/spencer_tseng/88237617

Python开发环境(Visual Studio Code、Anaconda、PyInstaller、Enigma Virtual Box)

Python开发环境 [Anaconda、PyInstaller、Enigma Virtual Box] AnacondaAnaconda安装搭建Python环境Anaconda命令 Visual Studio CodeVisual Studio Code中Python设置Visual Studio Code中使用Qt Designer Python打包发布.exe可执行文件PyinstallerEnigma Virtual Box Anaconda…

Const的区别 学习笔记

C程序设计之const八大用法_哔哩哔哩_bilibili const优先修饰const左边&#xff0c;若左边没有东西&#xff0c;则修饰右边的东西 前两个a,b不是指针由于修饰的是int&#xff0c;是类型&#xff0c;所以a和b的值不能改变 c的类型的指针&#xff0c;const修饰的是int&#xff0…

Apinto 网关进阶教程,插件开发入门指南

Apinto 是基于Go语言&#xff0c;由 Eolink 自主研发的一款高性能、可扩展、易维护的云原生 API 网关。Apinto 能够帮助用户简单、快速、低成本、低风险地实现&#xff1a;系统微服务化、系统集成、向合作伙伴、开发者开放功能和数据。 通过 Apinto&#xff0c;企业能够专注于…

天锐绿盾加密软件——「文件数据防泄密系统」

文件加密功能 采用透明加解密技术&#xff0c; 企业内部文件自动加密&#xff0c;内部正常使用&#xff0c;不改变使用习惯。加密后的文件未经许可&#xff0c;私自外发拷贝到公司以外&#xff0c;都将显示为乱码无法使用&#xff0c;从源头上保障核心数据安全。 产品跨平台支持…

Vulhub之sick0s篇

靶场 靶机wp&#xff1a;【网络安全】sick0s 靶场实践之getshell - 知乎 靶机地址&#xff1a;https://download.vulnhub.com/sickos/sick0s1.1.7z 环境搭建 将虚拟机网络配置为nat与kali同一网络模式 kali扫描同一网段内存活的ip 访问目标端口web服务 3128端口是squid代理…

Python Pandas 处理Excel数据 制图

目录 1、饼状图 2、条形统计图 1、饼状图 import pandas as pd import matplotlib.pyplot as plt import numpy as np #from matplotlib.ticker import MaxNLocator # 解决中文乱码 plt.rcParams[font.sans-serif][SimHei] plt.rcParams[font.sans-serif]Microsoft YaHei …

Android事件分发机制被我翻烂了

作者&#xff1a;积木zz 这次说下Android中的事件分发机制 从开始点击屏幕开始&#xff0c;就会产生从Activity开始到decorview一直到最里层的view一连串事件传递。每一层view或者viewgroup都会首先调用它的dispatchTouchEvent方法&#xff0c;然后判断是否就在当前一层消费掉事…

软件设计风格(干货)-架构师之路(九)

一、软件架构风格概念 Architecture架构&#xff0c;体系结构 软件体系结构风格是 描述某一特定应用领域中 系统组织方式 的惯用模式。架构风格定义一个系统家族&#xff0c;即 一个架构的定义、一个词汇表和一组约束。词汇表包含 一些构建和连接类型&#xff0c;而一组约束 …

监控 FTP 服务器

文件传输协议 &#xff08;FTP&#xff09; 用于在 TCP/IP 网络中的服务器和客户端之间传输文件&#xff0c;它是一种标准协议&#xff0c;广泛用于在各个垂直行业的组织之间从集中位置存储和分发数据。FTP协议的其他一些安全版本如下&#xff1a; SSH 文件传输协议 &#xff…

SpringBoot-1-Spring Boot实战:快速搭建你的第一个应用,以及了解原理

SpringBoot-1-Spring Boot实战&#xff1a;快速搭建你的第一个应用&#xff0c;以及了解原理 今日内容 SpringBootWeb入门 前言 我们在之前介绍Spring的时候&#xff0c;已经说过Spring官方(Spring官方)提供很多开源项目&#xff0c;点击projects&#xff0c;看到spring家族…

中国CV军团,危矣?!

大数据产业创新服务媒体 ——聚焦数据 改变商业 近期&#xff0c;云从科技发布了2023年半年报。应该说&#xff0c;云从科技交出的成绩单很不好。事实上&#xff0c;商汤、旷视等CV厂商的情况也好不到哪去。云从科技的处境有一定的代表性&#xff0c;因此&#xff0c;我们将通…

Python“牵手”拼多多商品评论数据采集方法,拼多多API申请步骤说明

拼多多平台API接口是为开发电商类应用程序而设计的一套完整的、跨浏览器、跨平台的接口规范&#xff0c;拼多多API接口是指通过编程的方式&#xff0c;让开发者能够通过HTTP协议直接访问拼多多平台的数据&#xff0c;包括商品信息、店铺信息、物流信息&#xff0c;评论数据等&a…

国内常见的几款可视化Web组态软件

组态软件是一种用于控制和监控各种设备的软件&#xff0c;也是指在自动控制系统监控层一级的软件平台和开发环境。这类软件实际上也是一种通过灵活的组态方式&#xff0c;为用户提供快速构建工业自动控制系统监控功能的、通用层次的软件工具。通常用于工业控制&#xff0c;自动…