谷粒商城——分布式基础(全栈开发篇第一部分)

news2025/1/15 16:30:39

文章目录

  • 一、
    • 服务治理
    • 网路
    • 数据支撑
    • 日志处理ELK
    • 应用监控
    • 集成工具
    • 开发工具
  • 二、环境创建
    • 1、虚拟机创建
    • 2、虚拟机安装docker等
      • 1. 安装docker
      • 1. 配置阿里docker
      • 3.docker安装mysql
        • 错误
      • 4、docker安装redis
    • 3、软件
      • 1.Maven 阿里云镜像+1.8jdk
      • 2、idea +lombok+mybatisX ,
      • 3、 visualStudioCode
      • 4、安装 git
  • 三、项目环境搭建
    • 1、创建后台Spring项目
      • 1. 创建远程仓库,添加shh key 连接远程仓库
      • 2. 下拉项目 gulimsll
      • 3. 创建五个模块product/order/ware/coupon/member
      • 4. 设置主项目的.gitignore和pom.xml
    • 2、数据库
      • 1. 设置redis 和mysql自动启动
      • 2. 连接数据库
      • 3. 创建各个数据库 注意 字符集为utf8mb4 排序为默认
    • 3、拉取克隆人人资源公开项目,前端和后端
      • 1. 把项目中的。git删除,并吧fast后台放到主项目中,主项目pom添加模块
      • 2. 用visual code 打开前端项目
      • 3. 下载安装Node.js
      • 4. npm install 下载依赖(根据packag.json)
    • 4、项目框架启动
  • 四、项目基础功能
    • 1、利用代码生成器开发基础功能,生成product
    • 2、创建gulimall-common公共模块
    • 3、生成Coupon优惠模块
    • 4、生成member会员系统
    • 5、订单系统
    • 6、ware库存
    • 7、错误
    • 8、整合mybatis-plus
  • 五、安装中间件 阿里组件
    • 1、介绍
      • 1. SpringCloud 的几大痛点
      • 2. SpringCloud Alibaba 的优势:
      • 3. 当前项目 SpringCloud Alibaba 我们最终的技术搭配方案:
      • 4. 版本选择
    • 2、安装
      • 1. nocas-alibaba 注册中心
      • 2.openFeign-SpringCloud 远程调用
      • 3.nocas 配置中心
        • 配置中心详细内容
      • 4. 配置gateway网关
  • 参考文章


在这里插入图片描述

一、

服务治理

  1. Nacos 注册中心
  2. Nacos 配置中心
  3. Seata 分布式事务
  4. Sentinel 服务熔断降级

网路

  1. Feign 远程调用&负载均衡
  2. Gateway 网关
  3. Sleuth 链路追踪
  4. Zipkin 可视化追踪

数据支撑

  1. redis 缓存
  2. mysql 持久化
  3. rebbitMa 消息队列
  4. ElasticSearch 全文检索
  5. Oss 阿里云存储服务

日志处理ELK

  1. Kibnan 将Es中的日志可视化
  2. LogStash 日志捕获
  3. ES 存放日志

应用监控

  1. Prometheus 分析监控信息
  2. Grafana 可视化监控信息
  3. Prometheus 的Altermananger 发送监控信息

集成工具

  1. GItHub 上传代码
  2. Jenkins 获取代码
  3. Docker 打包成docker镜像
  4. Kuberneters 集成docker服务

开发工具

  1. Virtualbox 虚拟机 https://www.virtualbox.org/
  2. vagrant linux镜像工具 https://developer.hashicorp.com/vagrant/downloads?host=www.vagrantup.com

二、环境创建

1、虚拟机创建

  1. 下载Virtualbox 安装

  2. 下载vagrant 安装 重启 判断是否安装成功
    在这里插入图片描述

  3. 安装centos7镜像文件 vagrant init centos/7设置环境在这里插入图片描述

  4. vagrant up启动环境在这里插入图片描述
    需要很长时间
    在这里插入图片描述
    启动成功Virtualbox 也会自动运行虚拟机
    在这里插入图片描述
    直接在命令窗口 vagrant shh 就可以连接虚拟机了,

  5. 配置网络
    cmd 查看IP
    在这里插入图片描述

    在这里插入图片描述
    这个文件的这里
    在这里插入图片描述
    改成对应的IP地址,然后重启 vagrant reload
    在这里插入图片描述
    如果无法重启就通过Virtualbox 直接关机在打开,

  6. ipaddr查看一下IP改对没,然后在ping一下外机

