服务注册配置中心Nacos

news2024/11/19 1:39:10

文章目录

  • 一. 前言
  • 二. 下载安装
      • 1. 下载安装包
      • 2. Windows环境安装
      • 3. Linux环境安装
        • 1. 单击模式启动
        • 2. 集群模式启动
        • 3. 远程web控制
        • 4. 注册为系统服务
  • 三. 基本使用
      • 1. 添加依赖
      • 2. 服务注册
      • 3. 配置实例集群属性
      • 4. 实例权重负载均衡
      • 5. 环境隔离
      • 6. 临时实例与非临时实例
  • 四. Nacos配置管理
      • 1. Nacos实现配置热更新
      • 2. Nacos多环境配置共享
  • 五. Nacos集群搭建
      • 1. 搭建数据库
      • 2. 启动
      • 3. 安装Nginx


一. 前言

PS: 本篇博客为作者学习笔记实际技术参考意义不大,小编将持续更新完善本篇文章。
Nacos服务注册配置中心,一个更易于构建云原生应用的动态服务发现,配置管理和服务管理平台,属于Springcloud Alibaba 体系中的组件之一,也是目前企业开发中最流行的服务注册与配置中心。
在这里插入图片描述
更多详细信息各位小伙伴可以参照Springcloud Alibaba官网: 点击跳转官网
Nacos源码地址: 点击跳转源码地址
Nacos官网地址: 点击跳转官网
一些注册中心特性对比:
在这里插入图片描述

二. 下载安装

1. 下载安装包

Nacos既可以在Windows上使用,也可以在Linux上面使用,下面两种系统的Nacos安装小编都会介绍到,首先我们要准备好Nacos的安装包,点进入Nacos的仓库 点击跳转。
点击 【发行版】就可以看到Nacos的全部历史版本
在这里插入图片描述
点击 【标签】可以选择想要的版本下载
在这里插入图片描述
选择好版本点击最右边的【下载】后翻到最下面就可以看到对应的下载文件,【zip】则是windows版本 【tar.gz】就是Linux使用的版本。
在这里插入图片描述

2. Windows环境安装

准备好Windows环境下的安装包后,就可以开始Windows环境下Nacos的安装了。
将准备好的安装包解压到任意目录下(最好是全英文的路径)解压后文件夹内结构如下:
在这里插入图片描述
bin目录是存放启动脚本的目录 conf目录是存放Nacos配置文件的目录。
关于端口配置,Nacos的默认端口是8848,如果你电脑上的其它进程占用了8848端口,请先尝试关闭该进程。如果无法关闭占用8848端口的进程,也可以进入nacos的conf目录,修改配置文件中Nacos默认启动占用的端口:
在这里插入图片描述
在这里插入图片描述
确认端口没有问题后就可以进入bin目录启动cmd窗口,使用下面的命令启动Nacos:

startup.cmd -m standalone

也可以直接双击startup.cmd文件启动Nacos
在这里插入图片描述
看到上面这个样子就是启动成功了,也标明了启动占用的端口和后台的访问地址。
我们用浏览器直接访问 http://127.0.0.1:8848/nacos 即可,正常情况下会看到下面的内容:
在这里插入图片描述
默认的用户名和密码都是 nacos 直接登录即可,至此Windows环境下安装Nacos就完成了

3. Linux环境安装

对于Linux环境下Nacos安装相对于Windows环境下的安装要复杂一点,首先要准备好Linux版本的Nacos安装包,其次Nacos依赖于JDK运行,索引Linux上也需要安装JDK才行。
没有安装java环境的小伙伴可以参考小编这篇文章 点击跳转 配置好java环境后就可以开始我们的安装了。
首先将我们准备好的安装包上传到任意目录,列如 /usr/local/ 然后使用下面的命令进行解压:

tar -xvf nacos-server-1.4.1.tar.gz

然后执行下面的命令删除安装包:

rm -rf nacos-server-1.4.1.tar.gz

1. 单击模式启动

