【部署Ruoyi微服务】

news2024/9/22 3:38:25

IP机器与部署组件

在这里插入图片描述

1 安装mysql

wget https://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

systemctl enable mysqld --now
systemctl status mysqld

#默认密码

cat /var/log/mysqld.log | awk '/password/ {print $NF}'
mysql -uroot -p'hWgmWK.r=6%I'

mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
mysql> set password = password("123456");
mysql> flush privileges;
grant all privileges on *.* to 'root'@'192.168.%.%' identified by '123456';

2 安装redis

yum install epel-release -y
yum install redis -y
systemctl enable redis --now
systemctl status redis


改/etc/redis.conf
bind 0.0.0.0
设置redis的访问密码

部署微服务治理层

0 安装 java 1.8.0_262 和 maven3.8.8 (略)

/etc/profile最后面
export JAVA_HOME=/opt/software/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar

export MAVEN_HOME=/opt/software/maven3.8
export PATH=$PATH:$MAVEN_HOME/bin

1 部署nacos (单机版) (端口8848)

wget https://linux.oldxu.net/nacos-mysql.sql
wget https://linux.oldxu.net/nacos-server-2.1.1.tar.gz

mysql -uroot -p123456 -e "create database nacos;"
mysql -uroot -p123456 nacos < nacos-mysql.sql 


cd /root/k8sFile/project/microServer/nacos/nacos/conf
#修改数据库配置信息
vim application.properties

### 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/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123456
#单机模式启动nacos-server
cd /root/k8sFile/project/microServer/nacos/nacos/bin
[root@node5-db bin]# sh startup.sh -m standalone

/opt/software/jdk1.8/bin/java -Djava.ext.dirs=/opt/software/jdk1.8/jre/lib/ext:/opt/software/jdk1.8/lib/ext  -Xms512m -Xmx512m -Xmn256m -Dnacos.standalone=true -Dnacos.member.list= -Xloggc:/root/k8sFile/project/microServer/nacos/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/root/k8sFile/project/microServer/nacos/nacos/plugins/health,/root/k8sFile/project/microServer/nacos/nacos/plugins/cmdb,/root/k8sFile/project/microServer/nacos/nacos/plugins/selector -Dnacos.home=/root/k8sFile/project/microServer/nacos/nacos -jar /root/k8sFile/project/microServer/nacos/nacos/target/nacos-server.jar  --spring.config.additional-location=file:/root/k8sFile/project/microServer/nacos/nacos/conf/ --logging.config=/root/k8sFile/project/microServer/nacos/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
nacos is starting with standalone
nacos is starting,you can check the /root/k8sFile/project/microServer/nacos/nacos/logs/start.out

访问nacos的 http://192.168.79.35:8848/nacos/#/login 账号密码 nacos/nacos
在这里插入图片描述
在这里插入图片描述

2 部署sentinel (限流组件)(jar包) (业务8718 、API调用8719)

wget https://linux.oldxu.net/sentinel-dashboard-1.8.5.jar

运行sentinel,-Dserver.port=8718 用来指定sentinel控制台访问端口:
nohup java -Dserver.port=8718 \
-Dcsp.sentinel.dashboard.server=localhost:8718 \
-Dproject.name=sentinel-dashboard \
-Dcsp.sentinel.api.port.port=8719 \
-jar sentinel-dashboard-1.8.5.jar &> /var/log/sentinel.log & 

访问sentinel,通过http://IP:8718 ,登录用户名及密码均为 sentinel
在这里插入图片描述
在这里插入图片描述

2.1 应用使用sentinel,需要先添加依赖 (开发)

为pom.xml 添加依赖

在这里插入图片描述

2.2 、为应用添加sentinel配置,(服务配置一般保存在nacos中,在nacos对应配置添加如下字段即可)

例如:

 spring:
 application:
   name: ruoyi-auth # 应用名称
 cloud:
   sentinel: # 取消控制台懒加载
     eager: true
     transport:
       dashboard: 127.0.0.1:8718 # 控制台地址

3 部署skywalking链路追踪组件 (收集器(11800端口),web页面(8080端口))

wget https://linux.oldxu.net/apache-skywalking-apm-8.8.1.tar.gz
tar xf apache-skywalking-apm-8.8.1.tar.gz