使用vagrant ssh启动时一定保证在vagrantfile文件目录下打开

2、虚拟机安装docker等

1. 安装docker

官网地址

  1. 删除以前记录
    sudo yum remove docker
    docker-client
    docker-client-latest
    docker-common
    docker-latest
    docker-latest-logrotate
    docker-logrotate
    docker-engine

  2. 设置存储库sudo yum install -y yum-utils
    sudo yum-config-manager --add-repo \https://download.docker.com/linux/centos/docker-ce.repo
    在这里插入图片描述

  3. 安装sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
    在这里插入图片描述

  4. 启动docker sudo systemctl start docker

  5. 设置docker开机自起 sudo systemctl enable docker

1. 配置阿里docker

  1. 登录阿里云,在产品服务里计算里面找到容器镜像服务
  2. 在这里插入图片描述
  3. sudo mkdir -p /etc/docker ( 创建文件夹)
    sudo tee /etc/docker/daemon.json <<-‘EOF’
    {
    “registry-mirrors”: [“https://oxxsyw0h.mirror.aliyuncs.com”]
    }
    EOF (设置路径)
    sudo systemctl daemon-reload (重启docker的线程)
    sudo systemctl restart docker (重启docker)

3.docker安装mysql

地址

  1. sudo docker pull mysql:版本
    在这里插入图片描述

  2. sudo docker images 查看是否安装在这里插入图片描述

  3. 切换成root用户完成创建实例操作 su root 密码为 vagrant whoami 查看当前用户
    在这里插入图片描述

  4. docker run -p 3306:3306 --name mysql \
    -v /mydata/mysql/log:/var/log/mysql \
    -v /mydata/mysql/data:/var/lib/mysql \
    -v /mydata/mysql/conf:/etc/mysql \
    -e MYSQL_ROOT_PASSWORD=root \
    -d mysql:5.7
    参数说明
    -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
    –name mysql :起一个容器名字
    -v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
    -v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
    -v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
    -e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码

错误

这一步发送了错误

docker: invalid reference format. See ‘docker run --help’.

查看错误 $ sudo dockerd --debug

INFO[2022-11-10T05:42:34.344590302Z] Starting up
DEBU[2022-11-10T05:42:34.346441844Z] Listener created for HTTP on unix (/var/run/docker.sock)
failed to start daemon: Unable to get the TempDir under /var/lib/docker: mkdir /var/lib/docker/tmp: no space left on device
在unix上为HTTP创建的侦听器(/var/run/docker.sock)
无法启动守护程序:无法获取/var/lib/docker:mkdir/var/lib/docker/tmp下的TempDir:设备上没有剩余空间

尝试删除docker.sock 还是失败

什么事docker.sock
查看dev/sdal 发现他妈的占了40g
在这里插入图片描述
发现问题

vagrant提供了将本机目录挂载到虚拟机目录下的功能,默认是将vagrant配置文件所在目录挂载到虚拟机/vagrant目录下。

参考文章
参考文章2

  1. 设置配置
    docker run -p 3306:3306 --name mysql \ -v /mydata/mysql/log:/var/log/mysql \ -v /mydata/mysql/data:/var/lib/mysql \ -v /mydata/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:5.7
    在这里插入图片描述
    第一次还是失败了,然后把换行符删除了就成功了
  2. docker ps 查看当前运行的容器
  3. 查看容器原理 每一个容器其实就是一个精简版的linux在这里插入图片描述
  4. 设置mysql cof内容
    在这里插入图片描述退出进入conf文件夹 vi my.cnf 把配置复制进去就行了
    vi /mydata/mysql/conf/my.cnf

[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] init_connect=‘SET collation_connection = utf8_unicode_ci’ init_connect=‘SET NAMES utf8’ character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake skip-name-resolve

  1. docker restart mysql 重启mysql

  2. cat查看 my.cof 有没有
    在这里插入图片描述

4、docker安装redis

  1. docker pull redis
  2. 创建文件映射
    mkdir -p /mydata/redis/conf :创建文件夹

touch /mydata/redis/conf/redis.conf :创建配置文件

docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf : 创建映射
3. 在这里插入图片描述在这里插入图片描述
4. 修改配置信息 添加开启 aof新版的默认开启了
5. 查看redis官方的配置信息,这个会了很重要

3、软件

1.Maven 阿里云镜像+1.8jdk

2、idea +lombok+mybatisX ,

3、 visualStudioCode

安装前端插件
在这里插入图片描述

4、安装 git

三、项目环境搭建

1、创建后台Spring项目

1. 创建远程仓库,添加shh key 连接远程仓库

在这里插入图片描述

2. 下拉项目 gulimsll

3. 创建五个模块product/order/ware/coupon/member

在这里插入图片描述在这里插入图片描述选择spring在这里插入图片描述

4. 设置主项目的.gitignore和pom.xml

![在这里插入图片描述](https://img-blog.csdnimg.cn/4a5e5248143a4d9bb946103457611698.png在这里插入图片描述

2、数据库

1. 设置redis 和mysql自动启动

sudo docker update mysql --restart=always
sudo docker update redis --restart=always重启查看是否自动启动

2. 连接数据库

3. 创建各个数据库 注意 字符集为utf8mb4 排序为默认

在这里插入图片描述

3、拉取克隆人人资源公开项目,前端和后端

在这里插入图片描述

1. 把项目中的。git删除,并吧fast后台放到主项目中,主项目pom添加模块

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

2. 用visual code 打开前端项目

3. 下载安装Node.js

官网
检查版本在这里插入图片描述
设置阿里镜像 npm config set registry http://registry.npm.taobao.org/

大家如果 npm install 安装依赖出现 chromedriver 之类问题,先在项目里运行下面命令 npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver 然后再运行 npm install

4. npm install 下载依赖(根据packag.json)

在这里插入图片描述在这里插入图片描述无错误信息表示下载成功,如果下载失败请退出要管理员身份运行,或者退出新建终端,确认网络

4、项目框架启动

  1. npm run dev 启动前端项目
  2. 启动后台 renren-fast
    默认用户名密码 admin admin
    在这里插入图片描述

四、项目基础功能

1、利用代码生成器开发基础功能,生成product

利用人人开源代码生成器
在这里插入图片描述

  1. git clone generator代码生成工具

  2. 吧文件中的git删除,吧generator放到项目中并添加maven模块名称在这里插入图片描述

  3. 修改配置信息生成代码,先生成pms数据库,product模块在这里插入图片描述在这里插入图片描述

  4. 注意修改正确代码生成模板

  5. 修改完成后启动项目在这里插入图片描述

  6. 全选点击生成代码生成一个压缩包在这里插入图片描述

  7. 将生成的product模块的main文件直接粘贴在项目中,在这里插入图片描述

2、创建gulimall-common公共模块

  1. 创建模块在这里插入图片描述
  2. 在其他模块pom中引入公共模块在这里插入图片描述
  3. 将需要的renrenfast中utils的类放到common模块中在这里插入图片描述
  4. 导入公共包需要的pom文件
    <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.8</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.4.12</version>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.17</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <!-- nacos 注册发现-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- nacos 配置管理-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

3、生成Coupon优惠模块

修改generator的配置路径根据对应的模块和数据库然后新增就OK了

在这里插入图片描述
生成之后启动一下测试一下

4、生成member会员系统

  1. 一样的方式,

  2. 注意pom文件的引要公共模块文件
    在这里插入图片描述

  3. 注意设置服务端口号如果端口号被占用就可以参考这个文章

  4. 弄好后运行,测试一下http://localhost:8000/member/growthchangehistory/list
    在这里插入图片描述

5、订单系统

  1. 改generator配置在这里插入图片描述
  2. 导入公共模块
  3. 启动测试
    http://localhost:9000/order/order/list
    在这里插入图片描述

6、ware库存

和上面差不多

7、错误

java.lang.IllegalStateException: Failed to load ApplicationContext

Cannot instantiate interface org.springframework.context.ApplicationListener : org.springframework.cloud.bootstrap.BootstrapApplicationListener

org/springframework/cloud/bootstrap/BootstrapApplicationListener has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
原因我创建的时候不能选择视频中的版本,然后jdk为17
这个我只改了jdk ,没该下面cloud的版本哭死
在这里插入图片描述

8、整合mybatis-plus

  1. 导入依赖
<dependency>
          <groupId>com.baomidou</groupId>
          <artifactId>mybatis-plus-boot-starter</artifactId>
          <version>3.4.1</version>
       </dependency>
  1. 配置
    1. 配置数据源;
      导入数据库驱动
      在application.yml配置数据源
    1. 配置mybatis-plus
      使用@MapperScan
      告诉mybatis-plus,sql映射文件位置
 mybatis-plus:
  mapper-locations: classpath:/mapper/*Mapper.xml
   type-aliases-package: com.atguigu.gulimall.product.entity
 global-config:
      db-config:  #全局配置
      id-type: auto  #主键策略

五、安装中间件 阿里组件

1、介绍

Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。

依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。

https://github.com/alibaba/spring-cloud-alibaba

1. SpringCloud 的几大痛点

  • SpringCloud 部分组件停止维护和更新,给开发带来不便;
  • SpringCloud 部分环境搭建复杂,没有完善的可视化界面,我们需要大量的二次开发和定制
  • SpringCloud 配置复杂,难以上手,部分配置差别难以区分和合理应用

2. SpringCloud Alibaba 的优势:

阿里使用过的组件经历了考验,性能强悍,设计合理,现在开源出来大家用成套的产品搭配完善的可视化界面给开发运维带来极大的便利
搭建简单,学习曲线低。

3. 当前项目 SpringCloud Alibaba 我们最终的技术搭配方案:

SpringCloud Alibaba - Nacos:注册中心(服务发现/注册): 一个更容易构建云原生应用的动态服务发现、配置管理和服务管理平台。
SpringCloud Alibaba - Nacos:配置中心(动态配置管理)
SpringCloud - Ribbon:负载均衡
SpringCloud - Feign:声明式 HTTP 客户端(调用远程服务)
SpringCloud Alibaba - Sentinel:服务容错(限流、降级、熔断) :Sentinel以“流量”为切入点,提供流控、并发、熔断、负载保护等方面的解决方案,保障服务稳定性。
SpringCloud - Gateway:API 网关(webflux 编程模式)
SpringCloud - Sleuth:调用链监控
SpringCloud Alibaba - Seata:原 Fescar,即分布式事务解决方案 :阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。

4. 版本选择

由于 Spring Boot 1 和 Spring Boot 2 在 Actuator 模块的接口和注解有很大的变更,且
spring-cloud-commons 从 1.x.x 版本升级到 2.0.0 版本也有较大的变更,因此我们采取跟
SpringBoot 版本号一致的版本:
 1.5.x 版本适用于 Spring Boot 1.5.x
 2.0.x 版本适用于 Spring Boot 2.0.x
 2.1.x 版本适用于 Spring Boot 2.1.x

2、安装

1. nocas-alibaba 注册中心

网站https://github.com/alibaba/spring-cloud-alibaba/blob/2022.x/spring-cloud-alibaba-examples/nacos-example/nacos-config-example/readme-zh.md
在这里插入图片描述

  1. pom文件
   <!-- 注册中心-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
  1. 配置主要看nacos的部分
spring:
  application:
    name: gulimall-coupon
  datasource:
    username: root
    password: root
    url: jdbc:mysql://192.168.56.10:3306/gulimall_sms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
    driver-class-name: com.mysql.cj.jdbc.Driver
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848


mybatis-plus:
  mapper-locations: "classpath:/mapper/**/*.xml"
  global-config:
    db-config:
      #      自增主键
      id-type: auto


server:
  port: 7000

‘加注解’使用@EnableDiscoveryClient开启服务注册发现功能

  1. 下载启动

问题新版本默认启动为集群 "nacos is starting with cluster
解决参考文章

bin目录下 命令启动 startup.cmd -m standalone

中间我遇到了个麻烦,我选择了高版本的spring 然后又切换回了老师的版本,junit在2.1上和下是不同的写法
参考文章 作者:大佬腿好粗

  1. 打开
    在这里插入图片描述
    在这里插入图片描述

  2. 慢慢把其他的服务都注册上

2.openFeign-SpringCloud 远程调用

Feign是一个声明式的HTTP客户端,它的目的就是让远程调用更加简单。Feign提供了HTTP
请求的模板,通过编写简单的接口和插入注解,就可以定义好HTTP请求的参数、格式、地
址等信息。

Feign整合了Ribbon(负载均衡)和Hystrix(服务熔断),可以让我们不再需要显式地使用这 两个组件。

SpringCloudFeign在NetflixFeign的基础上扩展了对SpringMVC注解的支持,在其实现下,我
们只需创建一个接口并用注解的方式来配置它,即可完成对服务提供方的接口绑定。简化了
SpringCloudRibbon自行封装服务调用客户端的开发量。

  1. 引包,之前的跟视频走的一个已经引过包了
     <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
  1. 编写一个接口,告诉spring cloud 这个接口需要 gulimall-coupon 这个服务的远程调用
package com.atguigu.gulimall.member.feign;

/**
 * 这是一个声明式服务
 */
@FeignClient("gulimall-coupon")
public interface CouponFeignService {
    @RequestMapping("coupon/categorybounds/member/list")
    public R memberCoupons();
}

在这里插入图片描述

  1. 声明这个接口
@RestController
@RequestMapping("member/member")
public class MemberController {
   

    @Autowired
    CouponFeignService couponFeignService;

    /**
     * 测试openfeign
     * @return
     */
    @RequestMapping("/coupons")
    public R test(){
        MemberEntity member = new MemberEntity();
        member.setNickname("张三");
        R r = couponFeignService.memberCoupons();
        return R.ok().put("member",member).put("coupons",r.get("coupons"));
    }

在这里插入图片描述
5. 开启远程服务调用

@EnableFeignClients(basePackages = "com.atguigu.gulimall.member.feign")

在这里插入图片描述
6. 测试
在这里插入图片描述
原理

3.nocas 配置中心

  1. 映入依赖
        <!--配置中心 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
  1. 创建一个bootstrap.properties 配置用户名和用户中心地址
    在这里插入图片描述

  2. 在配置中心配置数据
    NacosConfig主要通过dataId和group来唯一确定一条配置。
    在这里插入图片描述

  3. 给 应用名.properties 添加任何配置

  4. 动态获取配置。
    在这里插入图片描述
    @RefreshScope:动态获取并刷新配置
    @Value("s配置项的名》”): 获取到配置。如果配置中心和当前应用的配置文件中都配置了相同的项,优先使用配置中心的配置

  5. 修改配置发布测试

配置中心详细内容
  1. 命名空间: 配置隔离
    默认public(保留空间)默认新增的都在public,可以配置测试空间,生产空间之类的,通过切换id来切换空间,也可以把每个微服务创建一个命名空间
    在这里插入图片描述

  2. 配置集
    配置的集合

  3. 配置集id
    配置文件名称
    在这里插入图片描述

  4. 配置分组 添加1111分组可以根据组名称去选择配置
    在这里插入图片描述
    在选择组

spring.application.name=gulimall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=abbe2e42-a212-4480-8533-3c7545adf963
spring.cloud.nacos.config.group=111

可以用命名空间来区分不同的微服务,分组来区分环境在这里插入图片描述
5. 同时加载多个配置集,把对应的配置放到对应创建的配置级里面 other放剩下的(nacos配置里面不要加空行,不要加中文)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6. 微服务的任何配置信息,和配置文件都可以放到配置中心 不改变之前取配置信息的方式
7. 只需要在bootstrap.properties说明加载配置中心哪个配置文件即可
8. 以前SpringBoot任何方法从配置文件中获取值,都能使用。
9. 配置中心和配置文件中的配置优先级:

4. 配置gateway网关

让所有的请求都通过gateway这个服务去访问其他服务,那么就只需要对这个外观服务进行限流熔断等操作就可以了。

Spring官方网站
Spring Gateway中文网

  1. 通过spring模板新建一个模块,只选择getaway的jar包,在把公共模块的包引过去 (@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)排除数据库包)
    在这里插入图片描述

  2. nacos注册服务,在创建配置文件
    别忘记写注册服务的注解@EnableDiscoveryClient
    在这里插入图片描述

  3. application.properties

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.application.name=gulimall-gateway
server.port=88

  1. application.yml
    配置的路由规则,在spring官网上有很多规则
    这里配置的是query规则
spring:
  cloud:
    gateway:
      routes:
        - id: baidu_route
          uri: https://www.baidu.com
          predicates:
            - Query=url,baidu

        - id: qq_route
          uri: https://www.qq.com
          predicates:
            - Query=url,qq
  1. bootstrap.properties
spring.application.name=gulimall-gateway
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=1f986a10-dfe9-493d-a63a-b1fe11c310eb

  1. 测试
    在这里插入图片描述

参考文章

个人笔记,不同意见,望有交流
直接可以点击跳转连接

作者 尚硅谷

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

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

相关文章

使用CIP采集欧姆龙EtherNet/IP从入门到精通

本文将会从以下几个方面介绍 1.CIP是什么 2.EtherNet/IP通信是什么 3.CIP通信报文解析 4.使用CIP常用的方法和功能介绍&#xff08;UCMM&#xff09; 5.自己封装了一个类&#xff0c;只要知道标签名称&#xff0c;和数据类型即可读写数据 6.demo展示 1.CIP是什么 CIP通信…

操作多级(一、二、三级)指针才是我们的该有的姿态~

Hello&#xff0c;很有缘在这篇文章上我们相遇了&#xff0c;那么我就用题目巩固我们多级指针的知识&#xff0c;当然这里的题目是比较有点难度的&#xff0c;我们需要有点基础呀&#xff0c;如果你能轻松理解题目那说明你对指针的了解已经很有基础了呢&#xff0c;那废话不多说…

Vue3自定义指令!!!

通过自定义指令实现菜单显示和权限控制问题。 一、新建一个在src目录下创建包directives&#xff0c;在包中创建一个ts文件。 import { useStore } from "/store/pinia";function hasRoles(role: any) {const pinaRoles useStore().roles;if (typeof role "s…

H5 流光分割个人主页源码

源码名称&#xff1a;流光分割个人主页源码 源码介绍&#xff1a;一款流光分割特效个人主页源码&#xff0c;源码带大量跳转个人联系方式按钮和朋友按钮。同时带有个人介绍。 需求环境&#xff1a;H5 下载地址&#xff1a; https://www.changyouzuhao.cn/10241.html

新品发布:广州大彩科技COF系列2.1寸480*480 IPS 串口屏发布!

一、产品介绍 该产品是一款2.1寸分辨率为 480480的医用级工业组态串口屏&#xff0c;拥有2.1寸IPS液晶屏&#xff0c;分辨率有480480&#xff08;实际显示为R240内切圆区域&#xff09;&#xff0c;支持电容触摸。采用COF超薄结构工艺设计&#xff0c;用户安装便捷灵活&#x…

REDHAWK——组件结构

文章目录 前言一、自动生成的组件文件1、为所有组件生成的文件2、为 C 组件生成的文件 二、自动生成的组件方法三、基础组件成员1、Ports2、Properties3、枚举①、C②、Java③、Python 4、Domain Awareness5、网络接口 四、组件实现五、管理和定义属性1、属性 ID2、属性名3、属…

C语言:字符串逆序输出, test ok

【问题描述】字符串逆序&#xff1a;设计函数功能是将一个字符串逆序&#xff0c;函数声明&#xff1a;void stringNx(char a[ ])&#xff0c;使用这个函数完成将输入的字符串逆序输出。 【输入形式】要求输入一个字符串 【输出形式】逆序后输出 【样例输入】abcd 【样例输…

Javaweb-MyBatis

一、概念 MyBatis是一款优秀的持久层框架&#xff0c;用于简化JDBC开发 MyBatis本是Apache的一个开源项目iBatis&#xff0c;2010年这个项目由apache software found迁移到了google code&#xff0c;并且改名为MyBatis。2013年11月迁移到Github 持久层 负责将数据到保存到数…

openGauss学习笔记-243 openGauss性能调优-SQL调优-典型SQL调优点-子查询调优

文章目录 openGauss学习笔记-243 openGauss性能调优-SQL调优-典型SQL调优点-子查询调优243.1 子查询调优243.1.1 子查询背景介绍243.1.2 openGauss对SubLink的优化243.1.3 更多优化示例 openGauss学习笔记-243 openGauss性能调优-SQL调优-典型SQL调优点-子查询调优 SQL调优是一…

【BOM笔记】基本概述、window对象常见事件、定时器、JS执行机制、location/navigator/history对象

文章目录 1 BOM概述1.1 什么是BOM1.2 BOM的构成 2 window 对象的常见事件2.1 窗口加载事件2.2 调整窗口大小事件 3 定时器3.1 setTimeout() 定时器3.2 setInterval() 定时器3.3 this 4 JS 执行机制4.1 JS 是单线程4.2 同步和异步4.3 JS 执行机制 5 location 对象5.1 属性5.2 方…

【深度学习笔记】9_9 语义分割和数据集

注&#xff1a;本文为《动手学深度学习》开源内容&#xff0c;部分标注了个人理解&#xff0c;仅为个人学习记录&#xff0c;无抄袭搬运意图 9.9 语义分割和数据集 在前几节讨论的目标检测问题中&#xff0c;我们一直使用方形边界框来标注和预测图像中的目标。本节将探讨语义分…

【欢迎投稿|稳定检索|高录用】2024年建筑土木与水利工程国际学术会议(ICBCHE 2024)

【欢迎投稿|稳定检索|高录用】2024年建筑土木与水利工程国际学术会议&#xff08;ICBCHE 2024) 苏老师 电话&#xff1a;19113133262&#xff08;微信同号&#xff09; QQ&#xff1a;2950880851 【投稿时请附言&#xff1a;icbche投稿苏老师推荐 将享有优先审稿及录用和学…

weblogic CVE-2023-21839详细复现

1、本次复现使用vulhub的靶场 切换到靶场的目录下&#xff0c;用docker -compose up -d启动靶场 使用docker-compose ps -a查看靶场的端口 2、访问开启的环境 3、准备工作都做好之后开始复现 &#xff08;1&#xff09;开启JNDIExploit 工具地址&#xff1a;GitHub - WhiteH…

HNU-计算机系统-实验1-原型机vspm1.0-(二周目玩家视角)

前言 二周目玩家&#xff0c;浅试一下这次的原型机实验。总体感觉跟上一年的很相似&#xff0c;但还是有所不同。 可以比较明显地感觉到&#xff0c;这个界面越来越好看了&#xff0c;可操作与可探索的功能也越来越多了。 我们HNU的SYSTEM真的越来越好了&#xff01;&#x…

使用C#创建服务端Web API

前言 C# Web API 是一种基于 .NET 平台&#xff08;包括但不限于.NET Framework 和 .NET Core&#xff09;构建 HTTP 服务的框架&#xff0c;用于创建 RESTful Web 服务。REST&#xff08;Representational State Transfer&#xff09;是一种软件架构风格&#xff0c;它利用HT…

Vue.js+SpringBoot开发APK检测管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 开放平台模块2.3 软件档案模块2.4 软件检测模块2.5 软件举报模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 开放平台表3.2.2 软件档案表3.2.3 软件检测表3.2.4 软件举报表 四、系统展示五、核心代…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Flex)

以弹性方式布局子组件的容器组件。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。Flex组件在渲染时存在二次布局过程&#xff0c;因此在对性能有严格要求的场景下建议使用Column、Row代替。Flex组…

【Spring】SpringMVC请求原理

什么是SpringMVC&#xff1a; SpringMVC 是Springframework中基于Java实现的Model-View-Controller框架&#xff0c;用于管理web应用程序的请求处理流程&#xff0c;并遵循MVC设计原则。 什么是MVC&#xff1a; MVC是Model-View-Controller的缩写&#xff0c;是一种设计原则&am…

PS学习 - 抠图-通道-主题颜色和背景颜色不能相近

抠出蝴蝶 1.通道抠图 套索工具 这里需要圈住你要的&#xff0c;注意尽量小点 ctrl j 复制 然后去掉背景 点击通道 找到明暗对比最大的通道&#xff0c;这里我理解为颜色反差最大的那个&#xff0c;突出你要抠的东西 搜了下说是一般为蓝色 复制通道 ctrll调出色阶 通过移…

MySQL--执行一条 select 语句,期间发生了什么?

执行一条 SQL 查询语句&#xff0c;期间发生了什么&#xff1f; 连接器&#xff1a;建立连接&#xff0c;管理连接、校验用户身份&#xff1b;查询缓存&#xff1a;查询语句如果命中查询缓存则直接返回&#xff0c;否则继续往下执行。MySQL 8.0 已删除该模块&#xff1b;解析 …