首先进入到已经解压好的Nacos目录的bin目录下:

cd /usr/local/nacos/bin

执行下面的命令启动Nacos:

sh startup.sh -m standalone

下面的情况是正常启动了
在这里插入图片描述
停止Nacos的命令:

sh shutdown.sh

2. 集群模式启动

集群模式的启动需要先创建数据库,脚本位置: /usr/local/nacos/conf/nacos-mysql.sql 利用该脚本创建数据库。
紧接着我们需要配置一下Nacos的配置文件:

cd /usr/local/nacos/conf
vim application.properties

修改下面的内容(将原来的注释放开,)

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://10.114.12.177:3306/nacos?serverTimezone=GMT%2B8&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root

注意: 此处的ip地址、端口号、数据库名、账号和密码都需要按照自己的实际情况进行修改
启动:

cd /usr/local/nacos/bin
sh startup.sh

查看启动日志:

cd /usr/local/nacos/logs
vim start.out

3. 远程web控制

我们可以执行下面的命令放行当前主机的8848端口,以便我们访问远程的web控制台:

firewall-cmd --zone=public --add-port=8848/tcp --permanent

放行完端口再执行下面的命令重启一下当前主机的防火墙:

firewall-cmd --reload

紧接着我们就可以访问 http://当前主机地址:8848/nacos 就会出现下面的情况:
在这里插入图片描述
默认的用户名是: nacos 默认的密码也是: nacos

4. 注册为系统服务

为了更加方便的管理Nacos,最好是将其注册为系统服务
首先使用下面的命令修改 /usr/local/nacos/bin/startup.sh 启动文件

vim /usr/local/nacos/bin/startup.sh

在这里插入图片描述
将路径修改为当前系统中存放jdk的路径:
在这里插入图片描述
使用下面的命令创建并编辑nacos.service文件:

vim /lib/systemd/system/nacos.service

向文件中添加下面的内容:

[Unit]
Description=nacos
After=network.target
 
[Service]
Type=forking
ExecStart=/usr/local/nacos/bin/startup.sh -m standalone
ExecReload=/usr/local/nacos/bin/shutdown.sh
ExecStop=/usr/local/nacos/bin/shutdown.sh
PrivateTmp=true
 
[Install]  
WantedBy=multi-user.target

保存退出后执行下面的命令重载一下系统服务:

systemctl daemon-reload

就完成了Nacos的系统服务注册,服务名就叫nacos
之后我们就可以使用操作系统服务的命令对Nacos进行操作了,下面是一些常用命令:

systemctl start nacos.service // 启动nacos服务
systemctl stop nacos.service // 停止nacos服务
systemctl status nacos.service // 查看nacos服务状态
systemctl enable nacos.service // 设置为开机自启
systemctl restart nacos.service // 重启nacos服务
systemctl reload nacos.service // 重载nacos服务 (推荐使用)

三. 基本使用

1. 添加依赖

要想使用Nacos首先要在父工程的POM文件中添加下面的依赖:

<dependencyManagement>
	<dependencies>
		<dependency>
		    <groupId>com.alibaba.cloud</groupId>
		    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
		    <version>2.2.5.RELEASE</version>
		    <type>pom</type>
		    <scope>import</scope>
		</dependency>
	<dependencies>
<dependencyManagement>

在这里插入图片描述
然后修改子工程的POM文件,将下面的依赖加入其中:

<!-- nacos客户端依赖包 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

2. 服务注册

spring:
	application:
     name: orderservice  # 服务名
	cloud:
	 nacos:
	 	server-addr: 127.0.0.1:8848 # 服务地址

再启动服务就可以在后台管理界面中的【服务列表】选项卡的子选项卡 【服务列表】中找到我们注册的服务。
在消费者进行服务调用的时候也就可以通过服务名进行调用了(orderservice代替id地址和端口),且Nacos自带了负载均衡。

3. 配置实例集群属性

配置当前服务的实例归属于哪个集群
修改模块的Yml配置文件:

spring:
	application:
     name: orderservice  # 服务名 可以通过相同的服务名部署多个实例
	cloud:
	 nacos:
	 	server-addr: 127.0.0.1:8848 # 服务地址
	 	discovery:
	 	  cluster-name: hangzhou # 集群名

在web控制台中可以看到集群的信息,再编辑Yml配置文件设置负载均衡的1Rule为NacosRule,这个规则优先会寻找与自己同集群的服务,本地集群找不到提供者,才去其它集群寻找,并且会报警告。
确定了可用实例列表后,再采用随机负载均衡挑选实例。

userservice:
  ribbon:
  	# 优先请求同集群的实例
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule

4. 实例权重负载均衡

实际部署中会出现这样的场景:服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求。
Nacos提供了权重配置来控制访问频率,权重越大则访问频率越高。
在这里插入图片描述
默认权重都是1,在服务升级和优化时可以将该服务权重设置成0,该服务就不会再收到请求。

5. 环境隔离

Nacos中服务存储和数据存储的最外层都是一个名为namespacel的东西,用来做最外层隔离。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改实例的命名空间需要修改服务的配置文件,默认都是存储在public(保留空间中):

spring:
	application:
     name: orderservice  # 服务名 可以通过相同的服务名部署多个实例
	cloud:
	 nacos:
	 	server-addr: 127.0.0.1:8848 # 服务地址
	 	discovery:
	 	  cluster-name: hangzhou # 集群名
	 	  namespace: 4d6ce343-9e1b-44df-a90f-2cf2b6b3d177 # dev环境 命名空间Id

在这里插入图片描述
注意: 只有相同命名空间的服务实例才可以相互调用

6. 临时实例与非临时实例

默认在Nacos中注册的实例都是临时实例,那么临时实例与非临时实例有什么区别呢?
临时实例: 采用心跳检测(服务每隔一段时间就会发送一次请求给注册中心Nacos确保实例的可用性)当长时间没有向Nacos发送心跳请求Nacos就会在服务列表中将该实例剔除。
非临时实例: 不会拥有心跳检测机制,而是由Nacos主动发送请求询问实例,如果检测到非临时实例Nacos不会将其剔除,而是标记为不健康状态除非手动删除,否则会一直等待其恢复健康状态。
对于配置实例是否为临时实例需要配置实例的YAM配置文件:

spring:
	application:
     name: orderservice  # 服务名 可以通过相同的服务名部署多个实例
	cloud:
	 nacos:
	 	server-addr: 127.0.0.1:8848 # 服务地址
	 	discovery:
	 	  cluster-name: hangzhou # 集群名
	 	  namespace: 4d6ce343-9e1b-44df-a90f-2cf2b6b3d177 # dev环境 命名空间Id
	 	  ephemeral: false # 是否为临时实例 默认是true

四. Nacos配置管理

1. Nacos实现配置热更新

Nacos处理可以担任服务注册中心,还可以担任服务的配置中心,首先我们需要在模块的POM文件中添加Nacos的配置管理依赖:

<!--nacos的配置管理依赖-->
<dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

然后我们在后台管理界面中点击【配置管理】的【配置列表】模块右上角的加号先添加一个。
在这里插入图片描述
【Data ID】其实就是配置文件名 (必须唯一) 一般以“服务名-运行环境.后缀” 作为文件名
列如:userservice-dev.yaml
【Group】组ID 这个自定义
【配置格式】一般都是使用YAML,根据后缀自定义
【配置内容】根据选择的文件格式书写有热更新需求的配置
在这里插入图片描述
修改完成后点击右下角的【发布】即可,由于在读取Nacos中的配置文件之前我们实例就需要知道Nacos的服务地址等信息,所以我们一般将Naocs的配置放在加载优先级更高的bootstrap.yml文件中
在这里插入图片描述
: bootstrap.yml又叫引导文件,加载优先级比application.yml要高
可以在resources目录中添加一个bootstrap.yml,需要添加的配置如下:

spring:
  application:
    name: userservice # 服务名
  profiles:
    active: dev # 环境
  cloud:
    nacos:
      server-addr: 127.0.0.1:8848 # nacos地址
      config:
        file-extension: yaml # 文件后缀名

其中“服务名”、“环境”、“文件后缀名” 其实就是我们上面在后台创建的配置文件名,相应的就会读取后台相应配置文件内容,在项目中我们也可以使用value注解读取配置文件中的内容,列如:

 @Value("${pattern.dateformat}")
 private String dateformat;

要想实现配置热更新还差最后一步,Ncos中的配置文件变更后,微服务无需重启就可以感知。不过需要通过下面两种配置实现:
在这里插入图片描述
需要 prefix指定的前缀名跟变量名拼接和后台管理系统中的属性一致才可生效,一般第一种方式用的比较多。
在这里插入图片描述

2. Nacos多环境配置共享

假设一个业务场景,一个配置在开发环境,生产环境都需要用到,那么每份配置都配置一次显然是相当麻烦的。
在这里插入图片描述
这样无论是生产还是测试相同的配置都写在userservice.yaml中,这样给我们带来了极大的便利

spring:
  application:
    name: userservice # 服务名
  profiles:
    active: dev # 环境
  cloud:
    nacos:
      server-addr: 127.0.0.1:8848 # nacos地址
      config:
        file-extension: yaml # 文件后缀名

这样即可以读取到userservice-dev.yaml 配置文件的内容,也可以读取到userservice.yaml配置文件中的内容,即使环境为test环境也可以读取到userservice.yaml配置文件的内容。
如果两个文件中有一个相同的属性,或者说application.yml也有一个属性相同,那么文件的加载优先级是:

userservice-dev.yaml > userservice.yaml > application.yml

五. Nacos集群搭建

官方给出的Nacos集群图:
请添加图片描述
其中包含3个nacos节点,然后一个负载均衡器代理3个Nacos。这里负载均衡器可以使用nginx。
我们计划的集群结构:
请添加图片描述

三个nacos节点的地址:

节点ipport
nacos1192.168.150.18845
nacos2192.168.150.18846
nacos3192.168.150.18847

搭建集群的基本步骤:

  • 搭建数据库,初始化数据库表结构
  • 下载nacos安装包
  • 配置nacos
  • 启动nacos集群
  • nginx反向代理

1. 搭建数据库

Nacos默认数据存储在内嵌数据库Derby中,不属于生产可用的数据库,官方推荐的最佳实践是使用带有主从的高可用数据库集群
这里我们以单点的数据库为例来讲解。
将Nacos解压后,首先启动本机mysql,创建nacos数据库,并在nacos_config数据库下执行nacos-mysql.sql脚本 (脚本存放位置nacos/cont/nacos-mysql.sql):

mysql> source /opt/nacos/cont/nacos-mysql.sql;

进入nacos的conf目录,修改配置文件cluster.conf.example,重命名为cluster.conf:
然后添加内容:

127.0.0.1:8845
127.0.0.1.8846
127.0.0.1.8847

然后修改application.properties文件,添加数据库配置:

spring.datasource.platform=mysql
db.num=1
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=123

2. 启动

将nacos文件夹复制三份,分别命名为:nacos1、nacos2、nacos3
然后分别修改三个文件夹中的application.properties,
nacos1:

server.port=8845

nacos2:

server.port=8846

nacos3:

server.port=8847

然后我们就可以分别将他们都启动起来

3. 安装Nginx

关于Nginx的安装小编的专栏里面有对应的文章。
修改conf/nginx.conf文件,配置如下:

upstream nacos-cluster {
    server 127.0.0.1:8845;
	server 127.0.0.1:8846;
	server 127.0.0.1:8847;
}
server {
    listen       80;
    server_name  localhost;

    location /nacos {
        proxy_pass http://nacos-cluster;
    }
}

而后在浏览器访问:http://localhost/nacos即可。
代码中application.yml文件配置如下:

spring:
  cloud:
    nacos:
      server-addr: localhost:80 # Nacos地址

实际部署时,需要给做反向代理的nginx服务器设置一个域名,这样后续如果有服务器迁移nacos的客户端也无需更改配置,Nacos的各个节点应该部署到多个不同服务器,做好容灾和隔离。

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

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

相关文章

Gradle学习笔记之文件操作

文章目录本地文件文件集合文件树文件拷贝归档文件Gradle中的文件操作方式有五种&#xff1a;本地文件、文件集合、文件树、文件拷贝和归档文件。 本地文件 比较简单&#xff0c;API跟java中的完全一致&#xff1a; task("test_file") {doFirst {def f1 file(&quo…

史上最强,这份在各大平台获百万推荐的Java核心手册实至名归

又逢“金九银十”&#xff0c;年轻的毕业生们满怀希望与忐忑&#xff0c;去寻找、竞争一个工作机会。已经在职的开发同学&#xff0c;也想通过社会招聘或者内推的时机争取到更好的待遇、更大的平台。 然而&#xff0c;面试人群众多&#xff0c;技术市场却相对冷淡&#xff0c;…

再学C语言13:字符串(4)——scanf函数

一、scanf函数的使用 scanf函数功能&#xff1a;把输入的字符串转换成各种形式&#xff08;整数、浮点数、字符、字符串&#xff09; scanf函数是printf函数的逆操作 scanf函数与printf函数一样使用控制字符串和参数列表 控制字符串指出输入将被转换成的格式 主要区别在参…

Qt实现表格控件

一、概述 最近在研究QTableView支持多级表头的事情&#xff0c;百度了下网上资料还是挺多的。实现的方式总的来说有2种&#xff0c;效果都还不错&#xff0c;最主要是搞懂其中的原理&#xff0c;做到以不变应万变。 实现多级表头的方式有以下两种方案 行表头和列表头都是用一…

网络空间安全——利用 CVE-2017-0213 提权

利用 CVE-2017-0213 提权 VE-2017-0213 是一个比较冷门的COM 类型混淆 (Type Confusion)漏洞。巧妙的利用该漏洞&#xff0c;可以实现本地的提权。该漏洞由著名的Google Project zero 发现。 下面就简单演示一下利用CVE-2017-0213漏洞简单提权&#xff0c; 首先下载CVE-2017…

【环境搭建】RocketMQ集群搭建

前置条件及效果图 条件&#xff1a; 两台服务器&#xff0c;个人是两台腾讯云服务器(其中嫖的朋友一个)&#xff1b; 版本&#xff1a; rocketmq-version:4.4.0rocketmq-console(mq控制台)Java&#xff1a;1.8maven:3.6.3 集群模式选择&#xff1a; 单master 这种方式风险…

【Django】第三课 基于Django超市订单管理系统开发

概念 本文在上一文之上&#xff0c;针对管理员&#xff0c;经理&#xff0c;普通员工身份的用户操作供应商管理模块功能。 功能实现 供应商管理模块属于业务功能&#xff0c;这里管理员不具备操作权限&#xff0c;而经理具备与供应商之间谈合作的实际需要&#xff0c;因此经…

Linux | 进程理解,fork | 进程地址空间

文章目录冯诺依曼体系结构的理解为什么要有内存的存在&#xff1f;操作系统的管理进程的理解系统调用接口进程的查看fork进程状态Linux进程具体的状态孤儿进程总结进程优先级怎样修改优先级&#xff1f;进程其他概念进程抢占进程地址空间利用代码验证地址区域验证堆区和栈区的增…

python3GUI--音乐播放器(精简版)By:PyQt5(附下载地址)

文章目录一&#xff0e;前言二&#xff0e;预览1.主界面2.歌单页3.歌词页4.播放列表5.mini6.设置三&#xff0e;心得1.解耦2.体验优化3.歌词显示四&#xff0e;总结一&#xff0e;前言 传送门&#xff1a; 1.python3GUI–打造一款音乐播放器By:PyQt5&#xff08;附下载地址&am…

