Docker tarsgo

news2024/11/19 18:38:12

目录

参考:

mysql镜像安装

一、安装镜像

二、创建mysql容器

使用 tarscloud/framework 部署框架

拉取最新版本镜像

启动镜像(目前只考虑了 linux 上, 时间和本机同步)

目录说明

参数解释

Docker 部署 Tars 应用节点

开发环境 docker-compose

go安装

ubuntu 安装最新版本的 golang,go1.18后不需要配置环境变量,直接默认配置好了,安装完直接就可以go version

下面是编译安装

go环境的基础配置

tarsgo安装和配置TarsGo

必须安装git

安装Tars,终端输入,网络得翻墙才行

编译tars2go协议

demo实例

定义接口文件

编译生成可执行文件,并打包发布包。

服务部署

部署成功后编译测试

备份一个config.conf(报错99%就是配置问题)

发布操作


参考:

官方在线文档

https://www.bookstack.cn/read/Tars-1.8/rumen-kai-fa-huan-jing-bu-shu-tarsgo.md

https://doc.tarsyun.com/#/dev/tarsgo/tarsgo.md

https://gitee.com/juffson/TarsGo

Docker安装

mysql镜像安装

一、安装镜像

1.查找Docker Hub上的MySQL5.7 docker镜像

docker search mysql

2.拉取标签为5.7的MySQL docker镜像

docker pull mysql:5.7

 

3、查看本地镜像库

docker images

 

二、创建mysql容器

创建 docker 虚拟网络

为了方便虚拟机、Mac、Linux 主机等各种环境下的 docker 部署,在本示例中先创建虚拟网络,模拟现实中的局域网内网环境(注意 docker 都还是在同一台机器, 只是 docker 的虚拟 ip 不同, 模拟多机)

# 创建一个名为tars的桥接(bridge)虚拟网络,网关172.25.0.1,网段为172.25.0.0 docker network create -d bridge --subnet=172.25.0.0/16 --gateway=172.25.0.1 tars

启动 MySQL

  • 如果使用 MySQL 8,启动时需要关闭 ssl

docker run -d -p 3306:3306 \
    --net=tars \
    -e MYSQL_ROOT_PASSWORD="123456" \
    --ip="172.25.0.2" \
    -v /data/framework-mysql:/var/lib/mysql \
    -v /etc/localtime:/etc/localtime \
    --name=tars-mysql \
    mysql:8.0.27 \
    --tls-version=invalid

如果你使用的不是 8.0.27 版本,可以通过 docker logs tars-mysql 查看启动日志,确认是否有警告或者错误,或者可以尝试以下参数

 
docker run -d -p 3306:3306 \
    --net=tars \
    -e MYSQL_ROOT_PASSWORD="123456" \
    --ip="172.25.0.2" \
    -v /data/framework-mysql:/var/lib/mysql \
    -v /etc/localtime:/etc/localtime \
    --name=tars-mysql \
    mysql:8.0.27 \
    --ssl=0

由于 MySQL 8 开始,默认的 authentication plugin 从 mysql_native_password 修改为 caching_sha2_password

查看mysql镜像

 
root@wk-VirtualBox:~# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                                                  NAMES
8984ad41f0bb   mysql:8.0.27   "docker-entrypoint.s…"   53 seconds ago   Up 52 seconds   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   tars-mysql
root@wk-VirtualBox:~# docker docker exec -it 8984ad41f0bb bash

进入容器

root@wk-VirtualBox:~# docker exec -it 8984ad41f0bb bash root@8984ad41f0bb:/#

开发宿主机连接

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; FLUSH PRIVILEGES;

验证

为了验证 MySQL 是否正常启动且能正常连接,可通过 host 中的 mysql 客户端进行登录验证

#exit退出mysql mysql -h 172.25.0.2 -u root -p #输入密码,登录成功

使用 tarscloud/framework 部署框架

拉取最新版本镜像

docker pull tarscloud/framework:latest

启动镜像(目前只考虑了 linux 上, 时间和本机同步)

