01 项目架构

news2024/11/23 21:25:01

关于我

曾经就职于蚂蚁金服,多年的后端开发经验,对微服务、架构这块研究颇深,同时也是一名热衷于技术分享、拥抱开源技术的博主。

  • 个人技术公众号:码猿技术专栏
  • 个人博客:www.java-family.cn

前期一直在更新《Spring Cloud 进阶》这个专栏,很多读者觉得知识太杂了,想要我出个系统的实战项目将这些知识、中间件串联起来实战一下,这样能够加深理解。

在春节期间自己抽时间将新实战项目撸了起来,这是一个博客项目,系统架构如下图:

整个项目将Spring Cloud Alibaba的几个组件完全应用,贴近企业生产,作为练手项目再合适不过了。

涉及到以下9个服务:

服务名称描述
oauth-server认证中心
user-boot用户、权限服务
article-boot文章、分类服务
comments-boot评论服务
friendlinks-boot友链服务
gateway网关服务
monitor服务监控
picture-boot图片服务
file-server文件存储服务

开发中用到工具如下:

名称描述版本
Nacos注册中心、配置中心1.2.1
Seata分布式事务组件1.3.0
Skywalking分布式链路追踪组件8.7.0
Sentinel限流熔断组件1.7.1
Redis缓存数据库3.0
RabbitMQ消息组件3.7.11
ES搜索引擎7.1.
MySQL数据库5.6.0

开发中用到的后端技术:

名称描述
Spring BootMVC框架
Spring Cloud微服务框架
Spring Cloud Alibaba阿里系微服务框架
Spring Security安全认证框架
OpenFeign服务间调用组件
Nacos阿里系分布式配置、注册中心
Seata阿里系分布式事务解决框架
Sentinel阿里系限流熔断框架
Skywalking分布式链路追踪框架
RabbitMQ消息组件
Redis缓存数据库
MySQL持久化数据库
ElasticSearch全文搜索引擎
Druid阿里系数据库连接池
Spring Boot Admin服务监控
Nginx反向代理工具
Hutool三方工具包
JWT令牌技术
Kibana分析和可视化平台
MybatisORM框架

项目特点

  • 引入Nacos作为注册中心、分布式配置中心,开发便捷
  • 引入openFeign作为服务调用组件,贴近企业生产实际
  • 引入Seata作为分布式解决方案,使得分布式事务更加简单
  • 引入Sentinel作为限流熔断组件,使得微服务更加安全,通过配置再也不怕网站被爆破
  • 引入Skywalking作为分布式链路追踪组件,代码无侵入,使得异常分析,链路定位更加简单
  • 引入RBAC权限模型,灵活的权限控制,按钮级别的细粒度权限控制,满足绝大部分的权限需求
  • 引入Spring Security作为认证授权框架,完美集成OAuth2.0
  • 引入ElasticSearch作为全文检索服务
  • 引入Spring Boot Admin作为服务监控组件
  • 引入Swagger 文档支持,网关层聚合API文档,不用担心文档的编写
  • 引入RabbitMQ 消息队列,用于事件的异步拆解
  • 采用自定义参数校验注解,轻松实现后端参数校验
  • 采用 AOP + 自定义注解 + Redis 实现限制IP接口访问次数
  • 友好的代码结构及注释,便于阅读及二次开发
  • 实现前后端分离,通过 Json 进行数据交互,专注于后端技术,不用关心前端

面向人群

本教程面向Java Web开发者,对于初步掌握微服务开发技术的同学比较友好,可以直接学习。

对于缺乏一些基础知识同学也可以学习,教程内部都提供了对应的学习资源,理论+实战更加深入的学习。

你将学到什么

通过本系列教程,你将掌握以下技能:

  • Spring Cloud 的基础知识+实战,比如服务间调用openFeign,链路追踪Skywalking,网关Spring Cloud Gateway
  • Spring Cloud Alibaba各种组件的深入理解+实战,比如服务治理、配置组件Nacos,限流熔断组件Sentinel、分布式事务组件Seata
  • Spring Security、OAuth2.0、RBAC权限模型的基础知识+实战
  • 分布式事务各种解决方案、网关统一授权、JWT等相关知识点

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

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

相关文章

什么是美颜sdk?视频直播美颜sdk技术深度剖析

美颜sdk可以通过实时处理图像,提升主播或用户在视频直播中的外观。通过美颜sdk接口调用可以轻松实现美颜效果。美颜sdk的核心目标是在保持图像真实性的同时,为用户创造出最理想的美化效果。 一、美颜sdk的技术实现 1.面部识别技术:美颜sdk…

虚拟直播在文旅行业火爆发展!背后的“生意经”你抓住了吗?

自疫情结束以来,文化和旅游行业恢复势头强劲,各大旅游景点消费活跃度持续攀升。在这种情况下,“直播文旅”模式的深度融合对文旅行业的客流导入起到了极大的带动作用。 不过,当前的文旅直播也出现了一些问题&#xf…

流媒体播放器EasyPlayer播放H.265与H.264时进度条样式异常该如何解决?

