SpringCloud微服务实战系列:01让SpringCloud项目在你机器上运行起来

news2024/12/15 14:32:31

目录

项目选型

项目安装-本地运行起来

软件安装:

项目启动:

总结&答疑


项目选型

软件开发,基本上都不会从0开始,一般都是在其他项目或者组件的基础上进行整合优化迭代,站在巨人肩膀上才能看得更远, 其实这条规则也适用于任何行业。

软件项目组件选型最好的地方就是公有git库 ,最出名是: GitHub · Build and ship software on a single, collaborative platform · GitHub    Gitee - 基于 Git 的代码托管和研发协作平台   国内的

找一个符合国人习惯的springcloud项目,通过搜索发现芋道spring boot 系列遥遥领先: 

选择springcloud 版本,关于SpringBoot和SpringCloud的关系请看我另外一篇文章: 

Spring、SpringBoot、SpringCloud关系是什么?你真的需要SpringCloud吗?-CSDN博客

项目安装-本地运行起来

芋道官网提供了比较详细的安装步骤,本章主要介绍我习惯使用的好的软件和安装过程中遇到的问题和解决方案。

搭建yudao-cloud 必须依赖的软件有:

IntelliJ IDEA java 集成开发环境,商业软件,非常好用,java程序员标配
mysql  server 8.2.0   和  yudao-cloud 源码里面sql文件版本一致,避免sql版本兼容问题产生麻烦
DBeaver sql客户单,基于jdbc连接,支持各种数据库,非常好用,开源软件
git 拉项目源码:  https://gitee.com/zhijiantianya/yudao-cloud  
redis  server缓存, yudao-cloud 必须依赖组件

AnotherRedisDesktopManager

开源redis 客户端
nacos-serveryudao-cloud 注册中心

软件安装:

1. IntelliJ IDEA    git   jdk17 安装步骤省略

需要下载两个项目: 

yuddao-cloud  java后端:      https://gitee.com/zhijiantianya/yudao-cloud    

yudao-demo  vue前端:    https://gitee.com/yudaocode/yudao-demo   

yuddao-cloud  导入到idea 后,切换到 master-jdk17分支,  springboot3  需要jdk17 

前端项目导入后, 我们直接用vue3的版本:

代码拉下来后,其实目录结构有点问题,不是maven的标准结构,IDEA导入后识别不了ElementPlusApplication.java ,解决办法:新建src目录, 把main拖到src里面去,点击右上角maven刷新按钮

2. mysql  server  安装注意事项:

版本: 8.2.0

为了避免yudao-cloud源码里面改一堆配置文件,端口,root密码和源码保持一致:

端口:3306

root 密码: 123456 

3. DBeaver 安装:安装完成后,创建一个mysql 连接

连接过程中如果出现 PublicKeyRetrieval 相关错误,将驱动属性这个值改成true .

4.DBeaver 连接成功后,建库:  ruoyi-vue-pro

5. DBeaver 里面执行sql, 建表: 

不要将sql粘贴到DBeaver 的Sql窗口执行,因为该文件是sqldump出来的,执行会报错。

你可以用DBeaver导入(DBeaver底层也是命令行,命令见第三张图红框内容),也可以直接用mysql 命令行导入:

5.  安装redis-server 和客户端: 

为了简单,我习惯docker 安装 redis-server
 

docker pull redis:7.2.6    

docker run  -p 6379:6379  --name redis7   -d   redis:7.2.6  

AnotherRedisDesktopManager客户单 测试redis 是否安装成功: 

6.  安装nacos-server 单机版:

docker 安装, nacos-server 需要把多个端口映射出来。

docker pull nacos/nacos-server:2.0.2

#注意这里要映射多个端口:
docker run --name nacos -e MODE=standalone -p 8848:8848  -p 9848:9848   -d nacos/nacos-server:2.0.2

你也可以选择本机安装, nacos-server也是spring-boot开发的

单机版启动的时候需要加参数  startup.cmd   -m standalone ,否则会报错

cd  D:\Program Files\nacos-server-2.4.3\nacos\bin

.\startup.cmd -m standalone

安装完成登录并创建namespace 

http://127.0.0.1:8848/nacos/index.html#/login  用户名/密码:nacos/nacos

 

项目启动:

启动后端,只要启动gateway 和  system 这两个模块就可以看效果了。

启动后查看nacos注册中心数据(需要切换到dev namespace):