启动镜像(目前只考虑了 linux 上, 时间和本机同步)
# 挂载的/etc/localtime是用来设置容器时区的,若没有可以去掉
# 3000端口为web程序端口
# 3001端口为web授权相关服务端口(docker>=v2.4.7可以不暴露该端口)
docker run -d \
    --name=tars-framework \
    --net=tars \
    -e MYSQL_HOST="172.25.0.2" \
    -e MYSQL_ROOT_PASSWORD="123456" \
    -e MYSQL_USER=root \
    -e MYSQL_PORT=3306 \
    -e REBUILD=false \
    -e INET=eth0 \
    -e SLAVE=false \
    --ip="172.25.0.3" \
    -v /data/framework:/data/tars \
    -v /etc/localtime:/etc/localtime \
    -p 3000:3000 \
    -p 3001:3001 \
    tarscloud/framework:latest
 

安装完毕后, 访问 http://${your_machine_ip}:3000 打开 web 管理平台

目录说明

创建时, 会将 docker 的目录/data/tars 映射到宿主机目录/data/framework, 启动 docker 后, 请检查宿主机目录: /data/tars, 正常情况下会有创建以下几个目录:

  • app_log: tars 服务的日志目录

  • tarsnode-data: tarsnode/data 目录(存放发布到 docker 的业务服务), 保证 docker 重启, 数据不丢失

  • web_log: web 中 tars-node-web 模块的日志(主机才有)

  • demo_log: web 中 tars-user-system 模块的日志(主机才有), (docker>=v2.4.7 这个目录下无内容了)

  • patchs: 上传的发布包(主机才有)

如果这几个目录没有创建, 你可以手工创建, 再重启 docker.

参数解释

MYSQL_IP: mysql 数据库的 ip 地址
MYSQL_ROOT_PASSWORD: mysql 数据库的 root 密码
INET: 网卡的名称(ifconfig 可以看到, 比如 eth0), 表示框架绑定本机 IP, 注意不能是 127.0.0.1
REBUILD: 是否重建数据库,通常为 false, 如果中间装出错, 希望重置数据库, 可以设置为 true
SLAVE: 是否是从节点, 可以部署多台机器, 通常一主多从即可.
MYSQL_USER: mysql 用户, 默认是 root
MYSQL_PORT: mysql 端口

Docker 部署 Tars 应用节点

Tars 应用节点镜像默认为集合环境(Java+GoLang+NodeJs+PHP)的镜像,如果需要可登陆 Docker Hub 查看各语言相关 tag

  1. 拉取镜像最新版本:

docker pull tarscloud/tars-node:latest

  1. 启动 Node(目前只考虑了 linux 上, 时间和本机同步)

最新版本:

docker run -d \
    --name=tars-node \
    --net=tars \
    -e INET=eth0 \
    -e WEB_HOST="http://172.25.0.3:3000" \
    --ip="172.25.0.5" \
    -v /data/tars:/data/tars \
    -v /etc/localtime:/etc/localtime \
    -p 9000-9010:9000-9010 \
    tarscloud/tars-node:latest
  • 初始开放了 9000~9010 端口供应用使用,若不够可自行添加

  • Node 启动之后会自动向框架 172.25.0.3 进行注册,部署完成之后在框架的 运维管理-》节点管理 中可以看到 IP 为 172.25.0.5 的节点启动

注意, 如果在同一台机器上采用--net=host, 同时启动 framework 和 tars-node 镜像, 是不行的, 因为 framework 中也包含了一个 tars-node, 会导致端口冲突, 启动不了

开发环境 docker-compose

  • 下面是使用 docker-compose 直接拉起开发环境的示例,仅供学习参考

  • ./source/Shanghai 是 linux 时区设置文件,需要自行获取

 
version: "3"

services:
  mysql:
    image: mysql:8.0.27
    container_name: tars-mysql
    ports:
      - "3307:3306"
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: "123456"
    volumes:
      - ./mysql/data:/var/lib/mysql:rw
      - ./source/Shanghai:/etc/localtime
    networks:
      internal:
        ipv4_address: 172.25.1.2
  framework:
    image: tarscloud/framework:v3.0.10
    container_name: tars-framework
    ports:
      - "3000:3000"
    restart: always
    networks:
      internal:
        ipv4_address: 172.25.1.3
    environment:
      MYSQL_HOST: "172.25.1.2"
      MYSQL_ROOT_PASSWORD: "123456"
      MYSQL_USER: "root"
      MYSQL_PORT: 3306
      REBUILD: "false"
      INET: eth0
      SLAVE: "false"
    volumes:
      - ./framework/data:/data/tars:rw
      - ./source/Shanghai:/etc/localtime
    depends_on:
      - mysql
  node:
    image: tarscloud/tars-node:latest
    container_name: tars-node
    restart: always
    networks:
      internal:
        ipv4_address: 172.25.1.5
    volumes:
      - ./node/data:/data/tars:rw
      - ./source/Shanghai:/etc/localtime
    environment:
      INET: eth0
      WEB_HOST: http://172.25.1.3:3000
    ports:
      - "9000-9010:9000-9010"
    depends_on:
      - framework