#运行skywalking,它会运行两个组件,一个收集器(11800端口),一个web页面(8080端口)
cd /root/k8sFile/project/microServer/03-skywalking/apache-skywalking-apm-bin/bin

[root@node5-db bin]# sh startup.sh 
SkyWalking OAP started successfully!
SkyWalking Web Application started successfully!

访问skywalking,通过 http://IP:8080
在这里插入图片描述

3.1 如果项目需要使用skywalking,需要在启动业务时加载skywalking-agent的jar包

示例如下

wget https://linux.oldxu.net/apache-skywalking-java-agent-8.8.0.tgz
tar xf apache-skywalking-java-agent-8.8.0.tgz

[root@node5-db 03-skywalking]# ls skywalking-agent/
activations  bootstrap-plugins  config  LICENSE  licenses  logs  NOTICE  optional-plugins  optional-reporter-plugins  plugins  skywalking-agent.jar
# 运行java应用,而后指定
java -javaagent:./skywalking-agent/skywalking-agent.jar \
-Dskywalking-agent.jar \
-Dskywalking.agent.service_name=ruoyi-auth \
-Dskywalking.collector.backend_service=192.168.79.35:11800 \
-har ruoyi-auth/target/ruoyi-auth.jar &

4 部署微服务组件

#79.34操作
#git clone https://gitee.com/y_project/RuoYi-Cloud   或者使用oldxu的:
wget https://linux.oldxu.net/RuoYi-Cloud-20220814.zip
unzip RuoYi-Cloud-20220814.zip

[root@node4 danji-ruoyi]# cd RuoYi-Cloud
[root@node4 RuoYi-Cloud]# ls
bin  docker  LICENSE  pom.xml  README.md  ruoyi-api  ruoyi-auth  ruoyi-common  ruoyi-gateway  ruoyi-modules  ruoyi-ui  ruoyi-visual  sql

scp -r sql/ 192.168.79.35:/root

4.1 创库,导入sql

RuoYi-Cloud项目所需的数据文件

mysql -uroot -p
mysql> create database `ry-cloud` charset utf8;
mysql> show database;

[root@node5-db sql]# ls
quartz.sql  ry_20220814.sql  ry_config_20220510.sql  ry_seata_20210128.sql
[root@node5-db sql]# mysql -uroot -p123456 ry-cloud < ry_20220814.sql 

#检查
mysql> use  ry-cloud;
mysql> show tables;
+--------------------+
| Tables_in_ry-cloud |
+--------------------+
| gen_table          |
| gen_table_column   |
| sys_config         |
| sys_dept           |
| sys_dict_data      |
| sys_dict_type      |
| sys_job            |
| sys_job_log        |
| sys_logininfor     |
| sys_menu           |
| sys_notice         |
| sys_oper_log       |
| sys_post           |
| sys_role           |
| sys_role_dept      |
| sys_role_menu      |
| sys_user           |
| sys_user_post      |
| sys_user_role      |
+--------------------+
19 rows in set (0.00 sec)

创ry-config库。导入ruoyi-config配置的sql文件。

mysql -uroot -p
mysql> create database `ry-config` charset utf8;

mysql -uroot -p123456 ry-config < ry_config_20220510.sql 

然后修改 nacos 的 conf/application.properties 配置文件,将默认nacos库指向新的ry-config库

### Count of DB:
db.num=1

### Connect URL of DB:
#db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.url.0=jdbc:mysql://127.0.0.1:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123456
#重启nacos
sh shutdown.sh
sh startup.sh -m standalone

检查nacos是否已经注入了业务所需的配置文件相关数据;
在这里插入图片描述

打包项目

#79.34操作
 cd RuoYi-Cloud/
 mvn clean package -Dmaven.test.skip=true
 #打包完成后,整个约有620MB大小

在这里插入图片描述

对单独某模块打包操作

#比如 单独对 ruoyi-auth模块打包
cd RuoYi-Cloud/
mvn package -Dmaven.test.skip=true -pl ruoyi-auth -am

4.2 部署system组件

#机器79.34
cd /root/k8sFile/project/danji-ruoyi/guanWang
wget https://linux.oldxu.net/apache-skywalking-java-agent-8.8.0.tgz 
tar xf apache-skywalking-java-agent-8.8.0.tgz

[root@node4 guanWang]# ls
RuoYi-Cloud  skywalking-agent

