微服务探索:nuoyi-cloud(诺伊)

news/2024/4/25 20:22:34/文章来源:https://blog.csdn.net/weixin_35804181/article/details/130385184

一、环境部署

1.准备工作

JDK >= 1.8 (推荐1.8版本)
Mysql >= 5.7.0 (推荐5.7版本)
Redis >= 3.0
Maven >= 3.0
Node >= 10
nacos >= 1.1.0
sentinel >= 1.6.0
测试系统:Ubuntu 20.04.2 LTS

2.MYSQL安装

  • 安装指令:sudo bash msmysql.pkg

  • 软件版本:5.7.33

3.REDIS安装

  • 安装指令:sudo bash msredis.pkg

  • 软件版本:5.0.3

4.JDK安装

  • 安装指令:sudo bash mstomcat.pkg

  • 软件版本:1.8.0_191

5.MINIO安装

  • 安装指令:sudo bash msminio.pkg

  • 软件版本:2021-06-17T00:10:46Z

  • 本地访问:浏览器输入http://localhost:9000

  • 默认账号admin,密码为msos123minio

6.SENTIEL(哨兵)安装

  • Sentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。

  • 下载地址:sentinel-dashboard-1.8.1.jar

  • 软件版本:1.8.1

  • 安装指令:/usr/lib/jdk/jdk1.8/bin/java -jar /home/sugao/Downloads/sentinel-dashboard-1.8.1.jar --server.port=8718

  • 本地访问:浏览器输入http://localhost:8718

  • 默认账号密码均为sentinel

8.RABBITMQ安装

  • 安装脚本
#!/bin/sh
sudo apt-get install curl gnupg debian-keyring debian-archive-keyring apt-transport-https -y
## Team RabbitMQ's main signing key
sudo apt-key adv --keyserver "hkps://keys.openpgp.org" --recv-keys "0x0A9AF2115F4687BD29803A206B73A36E6026DFCA"
## Launchpad PPA that provides modern Erlang releases
sudo apt-key adv --keyserver "keyserver.ubuntu.com" --recv-keys "F77F1EDA57EBB1CC"
## PackageCloud RabbitMQ repository
sudo apt-key adv --keyserver "keyserver.ubuntu.com" --recv-keys "F6609E60DC62814E"## Add apt repositories maintained by Team RabbitMQ
sudo tee /etc/apt/sources.list.d/rabbitmq.list <<EOF
## Provides modern Erlang/OTP releases
##
## "focal" as distribution name should work for any reasonably recent Ubuntu or Debian release.
## See the release to distribution mapping table in RabbitMQ doc guides to learn more.
deb http://ppa.launchpad.net/rabbitmq/rabbitmq-erlang/ubuntu focal main
deb-src http://ppa.launchpad.net/rabbitmq/rabbitmq-erlang/ubuntu focal main## Provides RabbitMQ
##
## "focal" as distribution name should work for any reasonably recent Ubuntu or Debian release.
## See the release to distribution mapping table in RabbitMQ doc guides to learn more.
deb https://packagecloud.io/rabbitmq/rabbitmq-server/ubuntu/ focal main
deb-src https://packagecloud.io/rabbitmq/rabbitmq-server/ubuntu/ focal main
EOF## Update package indices
sudo apt-get update -y## Install Erlang packages
sudo apt-get install -y erlang-base \erlang-asn1 erlang-crypto erlang-eldap erlang-ftp erlang-inets \erlang-mnesia erlang-os-mon erlang-parsetools erlang-public-key \erlang-runtime-tools erlang-snmp erlang-ssl \erlang-syntax-tools erlang-tftp erlang-tools erlang-xmerl## Install rabbitmq-server and its dependencies
sudo apt-get install rabbitmq-server -y --fix-missingrabbitmq-plugins enable rabbitmq_managementservice rabbitmq-server restart
  • 本地访问:浏览器输入http://localhost:15672,默认账号密码均为guest