networks:
  internal:
    driver: bridge
    ipam:
      config:
        - subnet: 172.25.1.0/16

go安装

ubuntu 安装最新版本的 golang,go1.18后不需要配置环境变量,直接默认配置好了,安装完直接就可以go version

 
sudo apt install software-properties-common -y
 
sudo add-apt-repository ppa:longsleep/golang-backports
 
sudo apt update
 
sudo apt install golang-go -y
#查看版本
go version

go version

下面是编译安装

 
# 下载安装 我下载的最新的go1.1.9
cd /usr/local/src
wget https://golang.google.cn/dl/go1.18.linux-amd64.tar.gz
tar -zxvf go1.18.linux-amd64.tar.gz -C /usr/local/
# 增加配置文件
vim /etc/profile

export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/opt/go
export PATH=$PATH:$GOPATH/BIN
export GO111MODULE=on
export GOPROXY=https://goproxy.cn
# 应用改变
source /etc/profile
# 查看版本
go version
- go version go1.18 linux/amd64

上面的参考博客的
root@wk-VirtualBox:/www/wwwroot# which go
/usr/bin/go

我自己的
vim /etc/profile
#Added by GO
export PATH=$PATH:/usr/local/src/go/bin
export GOROOT=/usr/local/go
export GOPATH=/www/wwwroot

source ~/.bashrc
//接下来为了验证是否成功安装,可以输入如下
go version
//若显示版本go version go version go1.19.1 linux/amd64则说明安装成功


配置为记得看看是否生效 go env
或者
编辑vim /etc/profile 在尾部插入
/usr/local/src/go/bin  go安装目录
/usr/local/src/go/bin/go version
/www/wwwroot gopath工作目录

source /etc/profile 保存配置

go环境的基础配置

 
#如果在国内, 可以设置go代理:
go env -w GOPROXY=https://goproxy.cn   
#另外请设置go模式为:
go env -w GO111MODULE=auto
#进入 GOPATH目录 需要翻墙
#Golang环境准备,tarsgo要求golang版本在1.9.x及以上。
#安装tars: 
go get github.com/TarsCloud/TarsGo/tars
#编译tars协议转Golang工具:
cd $GOPATH/src/github.com/TarsCloud/TarsGo/tars/tools/tars2go && go build . 

cp tars2go $GOPATH/bin
#检查下GOPATH路径下tars是否安装成功。

#记得给go的权限
[root@localhost tars2go]# which go
/usr/local/src/go/bin/go
sudo chmod -R 777 /usr/local/src/go  #安装目录go的权限
sudo chmod -R 777 /www/wwwroot #给gopath权限
要不然报错下面
go: error obtaining buildID for go tool asm: fork/exec /usr/local/src/go/pkg/tool/linux_amd64/asm: permission denied

tarsgo安装和配置TarsGo

必须安装git

sudo apt-get install git

安装Tars,终端输入,网络得翻墙才行

go get -u -v github.com/TarsCloud/TarsGo/tars

编译tars2go协议

cd $GOPATH/src/github.com/TarsCloud/TarsGo/tars/tools/tars2go && go build . go install

安装完成后,终端输入tars2go,看看该命令是否存在

demo实例

参考文档:https://doc.tarsyun.com/#/dev/tarsgo/tarsgo.md

创建服务

 
cd $GOPATH/src/github.com/TarsCloud/TarsGo/tars/tools
chmod +x create_tars_server.sh
./create_tars_server.sh TestApp HelloGo SayHello

或者
/www/wwwroot/TarsGo/tars/tools/create_tars_server.sh TestApp HelloGo SayHello
cp -r /www/wwwroot/src/TestApp/HelloGo/ /www/wwwroot/bin/HelloGo/