LD_PRELOAD劫持

在前面UUCTF的uploadinject题&#xff0c;遇到了 LD_PRELOAD劫持&#xff0c;之前没遇见过&#xff0c;刚好借此机会学一学。不能小瞧这个变量&#xff0c;它甚至可以弹shell&#xff0c;绕过disable_functions&#xff0c;非常危险。下面来介绍一下这个变量&#xff0c;以及怎…

XDocReport使用入门

XDocReport 简介 XDocReport是GitHub上根据麻省理工学院许可证开源的Wrod导出框架。XDocReport可以根据ODT、Doc、Docx文档模板通过模板引擎语法&#xff08;Freemarker、Velocity&#xff09;转换为另外一种格式文档&#xff08;Doc、Docx、XHTML、PDF&#xff09;。 XDocR…

防沉迷管理系统

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a; 1、用户模块 1.1注册&#xff1a;用户通过注册生产账号&#xff0c;并在数据库存储数据 1.2登录&#xff1a;用户登录后…

k8s学习-CKA真题-k8s升级(kubeadm、kubelet、kubectl等)

目录题目解析命令准备工作升级组件升级kubectl、kubelet收尾结果killer 模拟环境题目解析解题参考题目 解析 结合博主当前环境&#xff0c;调整后题目为&#xff1a; 现有的 Kubernetes 集权正在运行的版本是 1.23.6&#xff0c;仅将主节点上的所有 kubernetes 控制面板和组件…

【语音处理】基于加权压力匹配方法(WPMM)的声音系统研究(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

【小程序】案例 - 本地生活(列表页面)

1. 演示页面效果以及主要功能 页面导航并传参 上拉触底时加载下一页数据 下拉刷新列表数据 2. 列表页面的 API 接口 以分页的形式&#xff0c;加载指定分类下商铺列表的数据&#xff1a; 接口地址 https://www.escook.cn/categories/:cate_id/shops URL 地址中的 :cate…

博泰应宜伦:智能汽车上攻时刻,需要“国家级”平台登场

作者 | 张祥威 编辑 | 王博汽车智能化转型的道路上&#xff0c;有个问题可能并非杞人忧天&#xff0c;而是值得整个行业警醒的。那就是&#xff1a; 中国的智能汽车发展&#xff0c;是否会被国外“卡脖子”&#xff1f; 卡脖子的担忧&#xff0c;其实也可以理解为&#xff0c;中…

【Linux】shell及其运行原理

目录1.什么是shell2.shell的功能3.shell的感性理解4.为什么不安装图形化界面1.什么是shell shell &#xff1a; 操作系统内核的外壳 通常来讲&#xff0c;计算机硬件是由运算器、控制器、存储器、输入/输出设备等硬件共同组成的&#xff0c;而让各种硬件设备各司其职且能协同运…

【基础强训】day3

一、选择题 &#x1f4a6;第1题&#xff1a; 以下程序的输出结果是&#xff08;&#xff09; #include <stdio.h> main() { char a[10] {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, *p; int i; i 8; p a i; printf("%s\n", p - 3); } A 6 B 6789 C 6 D 789 B 先定义…

阳了之后,python实用工具之:疫情信息快速查看

嗨害大家好鸭&#xff01;我是小熊猫&#xff01;&#xff08;阳了个阳版&#xff09; &#xff08;先给大家消消毒&#xff09; 不好意思&#xff0c;很久没给大家更新了… 主要是小熊猫我不小心阳了… 大家要多注意自己的身体健康 多喝点热水 这个真的是个好东西 在家里稍…

深度学习—00入门 神经网络 pytorch

1、深度学习简介 深度学习是机器学习的一个分支&#xff0c;简单来说就是通过人工神经网络&#xff0c;强行在业务的 输入 和 输出 之间&#xff0c;暴力耦合一个出一个数学模型。 1.1 深度学习特点 1、由于是暴力耦合出来的模型&#xff0c;自然模型可解释性很差&#xff0c…