9.ideaIU安装

  • 下载ideaIU-2021.1.tar.gz,并解压安装;

10.工程导入和初始化

  • 获取源码:git clone https://gitee.com/y_project/RuoYi-Cloud

  • 将源码导入Ided工程:File>New>Project from Exsiting Sources…

  • 导入源码后,等待idea自动下载相关依赖;

  • 配置SDK:File>Project Structure>Project

  • 配置数据库:Database>+>Data Source>Mysql>配置名称,数据库密码和帐号,数据库名称。本次配置如下:

      配置名称                     数据库名称
    (必选)msavskit               msavskit
    (必选)msavskit_config        msavskit_config
    (可选)msavskit_seata         msavskit_seata
    
  • 创建数据库,使用以下指令:

    sudo mysql -uroot -pmsos123mysql -e "create database IF NOT EXISTS msavskit" 
    sudo mysql -uroot -pmsos123mysql -e "create database IF NOT EXISTS msavskit_config" 
    sudo mysql -uroot -pmsos123mysql -e "create database IF NOT EXISTS msavskit_seata" 
    
  • 执行相关sql文件。注意ry_config_20210531.sql和ry_seata_20210128.sql会创建文件中设定的数据库,执行后数据库

       sql文件名称                     数据库名称             备注(必选)ry_20210608.sql          msavskit(必选)ry_config_20210531.sql   msavskit_config      需要修改sql文件中的数据库名称为msavskit_config,否则默认创建的数据库为ry-config(可选)quartz.sql               msavskit      (可选)ry_seata_20210128.sql    msavskit_seata       需要修改sql文件中的数据库名称为msavskit_seata,否则默认创建的数据库为ry-seata
    