1、修改system连接数据库信息,信息都存储在nacos组件中,需要登录nacos修改ruoyi-system-dev.yml

ruoyi-system-dev.yml 。 注意cloud是与redis同级的 (配置sentinel的)

# spring配置
spring:
  redis:
    host: 192.168.79.35
    port: 6379
    password: 
  cloud:
     sentinel:
        eager: true
        transport: 
           dashboard: 192.168.79.35:8718   
  datasource:
    druid:
      stat-view-servlet:
        enabled: true
        loginUsername: admin
        loginPassword: 123456
    dynamic:
      druid:
        initial-size: 5
        min-idle: 5
        maxActive: 20
        maxWait: 60000
        timeBetweenEvictionRunsMillis: 60000
        minEvictableIdleTimeMillis: 300000
        validationQuery: SELECT 1 FROM DUAL
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false
        poolPreparedStatements: true
        maxPoolPreparedStatementPerConnectionSize: 20
        filters: stat,slf4j
        connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
      datasource:
          # 主库数据源
          master:
            driver-class-name: com.mysql.cj.jdbc.Driver
            url: jdbc:mysql://192.168.79.35:3306/ry-cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
            username: root
            password: 123456
          # 从库数据源
          # slave:
            # username: 
            # password: 
            # url: 
            # driver-class-name: 
      # seata: true    # 开启seata代理,开启后默认每个数据源都代理,如果某个不需要代理可单独关闭

# seata配置
seata:
  # 默认关闭,如需启用spring.datasource.dynami.seata需要同时开启
  enabled: false
  # Seata 应用编号,默认为 ${spring.application.name}
  application-id: ${spring.application.name}
  # Seata 事务组编号,用于 TC 集群名
  tx-service-group: ${spring.application.name}-group
  # 关闭自动代理
  enable-auto-data-source-proxy: false
  # 服务配置项
  service:
    # 虚拟组和分组的映射
    vgroup-mapping:
      ruoyi-system-group: default
  config:
    type: nacos
    nacos:
      serverAddr: 127.0.0.1:8848
      group: SEATA_GROUP
      namespace:
  registry:
    type: nacos
    nacos:
      application: seata-server
      server-addr: 127.0.0.1:8848
      namespace:

# mybatis配置
mybatis:
    # 搜索指定包别名
    typeAliasesPackage: com.ruoyi.system
    # 配置mapper的扫描,找到所有的mapper.xml映射文件
    mapperLocations: classpath:mapper/**/*.xml

# swagger配置
swagger:
  title: 系统模块接口文档
  license: Powered By ruoyi
  licenseUrl: https://ruoyi.vip

启动ruoyi-system

#启动ruoyi-system
nohup java -javaagent:./skywalking-agent/skywalking-agent.jar \
-Dskywalking.agent.service_name=ruoyi-system \
-Dskywalking.collector.backend_service=192.168.79.35:11800 \
-Dspring.profiles.active=dev \
-Dspring.cloud.nacos.config.file-extension=yml \
-Dspring.cloud.nacos.discovery.server-addr=192.168.79.35:8848 \
-Dspring.cloud.nacos.config.server-addr=192.168.79.35:8848 \
-jar RuoYi-Cloud/ruoyi-modules/ruoyi-system/target/ruoyi-modules-system.jar &>/var/log/system.log &

ruoyi-system已注册到nacos:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.3 部署auth组件

1、修改auth连接redis信息,信息都存储在nacos组件中,需要登录nacos修改ruoyi-auth-dev.yml

ruoyi-auth-dev.yml

spring: 
  redis:
    host: 192.168.79.35
    port: 6379
    password: 
  cloud:
    sentinel:
      eager: true
      transport:
        dashboard: 192.168.79.35:8718

启动ruoyi-auth

#启动ruoyi-auth
nohup java -javaagent:./skywalking-agent/skywalking-agent.jar \
-Dskywalking.agent.service_name=ruoyi-auth \
-Dskywalking.collector.backend_service=192.168.79.35:11800 \
-Dspring.profiles.active=dev \
-Dspring.cloud.nacos.config.file-extension=yml \
-Dspring.cloud.nacos.discovery.server-addr=192.168.79.35:8848 \
-Dspring.cloud.nacos.config.server-addr=192.168.79.35:8848 \
-jar RuoYi-Cloud/ruoyi-auth/target/ruoyi-auth.jar &>/var/log/auth.log  &