成功终端显示
Great!Done! You can jump in $GOPATH/src/TestApp/HelloGo
这就是生成demo的位置。

定义接口文件

 
# vim HelloGo/SayHello.tars
module TestApp{
    interface SayHello{
        int echoHello(string name, out string greeting);
    };
};
服务端开发,首先把 tars 协议文件转化为 Golang 语言形式
/www/wwwroot/bin/tars2go  -outdir=tars-protocol -module=github.com/Tars/test SayHello.tars
输出 SayHello.tars [SayHello.tars]

编译生成可执行文件,并打包发布包。

 
编译
cd /www/wwwroot/bin/HelloGo/ && make && make tar
或者
cd $GOPATH/bin/HelloGo/ && make && make tar

[root@localhost HelloGo]# pwd
/www/wwwroot/bin/HelloGo
[root@localhost HelloGo]# ls
client  debugtool  go.sum   HelloGo.20220907192630.tgz  main.go   SayHello_imp.go  scripts   tars-protocol
config  go.mod     HelloGo  HelloGo.tgz 

服务部署

(1)执行HelloGo目录下的start.sh,开启服务

 
[root@localhost HelloGo]# pwd
/www/wwwroot/bin/HelloGo
#执行
[root@localhost HelloGo]# ./start.sh 
+ make
install /www/wwwroot/bin/tars2go...
#go get github.com/TarsCloud/TarsGo/tars/tools/tars2go && go install github.com/TarsCloud/TarsGo/tars/tools/tars2go
/www/wwwroot/bin/tars2go  SayHello.tars ...
/www/wwwroot/bin/tars2go  -outdir=tars-protocol -module=github.com/Tars/test SayHello.tars
SayHello.tars [SayHello.tars]
/usr/local/src/go//bin/go mod tidy
/usr/local/src/go//bin/go build  -o HelloGo
+ ./HelloGo --config=config/config.conf
listen obj for TestApp.HelloGo.SayHelloObj failed: listen tcp 127.0.0.1:10015: bind: address already in use
#查看端口是否启动成功
netstat -anp | grep 10015
tcp        0      0 127.0.0.1:10015         0.0.0.0:*               LISTEN      31512/./HelloGo 
#如果被其他应用占用则去cat /www/wwwroot/bin/HelloGo/config/config.conf修改端口或者杀掉kill -9 {PID}

部署成功后编译测试

 
[root@localhost client]# pwd
/www/wwwroot/bin/HelloGo/client
[root@localhost client]# go build client.go 
[root@localhost client]# ls
client  client.go
#开启客户端
./client  
成功终端显示
ret:  0 resp:  hello tars 
报链接不是的原因,就是没启动服务成功(执行HelloGo目录下的start.sh,开启服务)
cd /www/wwwroot/bin/HelloGo
./start.sh #启动服务
dial tcp 172.18.0.4:22899: connect: connection refused
[root@localhost client]# go build client.go
[root@localhost client]# ./client
#终端显示hellp tars 恭喜你已经编译成功了
ret:  0 resp:  hello tars

备份一个config.conf(报错99%就是配置问题)

 
[root@localhost HelloGo]# cat config/config.conf 
<tars>
    <application>
        <server>
            app=TestApp
            server=HelloGo
            local=tcp -h 127.0.0.1 -p 10014 -t 30000
            logpath=/tmp
            <TestApp.HelloGo.SayHelloObjAdapter>
                allow
                endpoint=tcp -h 127.0.0.1 -p 10015 -t 60000
                handlegroup=TestApp.HelloGo.SayHelloObjAdapter
                maxconns=200000
                protocol=tars
                queuecap=10000
                queuetimeout=60000
                servant=TestApp.HelloGo.HttpSayHelloObj
                shmcap=0
                shmkey=0
                threads=1
            </TestApp.HelloGo.SayHelloObjAdapter>
        </server>
    </application>
</tars>

发布操作

TarsGo部署

接着上文提到,我们通过make tar生成了tgz包,此时我们只需要在界面上完成服务的创建,既可以发布。

 

例如我的配置

 

部署完之后,我们回到服务管理模块。

选择刚添加的服务HelloGo,选择发布管理,上传我们刚打出来的tgz包。

 

进入发布管理,选择发布包进行上传,这样服务器上会有所有的发布版本,如果遇到问题也方便快速回滚。。

 