H5无插件流媒体播放器EasyPlayer属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放,可支持H.264与H.265编码格式,性能稳定、播放流畅,能支持WebSocket-FLV、HTTP-FLV,HLS(m3u8&#…

北京 | 竹云与南方电网携手荣获“IDC 2023未来企业奖未来连接领导者”

11月22日-23日,2023第八届IDC中国数字化转型年度盛典在北京召开。本次大会以“竞放数字力量”为主题,汇聚超过1000位来自不同行业的大咖与伙伴共同参与此次盛会,从全球化视角出发,围绕本土化落地人工智能(大模型&#…

pytest系列——pytest_collection_modifyitems钩子函数修改测试用例执行顺序

前言 pytest默认执行用例是根据项目下的文件名称按ascii码去收集运行的;文件中的用例是从上往下按顺序执行的。 pytest_collection_modifyitems 这个函数顾名思义就是收集测试用例、改变用例的执行顺序的。 【严格意义上来说,我们在用例设计原则上用例…

NFTScan | 11.20~11.26 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期:2023.11.20~ 2023.11.26 NFT Hot News 01/ OKX Ordinals 市场 API 完成升级 11 月 21 日,OKX Ordinals 市场 API 现已完成升级,新增支持按币种单价查询、排序&…

TDA4VM EVM开发板调试笔记

文章目录 1. 前言2. 官网资料导读3. 安装 Linux SDK4. 制作SD 启动卡5. 验证启动1. 前言 TDA4作为一般经典的车规级SOC芯片,基于它的低阶智驾方案目前成为各家智驾方案公司的量产首选,这也使得基于TDA4的开发需求陡增,开发和使用TDA4既要熟悉Linux驱应用开发,还要熟悉传统…

uniapp基础-教程之HBuilderX配置篇-01

uniapp教程之HBuilderX配置篇-01 为什么要做这个教程的梳理,主要用于自己学习和总结,利于增加自己的积累和记忆。首先下载HBuilderX,并保证你的软件在C盘进行运行,最好使用英文或者拼音,这个操作是为了保证软件的稳定…

瑞芯微RK3588核心板在网络录像机产品中的应用与优势-迅为电子

你是否曾经想过,网络录像机是如何工作的?为什么它可以在没有电脑的情况下进行录像和监控?答案是,它依赖于RK3588核心板。那么,RK3588核心板到底在网络录像机产品中扮演着什么样的角色呢?它又具有哪些优势呢…

力扣:239. 滑动窗口最大值

题目&#xff1a; 给定一个数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 提示&#xff1a; 1 < nums.length < 10^5-10^4 < n…

使用UI Automation库用于UI自动化测试

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

NX二次开发UF_CURVE_ask_spline_data 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_ask_spline_data Defined in: uf_curve.h int UF_CURVE_ask_spline_data(tag_t spline_tag, UF_CURVE_spline_p_t spline_data ) overview 概述 Reads the spline data a…

FreeRTOS-任务管理

目录 任务管理 创建任务 创建任务示例1&#xff1a;创建两个同等级的任务 创建任务示例2&#xff1a;使用任务参数 删除任务 删除任务示例&#xff1a;删除任务 挂起任务 任务优先级 优先级实验&#xff1a;修改优先级 Tick 延时函数 延时示例 空闲任务 钩子函数…

创意二维码案例:意大利艺术家的最新二维码艺术展!

意大利艺术家——米开朗基罗皮斯特莱托&#xff08;Michelangelo Pistoletto&#xff09;的个人艺术展“二维码‘说’”&#xff08;QR CODE POSSESSION&#xff09;正在北京798艺术区的常青艺术画廊展出&#xff0c;这是一次别出心裁的创意艺术展&#xff01; 主要体现在3个方…

案例036:基于微信小程序的在线课堂系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

2019年3月28日 Go生态洞察:Go 2018调查结果分析

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

数据结构与算法编程题29

先序遍历二叉树&#xff08;非递归&#xff09;栈 #define _CRT_SECURE_NO_WARNINGS#include <iostream> using namespace std;typedef char ElemType; #define ERROR 0 #define OK 1 #define Maxsize 100 #define STR_SIZE 1024typedef struct BiTNode {ElemType data;B…

BetaFlight模块设计之三十七:SBUS

BetaFlight模块设计之三十七&#xff1a;SBUS 1. 源由2. sbus启动&动态任务3. 主要函数3.1 sbus初始化3.2 sbusFrameStatus更新3.3 rxFrameTimeUs3.4 sbusDataReceive接收数据 4. 辅助函数4.1 sbusChannelsDecode 5. 参考资料 1. 源由 接着BetaFlight模块设计之三十六&…

西北大学计算机844考研-23年计网计算题详细解析

西北大学计算机844考研-23年计网计算题详细解析 1.计算无传输差错状态下停止—等待ARQ协议效率,电磁波传播速率为2*10^8m/s&#xff0c;链路长为2000m&#xff0c;帧长度为1000比特&#xff0c;计算传输速率10kbps及10Mbps时的协议效率&#xff08;即信道利用率&#xff09; …

医院绩效考核管理系统项目源码

医院绩效考核体系该如何完善 一、合理制定绩效指标 绩效指标是医院绩效考核体系的重要部分&#xff0c; 而医院各科室的工作方法和目的各不相同、职责也不同。因此&#xff0c;医院要重视绩效指标的制定&#xff0c;并且从实际出发&#xff0c;根据各科室情况合理制定个性化的…