6.NACOS安装

  • 下载地址:[nacos-server-2.0.2.tar.gz](https://github.com/alibaba/nacos/releases/download/2.0.2/nacos-server-2.0.2.tar.gz)
  • 软件版本:2.0.2
  • 修改 application.properties 配置文件,启用mysql作为nacos的数据库
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/msavskit_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=msos123mysql
  • 启动nacos注册中心

  • 在nacos/bin/startup.sh脚本中增加JDK的环境变量

    ulimit -n 1000000
    export JAVA_HOME=/usr/lib/jdk/jdk1.8
    export JRE_HOME=/usr/lib/jdk/jdk1.8/jre 
    export PATH=$JAVA_HOME/bin:$PATH 
    export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib 
    
  • 启动服务

    bash nacos/bin/startup.sh -m standalone
    
  • 本地访问:浏览器输入http://localhost:8848/nacos/index.html

  • 默认账号和密码:nacos

  • 登陆nacos后,修改配置:配置管理>配置列表中的所有redis和mysql的配置(帐号、密码、数据库名称等)

11.启动基础模块(没有先后顺序)

  • RuoYiGatewayApplication 网关模块 必须(修改服务端口为9080,修改)
  • RuoYiAuthApplication 认证模块 必须
  • RuoYiSystemApplication 系统模块 必须
  • RuoYiMonitorApplication 监控中心 可选
  • RuoYiGenApplication 代码生成 可选
  • RuoYiJobApplication 定时任务 可选
  • RuoYFileApplication 文件服务 可选

12.微服务

12.1.服务网关

  • 统一系统对外入口:微服务的应用可能部署在不同机房,不同地区,不同域名下,当有网关后,客户端相关的请求直接发送到网关,由网关根据请求标识解析判断出具体的微服务地址,再把请求转发到微服务实例。
  • 使用的框架技术:Spring Cloud Gateway旨在提供一种简单而有效的方法来路由到API,并为它们提供跨领域的关注点,例如:安全性、监视/指标、限流、熔断降级、黑名单、白名单等。
  • 核心概念:
    路由(Route):路由信息由 ID、目标 URI、一组断言和一组过滤器组成。如果断言路由为真,则说明请求的URI和配置匹配。
    断言(Predicate):Spring Cloud Gateway 中的断言函数输入类型是 Spring 5.0 框架中 的 ServerWebExchange。Spring Cloud Gateway 中的断言函数允许开发者去定义匹配来自于 Http Request 中的任何信息,比如请求头和参数等。
    过滤器(Filter):Spring Cloud Gateway 中的 Filter 分为两种类型,分别是 Gateway Filter 和 Global Filter。过滤器将会对请求和响应进行处理。

12.2.配置中心

  • 配置中心是一种统一管理各种应用配置的基础服务组件,配置中心将配置从各应用中剥离出来,对配置进行统一管理;
  • Nacos是阿里巴巴开源的一个易于构建云原生应用的动态服务发现、配置管理和服务管理平台;
  • 配置文件加载的优先级(由高到低):bootstrap.properties > bootstrap.yml > application.properties > application.yml
  • 支持集群部署;

12.2.3.服务调用

  • 服务调用:服务之间的接口互相调用,在微服务架构中很多功能都需要调用多个服务才能完成某一项功能。

  • Feign 是Spring Cloud Netflix组件中的一量级Restful的 HTTP 服务客户端,实现了负载均衡和 Rest 调用的开源框架,封装了RibbonRestTemplate, 实现了WebService的面向接口编程,进一步降低了项目的耦合度。

  • Feign不支持Spring MVC的注解,它使用自己的一套注解,为了更方便的使用,Spring Cloud孵化了OpenFeign支持Spring MVC的注解

12.2.4.服务监控

  • 监视当前系统应用状态、内存、线程、堆栈、日志等等相关信息,主要目的在服务出现问题或者快要出现问题时能够准确快速地发现以减小影响范围。
  • spring boot actuator 服务监控接口,actuator是监控系统健康情况的工具
  • Spring Boot Admin是一个针对spring-boot的actuator接口进行UI美化封装的监控工具。可以在列表中浏览所有被监控spring-boot项目的基本信息,详细的Health信息、内存信息、JVM信息、垃圾回收信息、各种配置信息(比如数据源、缓存列表和命中率)等,还可以直接修改logger的level
  • http://localhost:9100,帐号ruoyi,密码123456

12.2.5.系统接口

  • 通过Swagger,可以在写代码的时候,稍加几个注解,文档接口自动生成

12.2.6.应用容器

https://docs.docker.com/engine/install/ubuntu/

卸载旧版本容器

 sudo apt remove docker docker-engine docker.io containerd runcsudo apt updatesudo apt install apt-transport-https ca-certificates curl gnupg lsb-releasecurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpgecho "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullsudo apt updatesudo apt install docker-ce docker-ce-cli containerd.iosudo docker run hello-world

12.2.6.2.卸载容器引擎

 sudo apt purge docker-ce docker-ce-cli containerd.iosudo rm -rf /var/lib/dockersudo rm -rf /var/lib/containerd

13.前端运行

  • 进入项目目录:cd ruoyi-ui
  • 安装依赖:npm install --registry=https://registry.npm.taobao.org
  • 启动项目:npm run dev
  • 本地访问:浏览器输入http://localhost:80
  • 默认账户admin,密码 admin123

14.端口情况

  • 平台页面服务:http://localhost:80,账户admin,密码 admin123
  • 网关gateway:8080
  • 哨兵服务:http://localhost:8718,账号密码均为sentinel
  • nacos配置中心服务:http://localhost:8848/nacos/index.html,账号和密码nacos
  • 服务监控服务:http://localhost:9100,帐号ruoyi,密码123456
  • 认证auth:9200

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Win11打开移动热点后电脑无法上网怎么办?

Win11打开移动热点后电脑无法上网怎么办&#xff1f;有用户将自己的电脑开启移动热点来使用的时候&#xff0c;发现自己的电脑出现了无法上网的情况。那么为什么开启热点之后&#xff0c;就会无法进行上网呢&#xff1f;来看看以下的解决方法分享吧。 Win11打开移动热点无法上网…

【Python】matplotlib画散点图,并根据目标列的类别来设置颜色区间(含源代码及参数解释)

最近在进行绘图时&#xff0c;遇到了matplotlib画散点图&#xff0c;并根据目标列的类别来设置颜色区间的问题&#xff0c;但是实现的过程较为艰辛。 文章目录 一、数据准备二、第一次尝试&#xff08;失败及其原因&#xff09;2.1 失败2.2 原因 三、第二次尝试&#xff08;成功…

算法记录lday3 LinkedList 链表移除 + 链表构建 + 链表反转reverse

今日任务 ● 链表理论基础 ● 203.移除链表元素 ● 707.设计链表 ● 206.反转链表 链表理论基础 建议&#xff1a;了解一下链接基础&#xff0c;以及链表和数组的区别 文章链接&#xff1a;https://programmercarl.com/%E9%93%BE%E8%A1%A8%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A…

JavaWeb搭建| Tomcat配置| Maven依赖|这一篇就够了(超详细)

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;老茶icon &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开兴好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;计…

记录自己第一次项目管理(附件:WBS计划与会议纪要模板)

记录自己第一次项目管理 前言 20**年新入职到一家公司&#xff0c;刚到就接到紧急任务&#xff0c;因为上一个后端跑路&#xff0c;现在系统上出现接口报错、假接口的问题&#xff0c;客户又着急验收&#xff0c;所以入职之后&#xff0c;一直在着急改代码。最后因为系统没有…

思科模拟器 | 生成树协议STP、RSTP、HSRP配置

一、生成树协议STP 概念介绍&#xff1a; 生成树协议是一种网络协议&#xff0c;用于在交换机之间建立逻辑上的树形拓扑结构避免产生环路。为了完成这个功能&#xff0c;生成树协议需要进行些配置&#xff0c;包括根桥的选举、端口的状态切换等。 步骤明细&#xff1a; 使用思…

游戏测试的面试技巧

游戏测试的面试技巧 1.自我介绍 回答提示&#xff1a;一般人回答这个问题过于平常&#xff0c;只说姓名、年龄、爱好、工作经验 &#xff0c;这些在简历上都有&#xff0c;其实&#xff0c;企业最希望知道的是求职者能否胜任工作&#xff0c;包括&#xff1a;最强的技能、最深入…

实现PXE批量网络装机及kickstrat无人值守安装(富士山终究留不住欲落的樱花)

一、PXE概述和部署PXE批量装机 1.PXE简介 PXE&#xff08;预启动执行环境&#xff0c;在操作系统之前运行&#xff09;是由Intel公司开发的网络引导技术&#xff0c;c/s架构&#xff0c;允许客户机通过网络从远程服务器下载引导镜像&#xff0c;并加载安装文件或者整个操作系统…

燃气管道定位83KHZ地下电子标识器探测仪ED-8000操作指南

1、电子标识器探测工作 燃气管道定位83KHZ地下电子标识器探测仪ED-8000&#xff0c;探测时周边 3 米范围内不能有其他探测仪&#xff0c;保持探测仪垂直向 下&#xff0c;探测仪的末端距离地面 5~10cm 左右&#xff0c;延估计的埋地管线走向水平移动探测仪。当发现持续信号且信…

RuntimeError: “LayerNormKernelImpl“ not implemented for ‘Long‘解决方法

问题出现的场景&#xff1a; 输入&#xff1a; import torch import torch.nn as nn atorch.randint(10,[3,4]) # atorch.DoubleTensor(a) # aa.double() print(a) layer_normnn.LayerNorm(4) layer_norm(a) 我就是想测试一下经过layernorm之后的输出会变成什么样 但是报错…

量表题如何分析?

量表是一种测量工具&#xff0c;量表设计标准有很多&#xff0c;并且每种量表的设计都有各自的特性&#xff0c;不同量表的特性也决定了测量尺度&#xff0c;在数据分析中常用的量表为李克特量表。李克特量表1932年由美国社会心理学家李克特在当时原有总加量表的基础上进行改进…

eBPF的发展演进---从石器时代到成为神(二)

3. 发展溯源 回顾技术的发展过程&#xff0c;就像观看非洲大草原日出日落一样&#xff0c;宏大的过程让人感动&#xff0c;细节部分引人深思。每天循环不辍&#xff0c;却又每天不同。 BPF的应用早已超越了它最初的设计&#xff0c;但如果要追溯BPF最初的来源&#xff0c;则必…

kubernetes为何需要默认的serviceaccount?

文章目录 什么是k8s的serviceAccount&#xff1f;为什么每一个ns下都有默认的sa&#xff1f;default sa yaml 默认的sa下都会挂一个secret&#xff0c;这个secret是从哪里来的&#xff1f;一道关于RBAC的CKA考题1、创建一个新的 ServiceAccount2、创建一个新的 Role3、创建一个…

2023_8.0.33版windows版MySql安装_配置远程连接_修改设置初始密码---MySql工作笔记0001

MySQL :: Download MySQL Community Server https://dev.mysql.com/downloads/mysql/ 首先去下载mysql 可以看到这里下载第一个就可以了,最新版的8.0.33 这里点击仅仅下载 just start my download 然后解压到一个文件夹,然后配置一下环境变量 然后新建一个my.ini文件 然后把…

【GNN】谱域图卷积

谱域图卷积 1. 谱域卷积的背景知识 1.1 谱域图卷积实现思路 f 1 ( t ) ⋆ f 2 ( t ) F − 1 [ F 1 ( w ) F 2 ( w ) ] f_1(t) \star f_2(t) F^{-1}[F_1(w)F_2(w) ] f1​(t)⋆f2​(t)F−1[F1​(w)F2​(w)] 1.2 如何定义图上的傅里叶变换 经典傅里叶变换&#xff1a; x ( …

速卖通正式推出全托管,卖家竞争进入新阶段

全托管来了&#xff0c;卖家就能安心做甩手掌柜吗&#xff1f; 正式推出全托管 显而易见&#xff0c;越来越多的平台正在转向全托管模式。 近日&#xff0c;速卖通在2023年度商家峰会上&#xff0c;正式推出了全托管服务模式。官方表示&#xff0c;托管是对速卖通平台商家服…

golang微服务项目通用流水线

golang微服务项目通用流水线 工作中随着业务越来越大&#xff0c;微服务的项目也越来越多&#xff0c;最开始的时候是一个服务一个流水线&#xff0c;然后还分了三个环境&#xff0c;也就是一个服务三个流水线&#xff0c;后面就越来越不利于管理维护了&#xff0c;因此&#…

持续集成——App自动化测试集成实战

这里写目录标题 一、app自动化测试持续集成的好处二、环境准备三、Jenkins节点挂载四、节点环境的配置1、JDK2、模拟器3、sdk环境4、Python3环境5、allure-commandline工具6、allure插件 五、本地运行待测代码(保证代码没有问题)六、库文件的导出七、Jenkins上运行代码配置1、指…

Visual Studio C# WinForm开发入门(4):概述

目录 一.Winform入门1.WinForm项目结构2.窗口设计与控件布局3.窗口事件4.时间显示器小练习 二.WinForm布局开发1.手动布局解决自适应问题2.WinForm布局属性3.WinForm布局器 三.WinForm常用控件1.界面展示2.实体类 Student(封装信息)3.逻辑事件代码Form.cs 四.图片框与项目资源1…

智慧班牌源码,使用springboot框架Java+vue2开发,二次开发方便快捷

智慧校园云平台电子班牌系统源码 智慧校园平台电子班牌系统源码在大数据平台下&#xff0c;对应用系统进行统一&#xff0c;以数据互联软硬结合的特点应用在校园&#xff0c;实现对校园、班级、教师、学生的管理。 智慧校园云平台电子班牌系统源码&#xff0c;使用springboot…