上传完成,回到发布界面,点击发布,即可完成本次发布。

 

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

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

相关文章

CSS自定义滚动条

大家好&#xff0c;我是半夏&#x1f474;&#xff0c;一个刚刚开始写文的沙雕程序员.如果喜欢我的文章&#xff0c;可以关注➕ 点赞 &#x1f44d;&#xff5e; 搞前端的半夏 一起学习交流前端&#xff0c;成为更优秀的前端工程师 前言 之前写过一篇scroll-snap让你的滚动条更…

《c++ primer笔记》第二章 变量和基本类型

前言 最近开始二刷c primer&#xff0c;第一遍很模糊的过了一下&#xff0c;由于前面的基础很多没理解透&#xff0c;从12章到16章基本是懵逼的状态。第二次为了保证质量准备把每个章节个人感觉重要的部分进行一个记录与总结&#xff0c;其中也记录了部分看书过程中遇到的问题&…

[JS]JavaScript基础学习笔记(黑马pink+尚硅谷李立超)

文章目录&#x1f97d; 前言&#x1f97d; JavaScript 简介&#x1f30a; JavaScript 是什么&#x1f30a; JavaScript 的作用&#x1f30a; HTML/CSS/JS 的关系&#x1f30a; 浏览器执行 JS&#x1f30a; JS 的组成&#x1f97d; JavaScript 的书写位置&#x1f30a; 行内式 J…

【C语言】指针进阶(一)

学好指针✊✊✊还有&#xff0c;男孩子在外面要保护好自己一、字符指针字符也有地址&#xff0c;当然可以将其储存——字符指针&#xff0c;是储存字符地址的指针对于普通的单个字符&#xff1a;char ch a;char* pc1 &ch;这里的pc是单个变量ch‘&#xff08;单个字符&…

防火门监控系统在智能建筑消防的重要性及应用介绍

【摘要】&#xff1a; 安全、舒适的生活及办公环境是人们所追求的&#xff0c;因此&#xff0c;在建筑中各种智能化的设备及布控系统显得尤为重要。近年各种频发的高危火灾事件严重威胁到了国民的生命安全&#xff0c;所以火灾监控系统在建筑中的应用显得尤为重要。本文主要从智…

【涵子来信python大全】——第二季——opencv第一篇

各位亲爱的读者&#xff0c;博主&#xff1a; 首先恭喜大家&#xff0c;涵子来信已经到达第二季——2023年篇。今天&#xff0c;我们要步入机器学习的初级内容&#xff1a;python opencv图片&#xff01; 目录 一、提前准备 二、程序代码学习 2.1.如何读取图片 2.2.显示图…

MySQL架构,以及redo log、undo log和binlog的区别(六)

一、Mysql的基本架构图 二、连接器 连接器负责跟客户端建立连接&#xff0c;获取权限、维持和管理连接&#xff1a; 用户名密码验证&#xff1b;查询权限信息&#xff0c;分配对应的权限&#xff1b;可以使用show processlist查看现在的连接&#xff1b;如果太长时间没有动静…

【rt-thread网络】第0篇:使用paho-mqtt软件包连接腾讯云mqtt服务器

文章目录一、mqtt介绍二、paho mqtt介绍三、连接腾讯云的步骤3.1 在腾讯云控制台的IOT HUB创建产品和设备&#xff08;略&#xff09;3.2 根据产品信息填充MQTTClient的连接参数3.3 编译和下载到开发板&#xff08;略&#xff09;四、测试五、参考一、mqtt介绍 MQTT(消息队列遥…

【Linux操作系统】如何实现Linux中软件安装进度条?

文章目录一.回车与换行二.缓冲区问题三.倒计时小程序四.进度条小程序Linux下安装软件时&#xff0c;经常会看到类似上图的进度条&#xff0c;今天带大家用C语言来演示其原理&#xff01; 一.回车与换行 俗话&#xff1a;回车换行&#xff0c;实际是回车和换行的组合 回车是回…

助力工业物联网,工业大数据项目之数据采集

文章目录01&#xff1a;Sqoop命令回顾02&#xff1a;YARN资源调度及配置03&#xff1a;MR的Uber模式04&#xff1a;Sqoop采集数据格式问题05&#xff1a;问题解决&#xff1a;Avro格式06&#xff1a;Sqoop增量采集方案回顾01&#xff1a;Sqoop命令回顾 目标&#xff1a;掌握Sqo…