4.4 部署gateway组件

1、修改gateway连接redis信息,信息都存储在nacos组件中,需要登录nacos修改ruoyi-gateway-dev.yml

ruoyi-gateway-dev.yml

spring:
  redis:
    host: 192.168.79.35
    port: 6379
    password: 
  cloud:
    sentinel:
      eager: true
      transport:
        dashboard: 192.168.79.35:8718
    gateway:
      discovery:
        locator:
          lowerCaseServiceId: true
          enabled: true
      routes:
        # 认证中心
        - id: ruoyi-auth
          uri: lb://ruoyi-auth
          predicates:
            - Path=/auth/**
          filters:
            # 验证码处理
            - CacheRequestFilter
            - ValidateCodeFilter
            - StripPrefix=1
        # 代码生成
        - id: ruoyi-gen
          uri: lb://ruoyi-gen
          predicates:
            - Path=/code/**
          filters:
            - StripPrefix=1
        # 定时任务
        - id: ruoyi-job
          uri: lb://ruoyi-job
          predicates:
            - Path=/schedule/**
          filters:
            - StripPrefix=1
        # 系统模块
        - id: ruoyi-system
          uri: lb://ruoyi-system
          predicates:
            - Path=/system/**
          filters:
            - StripPrefix=1
        # 文件服务
        - id: ruoyi-file
          uri: lb://ruoyi-file
          predicates:
            - Path=/file/**
          filters:
            - StripPrefix=1

# 安全配置
security:
  # 验证码
  captcha:
    enabled: true
    type: math
  # 防止XSS攻击
  xss:
    enabled: true
    excludeUrls:
      - /system/notice
  # 不校验白名单
  ignore:
    whites:
      - /auth/logout
      - /auth/login
      - /auth/register
      - /*/v2/api-docs
      - /csrf

启动ruoyi-gateway

nohup java -javaagent:./skywalking-agent/skywalking-agent.jar \
-Dskywalking.agent.service_name=ruoyi-gateway \
-Dskywalking.collector.backend_service=192.168.79.35:11800 \
-Dspring.profiles.active=dev \
-Dspring.cloud.nacos.config.file-extension=yml \
-Dspring.cloud.nacos.discovery.server-addr=192.168.79.35:8848 \
-Dspring.cloud.config.server-addr=192.168.79.35:8848 \
-jar RuoYi-Cloud/ruoyi-gateway/target/ruoyi-gateway.jar &>/var/log/gateway.log

备注:会一直报这个127.0.0.1:9848。但已注册到nacos 、sentinel 、skywalking。 可暂时忽略
在这里插入图片描述
后面已处理,详细看:https://blog.csdn.net/Nightwish5/article/details/130303765

4.5 部署gateway组件

1、修改monitor,信息都存储在nacos组件中,需要登录nacos修改ruoyi-monitor-dev.yml

# spring
spring: 
  security:
    user:
      name: ruoyi
      password: 123456
  boot:
    admin:
      ui:
        title: 若依服务状态监控

2、启动ruoyi-monitor

nohup java -javaagent:./skywalking-agent/skywalking-agent.jar  \
-Dskywalking.agent.service_name=ruoyi-monitor \
-Dskywalking.collector.backend_service=192.168.79.35:11800 \
-Dspring.profiles.active=dev \
-Dspring.cloud.nacos.config.file-extension=yml \
-Dspring.cloud.nacos.discovery.server-addr=192.168.79.35:8848 \
-Dspring.cloud.nacos.config.server-addr=192.168.79.35:8848 \
-jar RuoYi-Cloud/ruoyi-visual/ruoyi-monitor/target/ruoyi-visual-monitor.jar &>/var/log/monitor.log &

访问监控页面 192.168.79.34:9100
在这里插入图片描述

4.6 部署微服务前端UI

#安装nodejs , npm
sudo curl -sL -o /etc/yum.repos.d/khara-nodejs.repo  https://copr.fedoraproject.org/coprs/khara/nodejs/repo/epel-7/khara-nodejs-epel-7.repo
sudo yum install -y nodejs nodejs-npm

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

#安装nginx
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
sudo yum -y install nginx

1、修改配置