启动前端:

浏览器访问:

http://localhost:2048/

总结&答疑

1. 这是一个spring微服务项目吗?为什么微服务很多组件、概念这里没涉及? 

这是基于springcloud的微服务,最精简版, 只用了2个与微服务概念相关的服务治理组件,所有的微服务架构必须要有这2个组件。

gateway : 业务网关

nacos:  注册中心

2. yudao-demo 这个明显是java项目,为什么叫前端项目?

这里就是将前端源码编译后,直接放到springboot项目里,springboot内置了一个tomcat,这里整个 yudao-demo 项目就是个tomcat , 充当一个静态文件服务器角色 

前端nodejs+vue 技术栈也比较复杂,如果没写过vue的后端直接用vue源码编译,估计很费劲,原作者为了让后端开发快速上手就用了这么个变通方法,考虑的很周到。目前为了快速演示,先这么运行着,后面再讲vue前端源码。

3.项目架构和各组件调用关系: 

静态文件部分: 

浏览器 ---->  yudao-demo(tomcat+静态js 图片等文件)---> 静态文件返回给浏览器完成页面渲染

接口数据部分:

浏览器页面(js发起的ajax请求)---->gateway(统一转发到后端各个模块,借助nacos注册中心) -----> 后端各个业务模块(目前只启动了 system-server)  

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

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

相关文章

Python鼠标轨迹算法(游戏防检测)

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序,它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言,原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势: 模拟…

npm error Error: Command failed: F:\360Downloads\Software\nodejs\node.exe

前言: 电脑环境:win7 node版本:18.20.0 npm版本:10.9.2 情景再现:电脑上是存在的vuevite的项目且可以正常运行。想着摸鱼的时间复习一下ts语法,所以想创建一个demo。按照 开始 | Vite 官方中文文档 官网创建…

软件工程 设计的复杂性

复杂性代表事件或事物的状态,它们具有多个相互关联的链接和高度复杂的结构。在软件编程中,随着软件设计的实现,元素的数量以及它们之间的相互联系逐渐变得庞大,一下子变得难以理解。 如果不使用复杂性指标和度量,软件…