TypeScript环境搭建 下载/安装 ,编译运行的三种方式:tsc命令行/tsc-node库/webpack搭建环境

目录 什么是TypeScript? 首先来进行全局安装 &#xff1a; 编译运行 方式一&#xff1a;命令行(cmd终端)--->tsc命令行 1.将代码编译为JavaScript的代码&#xff0c;使用cmd终端或者命令行运行以下命令&#xff1a; 2.在浏览器或者Node环境下运行JavaScript代码 方式…

声纹识别与声源定位(一)

针对目前智能计算机及大规模数据的发展&#xff0c;依据大脑处理语音、图像数据方法的deep learning技术应运而生。deep learning技术是应用于音频信号识别&#xff0c;模仿大脑的语音信号学习、识别的模式。在音频信号处理的过程中&#xff0c;运用deep learning进行音频数据的…

极海APM32F072RB开发环境测试

极海APM32F072RB开发环境测试通过自制的开发板进行测试。 &#x1f3ac;基于STM32cubemx工程配置 Keil MDK编译 ST-LINK/V2烧录 &#x1f33b;基于APM32F0xx_SDK Keil MDK编译 ST-LINK/V2烧录 &#x1f33f;官方的SDK包下载地址&#xff1a;https://www.geehy.com/support/…

DMDW主备集群搭建备库先open引发的问题

一、问题描述及配置主备集群搭建成功后&#xff0c;主备库启动脚本中START_MODEmount&#xff0c;备库的lsn号大于等于备库&#xff0c;N_OPN打开次数主库大于备库。假如搭建主备集群后&#xff0c;备库首先OPEN一下后引发的问题如下图&#xff1a;启动脚本中START_MODEopen3、…

tcp紧急指针,mss,rto,零窗口探测等

三次握手、四次挥手、重传机制、滑动窗口、流量控制、拥塞控制、TCP/UDP全解析-蒲公英云 (dandelioncloud.cn)(511条消息) TCP零窗口探测_redwingz的博客-CSDN博客_tcp0窗口TCP系列32—窗口管理&流控—6、TCP zero windows和persist timer - 走看看 (zoukankan.com)TCP协议…

VUE-Axios-解决跨域问题.

vue-axios跨域问题发现: https://github.com/Aealen/TopicSelection-VUE 使用vue-axios向后端发送请求的时候遇到如下报错: vue-axios跨域问题原因: 什么是跨域 **跨域&#xff1a;**指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的&#xff0c;是浏览器…

从零开始编写一个上位机(串口助手)QT Creator + Python

提示&#xff1a;本博客作为学习笔记&#xff0c;有错误的地方希望指正&#xff0c;此文可能会比较长&#xff0c;作为学习笔记的积累&#xff0c;希望对来着有帮助。   绪论&#xff1a;笔者这里使用的是QTCreator和Python来实现一个简单的串口上位机的开发的简单过程&#…

软件测试复习02:静态测试

作者&#xff1a;非妃是公主 专栏&#xff1a;《软件测试》 个性签&#xff1a;顺境不惰&#xff0c;逆境不馁&#xff0c;以心制境&#xff0c;万事可成。——曾国藩 文章目录评审评审过程角色和职责评审类型静态分析控制流分析数据流分析编码标准一致性检查桌面检查代码走查…

Unity 之 资源加载 -- 可寻址系统面板介绍 -- 入门(二)

可寻址系统面板介绍 -- 入门&#xff08;二&#xff09;一&#xff0c;可寻址系统目录介绍1.2 创建分组1.2 目录介绍二&#xff0c;可寻址系统设置介绍2.1 Profile - 配置文件2.2 Catalog - 目录2.3 Content Update - 内容更新2.4 Downloads - 下载2.5 Build - 构建2.6 Build a…

69. 单发多框检测(SSD)代码实现以及QA

之前&#xff0c;我们分别介绍了边界框、锚框、多尺度目标检测和用于目标检测的数据集。 现在我们已经准备好使用这样的背景知识来设计一个目标检测模型&#xff1a;单发多框检测&#xff08;SSD&#xff09; 。该模型简单、快速且被广泛使用。尽管这只是其中一种目标检测模型&…