# 修改ui连接gateway地址
cd /root/k8sFile/project/danji-ruoyi/guanWang/RuoYi-Cloud/ruoyi-ui
vim vue.config.js

  // webpack-dev-server 相关配置
  devServer: {
    host: '0.0.0.0',
    port: port,
    open: true,
    proxy: {
      // detail: https://cli.vuejs.org/config/#devserver-proxy
      [process.env.VUE_APP_BASE_API]: {
        target: `http://192.168.79.34:8080`,
        changeOrigin: true,
        pathRewrite: {
          ['^' + process.env.VUE_APP_BASE_API]: ''
        }
      }
    },
    disableHostCheck: true
  },

2、编译项目

#注意 一定要进入对应的前端目录 。否则执行npm会报错
cd /root/k8sFile/project/danji-ruoyi/guanWang/RuoYi-Cloud/ruoyi-ui
[root@node4 ruoyi-ui]# ls
babel.config.js  bin  build  package.json  public  README.md  src  vue.config.js

npm install --registry=https://registry.npmmirror.com
npm run build:prod

3、拷贝编译后的代码至于Nginx站点目录

cd /root/k8sFile/project/danji-ruoyi/guanWang/RuoYi-Cloud/ruoyi-ui
[root@node4 ruoyi-ui]# ls dist/
favicon.ico  html  index.html  index.html.gz  robots.txt  static