大屏开源项目go-view二次开发3----象形柱图控件(C#)

环境搭建参考: 大屏开源项目go-view二次开发1----环境搭建(C#)-CSDN博客 要做的象形柱图控件最终效果如下图: 其实这个控件我前面的文章也介绍过,不过是用wpf做的,链接如下: wpf利用Microsoft.Web.WebView2显示html…

ORB-SLAM3源码学习:G2oTypes.cc: void EdgeInertial::computeError 计算预积分残差

前言 这部分函数涉及了g2o的内容以及IMU相关的推导内容,需要你先去进行这部分的学习。 1.函数声明 void EdgeInertial::computeError() 2.函数定义 涉及到的IMU的公式: {// TODO Maybe Reintegrate inertial measurments when difference between …

Kafka - 消息乱序问题的常见解决方案和实现

文章目录 概述一、MQ消息乱序问题分析1.1 相同topic内的消息乱序1.2 不同topic的消息乱序 二、解决方案方案一: 顺序消息Kafka1. Kafka 顺序消息的实现1.1 生产者:确保同一业务主键的消息发送到同一个分区1.2 消费者:顺序消费消息 2. Kafka 顺…

[MoeCTF 2021]unserialize

[广东强网杯 2021 团队组]欢迎参加强网杯 这题简单&#xff0c;flag直接写在脸上 NSSCTF {Wec10m3_to_QwbCtF} [MoeCTF 2021]unserialize <?phpclass entrance {public $start;function __construct($start){// 构造函数初始化 $start 属性$this->start $start;}fun…

舌头分割数据集labelme格式2557张1类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数)&#xff1a;2557 标注数量(json文件个数)&#xff1a;2557 标注类别数&#xff1a;1 标注类别名称:["tongue"] 每个类别标注的框数&#xff1…

回归预测 | Matlab实现基于BiLSTM-Adaboost双向长短期记忆神经网络结合Adaboost集成学习回归预测

目录 效果一览基本介绍模型设计程序设计参考资料效果一览 基本介绍 回归预测 | Matlab实现基于BiLSTM-Adaboost双向长短期记忆神经网络结合Adaboost集成学习回归预测 模型设计 基于BiLSTM-Adaboost的回归预测模型结合了双向长短期记忆神经网络(BiLSTM)和Adaboost集成学习的…

Unity学习笔记(二)如何制作角色动画

前言 本文为Udemy课程The Ultimate Guide to Creating an RPG Game in Unity学习笔记 创建一个角色 我们的目的是创建一个可移动、跳跃、冲刺等动作的角色 需要的组件&#xff1a;Rigidbody&#xff08;用于创建物理规则&#xff09;、Collider&#xff08;用于检测碰撞&am…

嵌入式入门Day30

IO Day5 线程相关函数pthread_createpthread_selfpthread_exitpthread_join\pthread_detachpthread_cancelpthread_setcancelstatepthread_setcanceltype 作业 线程 线程是轻量化的进程&#xff0c;一个进程内可以有多个线程&#xff0c;至少包含一个线程&#xff08;主线程&a…

【Ubuntu】双硬盘安装双系统 Windows 和 Ubuntu

【Ubuntu】双硬盘安装双系统 Windows 和 Ubuntu 1 安装顺序2 Ubutnu 20.042.1 准备工作2.2 自定义分区2.3 遇到的一些问题 1 安装顺序 我选择先在一块 SSD 上安装 Windows 再在另一块 SSD 上安装 Ubuntu&#xff0c;建议先安装 Windows 2 Ubutnu 20.04 2.1 准备工作 制作启…

【Qt】QWidget中的常见属性及其功能(一)

目录 一、 enabled 例子&#xff1a; 二、geometry 例子&#xff1a; window fram 例子 &#xff1a; 四、windowTiltle 五、windowIcon 例子&#xff1a; qrc机制 创建qrc文件 例子&#xff1a; qt中的很多内置类都是继承自QWidget的&#xff0c;因此熟悉QWidget的…

iOS swift开发系列 -- tabbar问题总结

1.单视图如何改为tabbar&#xff0c;以便显示2个标签页 右上角➕&#xff0c;输入tabbar 找到控件&#xff0c;然后选中&#xff0c;把entrypoint移动到tabbar控件 2.改成tabbar&#xff0c;生成两个item&#xff0c;配置各自视图后&#xff0c;启动发现报错 Thread 1: “-[p…

Muduo网络库解析--网络模块(2)

前文 重写Muduo库实现核心模块的Git仓库 注&#xff1a;本文将重点剖析 Muduo 网络库的核心框架&#xff0c;深入探讨作者精妙的代码设计思路&#xff0c;并针对核心代码部分进行重写&#xff0c;将原本依赖 boost 的实现替换为原生的 C11 语法。需要说明的是&#xff0c;本文…

电脑怎么设置通电自动开机(工控机)

操作系统&#xff1a;win10 第一步&#xff0c;电脑开机时按del键进入bios页面。 第二步&#xff0c;选择advanced下的IT8712 Super IO Configuration 第三步&#xff0c;找到Auto Power On&#xff0c;将其从Power off设置为Power On 第四步&#xff0c;F10保存&#xff0c;大…

如何对小型固定翼无人机进行最优的路径跟随控制?

控制架构 文章继续采用的是 ULTRA-Extra无人机&#xff0c;相关参数如下&#xff1a; 这里用于guidance law的无人机运动学模型为&#xff1a; { x ˙ p V a cos ⁡ γ cos ⁡ χ V w cos ⁡ γ w cos ⁡ χ w y ˙ p V a cos ⁡ γ sin ⁡ χ V w cos ⁡ γ w sin ⁡ χ…

基于Redis实现令牌桶算法

基于Redis实现令牌桶算法 令牌桶算法算法流程图优点缺点 实现其它限流算法 令牌桶算法 令牌桶是一种用于分组交换和电信网络的算法。它可用于检查数据包形式的数据传输是否符合定义的带宽和突发性限制&#xff08;流量不均匀或变化的衡量标准&#xff09;。它还可以用作调度算…

学习threejs,局部纹理刷新,实现图片分块加载

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️Texture 贴图 二、&#x1…

超标量处理器设计笔记(10) 寄存器重命名过程的恢复、分发

重命名 寄存器重命名过程的恢复使用 Checkpoint 对 RAT 进行恢复使用 WALK 对 RAT 进行恢复使用 Architecture State 对 RAT 进行恢复总结 分发&#xff08;Dispatch&#xff09; 寄存器重命名过程的恢复 当发生异常、分支预测失败时&#xff0c;指令占用 RAT、ROB 和 Issue …