mkdir -p /code
cp -r dist/* /code	

4、编写Nginx配置文件

[root@node4 conf.d]# cat ruoyi.oldxu.net.conf 
server {
	listen 20080;
	server_name ruoyi.oldxu.net;
	charset utf-8;
	root /code;
	location / {
		try_files $uri $uri/ /index.html;
		index index.html index.htm;
	}

	location /prod-api/ {
		proxy_set_header Host $http_host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header REMOTE-HOST $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_pass http://192.168.79.84:8080/;
	}
}

5、打开浏览器,输入:http://192.168.79.34:20080 默认账户/密码admin/admin123

在这里插入图片描述
END

其他

#启动所有微服务脚本:
#!/bin/bash
cd /root/k8sFile/project/danji-ruoyi/guanWang
#1 ruoyi-system
nohup java -javaagent:./skywalking-agent/skywalking-agent.jar \
-Dskywalking.agent.service_name=ruoyi-system \
-Dskywalking.collector.backend_service=192.168.79.35:11800 \
-Dspring.profiles.active=dev \
-Dspring.cloud.nacos.config.file-extension=yml \
-Dspring.cloud.nacos.discovery.server-addr=192.168.79.35:8848 \
-Dspring.cloud.nacos.config.server-addr=192.168.79.35:8848 \
-jar RuoYi-Cloud/ruoyi-modules/ruoyi-system/target/ruoyi-modules-system.jar &>/var/log/system.log &
sleep 45 

#2 ruoyi-auth
nohup java -javaagent:./skywalking-agent/skywalking-agent.jar \
-Dskywalking.agent.service_name=ruoyi-auth \
-Dskywalking.collector.backend_service=192.168.79.35:11800 \
-Dspring.profiles.active=dev \
-Dspring.cloud.nacos.config.file-extension=yml \
-Dspring.cloud.nacos.discovery.server-addr=192.168.79.35:8848 \
-Dspring.cloud.nacos.config.server-addr=192.168.79.35:8848 \
-jar RuoYi-Cloud/ruoyi-auth/target/ruoyi-auth.jar &>/var/log/auth.log  &
sleep 45 

#3 gateway
nohup java -javaagent:./skywalking-agent/skywalking-agent.jar \
-Dskywalking.agent.service_name=ruoyi-gateway \
-Dskywalking.collector.backend_service=192.168.79.35:11800 \
-Dspring.profiles.active=dev \
-Dspring.cloud.nacos.config.file-extension=yml \
-Dspring.cloud.nacos.discovery.server-addr=192.168.79.35:8848 \
-Dspring.cloud.config.server-addr=192.168.79.35:8848 \
-jar RuoYi-Cloud/ruoyi-gateway/target/ruoyi-gateway.jar &>/var/log/gateway.log &

sleep 45 
#4 monitor
nohup java -javaagent:./skywalking-agent/skywalking-agent.jar  \
-Dskywalking.agent.service_name=ruoyi-monitor \
-Dskywalking.collector.backend_service=192.168.79.35:11800 \
-Dspring.profiles.active=dev \
-Dspring.cloud.nacos.config.file-extension=yml \
-Dspring.cloud.nacos.discovery.server-addr=192.168.79.35:8848 \
-Dspring.cloud.nacos.config.server-addr=192.168.79.35:8848 \
-jar RuoYi-Cloud/ruoyi-visual/ruoyi-monitor/target/ruoyi-visual-monitor.jar &>/var/log/monitor.log &

在这里插入图片描述

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

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

相关文章

Mysql列的类型定义——整形类型

文章目录 前言一、整数类型的附带属性 类型名称后面的小括号unsignedauto_increment总结 前言 1&#xff09;采用26字母和0-9的自然数加上下互相 ‘_’ 组成&#xff0c;命名简洁明确&#xff0c;多个单词用下划线 ‘_’ 隔开 2&#xff09;全部小写命名&#xff0c;尽量避免…

R语言混合效应(多水平/层次/嵌套)模型及贝叶斯实现技术应用

回归分析是科学研究中十分重要的数据分析工具。随着现代统计技术发展&#xff0c;回归分析方法得到了极大改进。混合效应模型&#xff08;Mixed effect model&#xff09;&#xff0c;即多水平模&#xff08;Multilevel model&#xff09;/分层模型(Hierarchical Model)/嵌套模…

<IBM DB2>《DB2 进程技术模型》

《DB2 进程技术模型》 1 概念说明2 引擎可分派单元EDU3 多线程体系结果优点4 协调代理程序5 防火墙6 客户机程序7 侦听器8 代理程序9 db2fmp10 db2vend10.1 数据库 EDU10.2 事件监视器线程的标识方式如下&#xff1a;10.3 备份和复原线程的标识方式如下&#xff1a; 11 数据库服…

苹果手机没有声音怎么回事?3分钟解决!

案例&#xff1a;苹果手机听不见声音怎么回事&#xff1f; 【朋友们&#xff0c;苹果手机没有声音&#xff0c;不知道我是不是按错了什么。】 如果你的苹果手机没有声音&#xff0c;可能是由于多种原因导致的。苹果手机没有声音怎么回事&#xff1f;看这里&#xff0c;下面是一…

(转载)简述马尔可夫链

赶紧记录一下&#xff0c;通俗易懂。 参考&#xff1a;https://zhuanlan.zhihu.com/p/448575579 马尔科夫链的思想&#xff1a;过去所有的信息都已经被保存到了现在的状态&#xff0c;基于现在就可以预测未来。(用数学方法就能解释自然变化的一般规律模型) 马尔科夫链为状态空…

ROS学习第二十四节——rosbag

1 rosbag使用_命令行 需求: ROS 内置的乌龟案例并操作&#xff0c;操作过程中使用 rosbag 录制&#xff0c;录制结束后&#xff0c;实现重放 实现: 1.准备 创建目录保存录制的文件 mkdir ./xxx cd xxx2.开始录制 -a:all&#xff0c;录制所有话题消息 -o:out&#xff0c…

领跑行泊一体,纵目科技剑指自动驾驶L2到L4的规模化商业落地机遇

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 2019年&#xff0c;通用、丰田、特斯拉等11家车企承诺自动驾驶时间表&#xff0c;他们大都表示在2020年底实现高级别自动驾驶。以特斯拉为例&#xff0c;其CEO埃隆马斯克曾承诺在2020年实现自动驾驶食言后&#xff0c;随后在…

【工作记录】centos7.5环境下通过源码编译方式部署mysql5.7.25

前言 本文介绍centos7.5环境下通过源码编译安装mysql5.7.25的过程及安装过程中遇到的问题解决。 一、准备工作 # 新建目录 # data 数据 config 配置 boost 引导文件 log 日志文件 mkdir -p /opt/mysql/data /opt/mysql/config /opt/mysql/boost /opt/mysql/log /opt/mysql/ …

Python小姿势 - # 基础数据结构与算法

基础数据结构与算法 Python中基础的数据结构与算法是非常重要的&#xff0c;它们可以帮助我们解决很多实际问题。今天我们就来学习一下Python中的基础数据结构与算法。 首先&#xff0c;我们先来了解一下数据结构。数据结构是一种用来存储、组织、处理数据的方法。它可以帮助我…

理解Java程序的执行

main 方法 public class Solution {public static void main(String[] args) {Person person new Person();person.hello();} }class Person {public void hello() {System.out.println("hello");} }源文件名是 Solution.java&#xff0c;这是因为文件名必须与 pub…

初刷leetcode题目总结 -- 数据结构

魔王的介绍&#xff1a;&#x1f636;‍&#x1f32b;️一名双非本科大一小白。魔王的目标&#xff1a;&#x1f92f;努力赶上周围卷王的脚步。魔王的主页&#xff1a;&#x1f525;&#x1f525;&#x1f525;大魔王.&#x1f525;&#x1f525;&#x1f525; ❤️‍&#x1…

Leetcode38. 外观数列

一、题目描述&#xff1a; 给定一个正整数 n &#xff0c;输出外观数列的第 n 项。 「外观数列」是一个整数序列&#xff0c;从数字 1 开始&#xff0c;序列中的每一项都是对前一项的描述。 你可以将其视作是由递归公式定义的数字字符串序列&#xff1a; countAndSay(1) “…

4月19日第壹简报,星期三,农历闰二月廿九

4月19日第壹简报&#xff0c;星期三&#xff0c;农历闰二月廿九坚持阅读&#xff0c;静待花开1. 国家统计局&#xff1a;一季度GDP同比增长4.5%&#xff0c;当前中国经济没有通缩&#xff0c;下阶段也不会出现通缩&#xff0c;全国城镇调查失业率平均值为5.5%。2. 字节跳动发布…

海格里斯HEGERLS高速穿梭车按需定制|四向穿梭车货架和子母穿梭车货架别傻傻分不清?

随着物流行业和仓储行业的发展&#xff0c;越来越多的企业用户对仓储自动化程度要求越来越高。而近年来&#xff0c;各式各样的穿梭车AGV小车也现身各大物流展&#xff0c;备受各大中小型企业用户的青睐。且为了进一步提高仓库仓储的存储率&#xff0c;越来越多的仓储货架和仓储…

Docker之容器数据卷

Docker之容器数据卷 1. 容器数据卷的概念2. 数据卷的使用2.1 方式一2.2 测试22.3 方式二 3. 安装MySQL4. 具名挂载和匿名挂载4.1 匿名挂载4.2 具名挂载 5. 初识 Dockerfile6. 数据卷-容器之间 1. 容器数据卷的概念 将应用和环境打包成一个镜像数据&#xff1f;如果数据都在容器…

Java | 一分钟掌握JDK命令行工具 | 4 - 可视化分析工具

作者&#xff1a;Mars酱 声明&#xff1a;本文章由Mars酱编写&#xff0c;部分内容来源于网络&#xff0c;如有疑问请联系本人。 转载&#xff1a;欢迎转载&#xff0c;转载前先请联系我&#xff01; 前言 我们其实在分析的时候&#xff0c;也并不是必须使用命令行工具才能可以…

八、vue-基础之列表渲染v-for、v-for中的key属性的作用

一、v-for列表渲染 在真实开发中&#xff0c;我们往往会从服务器拿到一组数据&#xff0c;并且需要对其进行渲染。 这个时候我们可以使用v-for来完成&#xff1b;v-for类似于JavaScript的for循环&#xff0c;可以用于遍历一组数据&#xff1b; 二、v-for基本使用 &#xff0…

Kubeadm方式搭建K8s高可用集群【1.23.0版本】

文章目录 一、集群规划及架构二、系统初始化准备(所有节点同步操作)三、安装kubeadm(所有节点同步操作)四、高可用组件安装及配置1、安装Nginx及配置2、安装keepalived及配置 五、初始化Master集群六、扩容K8S集群1、扩容master节点2、扩容node节点 七、安装网络组件Calico八、…

电脑文件剪切到U盘,为什么不见了?这4个技巧帮你找回丢失文件

文件剪切是指对计算机中的文件进行移动操作&#xff0c;将文件从原先的位置剪切到新的位置&#xff0c;然后将这些文件粘贴到新的位置&#xff0c;以完成文件的整个剪切操作。虽然剪切操作起来并不难&#xff0c;但是近日&#xff0c;有位小伙伴遇到了将电脑文件剪切到u盘后出现…

【C++】模板(二)

文章目录 非类型模板参数简单对容器array&#xff08;c11&#xff09;介绍及对比模板特化函数模板特化类模板特化全特化偏特化 模板分离模板总结 非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者type…