当前位置: 首页 > news >正文

Spring Cloud Nacos使用总结

 

目录

安装Nacos服务器

服务发现与消费

服务发现与消费-添加依赖

服务发现-配置文件

服务发现-注解

服务发现-Controller

服务消费-配置文件

服务消费-注解与Ribbon消费代码

服务消费-运行

配置管理

配置管理-添加依赖

配置管理-配置文件

配置管理-注解

配置管理-加入配置1

配置管理-加入配置2

配置管理-切换不同环境

DatalD方案

Group方案

Namespace空间方案

单机模式支持mysql

linux版本安装+集群配置

linux安装

更改Nacos启动命令配置原理

集群配置

Linux服务器上Mysql数据库配置

Linux服务器上Nacos的集群配置cluster.conf

编辑Nacos的启动脚本startup.sh

Nginx配置

测试启动

启动Nacos

启动Nginx

集群添加配置

配置微服务为Linux版Nacos集群并注册进Nacos


安装Nacos服务器

Nacos 快速开始

下载软件包,然后sh startup.sh -m standalone即可

服务发现与消费

Nacos Spring Cloud 快速开始

服务发现与消费-添加依赖

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>${latest.version}</version>
</dependency>

注意:版本 2.1.x.RELEASE 对应的是 Spring Boot 2.1.x 版本。版本 2.0.x.RELEASE 对应的是 Spring Boot 2.0.x 版本,版本 1.5.x.RELEASE 对应的是 Spring Boot 1.5.x 版本。

该依赖对生产者和消费者都适用

更多版本对应关系参考:版本说明 Wiki

服务发现-配置文件

配置服务提供者,从而服务提供者可以通过 Nacos 的服务注册发现功能将其服务注册到 Nacos server 上。

在 application.properties 中配置 Nacos server 的地址:

server.port=8070
spring.application.name=service-providerspring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

或者bootstrap.yaml 中配置 Nacos server 的地址和应用名

server:port:9001spring:cloud:nacos:config:server-addr: 192.168.29.1:8848file-extension: yamlapplication:name: nacos-p

之所以需要配置 `spring.application.name` ,是因为它是构成 Nacos 配置管理 `dataId`字段的一部分。

在 Nacos Spring Cloud 中,`dataId` 的完整格式如下:

${prefix}-${spring.profiles.active}.${file-extension}

`prefix` 默认为 `spring.application.name` 的值,也可以通过配置项`spring.cloud.nacos.config.prefix`来配置。

`spring.profiles.active` 即为当前环境对应的 profile,详情可以参考 [Spring Boot文档](https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html#boot-features-profiles)。 **注意:当 `spring.profiles.active` 为空时,对应的连接符 `-` 也将不存在,dataId 的拼接格式变成 `${prefix}.${file-extension}`

`file-exetension` 为配置内容的数据格式,可以通过配置项 `spring.cloud.nacos.config.file-extension` 来配置。目前只支持 `properties` 和 `yaml` 类型。

服务发现-注解

通过 Spring Cloud 原生注解 @EnableDiscoveryClient 开启服务注册发现功能:

@SpringBootApplication
@EnableDiscoveryClient
public class NacosProviderApplication {public static void main(String[] args) {SpringApplication.run(NacosProviderApplication.class, args);}@RestControllerclass EchoController {@RequestMapping(value = "/echo/{string}", method = RequestMethod.GET)public String echo(@PathVariable String string) {return "Hello Nacos Discovery " + string;}}
}

服务发现-Controller

@RestController
@RefreshScope
public class MainController {@Value("${xxoo}")private String userName;@RequestMapping("/hello")public String hello() {return "hello+:" + userName;}
}

@RefreshScope注解能帮助我们做局部的参数刷新,但侵入性较强,需要开发阶段提前预知可能的刷新点,并且该注解底层是依赖于cglib进行代理

注意:服务启动前要先启动Nacos!!

服务消费-配置文件

在 application.properties 中配置 Nacos server 的地址:

server.port=8080
spring.application.name=service-consumerspring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

服务消费-注解与Ribbon消费代码

通过 Spring Cloud 原生注解 @EnableDiscoveryClient 开启服务注册发现功能。给 RestTemplate 实例添加 @LoadBalanced 注解,开启 @LoadBalanced 与 Ribbon 的集成:

@SpringBootApplication
@EnableDiscoveryClient
public class NacosConsumerApplication {// 注意:这里生成resttemplate@LoadBalanced@Beanpublic RestTemplate restTemplate() {return new RestTemplate();}public static void main(String[] args) {SpringApplication.run(NacosConsumerApplication.class, args);}
}@RestController
public class TestController {private final RestTemplate restTemplate;@Autowiredpublic TestController(RestTemplate restTemplate) {this.restTemplate = restTemplate;}@RequestMapping(value = "/echo/{str}", method = RequestMethod.GET)public String echo(@PathVariable String str) {return restTemplate.getForObject("http://service-provider/echo/" + str, String.class);}
}

restTemplate.getForobject(arg1, arg2, arg3...);

第一个参数url表示被调用的目标Rest接口位置

1. url的第一部分是在Nacos中注册的服务提供者名称,如果多个服务提供者注册相同名称, Ribbon会自动寻找其中一个服务提供者并且调用接口方法。这个就是负载均衡功能。

2.url后半部是控制器的请求路径。

第二个参数是返回值类型

1. JavaBean类型或者JavaBean数组类型,如果控制器返回的是List集合,需要使用数组类型接收。

第三个参数是可变参数

1.是传递给url的动态参数,使用参数时候需要在url上需要使用(1)、(2)、(3)进行参数占位,这样传递的参数就会自动替换占位符。 

nacos自带了ribbon,所以不用别的配置!

服务消费-运行

启动 ProviderApplication 和 ConsumerApplication ,调用 http://localhost:8080/echo/2018,返回内容为 Hello Nacos Discovery 2018

配置管理

配置管理-添加依赖

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>${latest.version}</version>
</dependency>

注意:版本 2.1.x.RELEASE 对应的是 Spring Boot 2.1.x 版本。版本 2.0.x.RELEASE 对应的是 Spring Boot 2.0.x 版本,版本 1.5.x.RELEASE 对应的是 Spring Boot 1.5.x 版本。

更多版本对应关系参考:版本说明 Wiki

配置管理-配置文件

在 bootstrap.properties 中配置 Nacos server 的地址和应用名

spring.cloud.nacos.config.server-addr=127.0.0.1:8848spring.application.name=example

说明:之所以需要配置 spring.application.name ,是因为它是构成 Nacos 配置管理 dataId字段的一部分。

在 Nacos Spring Cloud 中,dataId 的完整格式如下:

${prefix}-${spring.profiles.active}.${file-extension}

例如xxx(spring的application的名字)-dev/test(如果没配就没有).properties/yaml

例如my-producer-dev.yaml

prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。

可以在application.properties里面设置spring.profiles.active=dev或者test等等

spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}

可以在boostrap.properties里配置spring.cloud.nacos.config.file-extension=yaml或者properties

file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

配置管理-注解

启动类要加入EnableDiscoveryClient注解

通过 Spring Cloud 原生注解 @RefreshScope 实现配置自动更新

@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {@Value("${useLocalCache:false}")private boolean useLocalCache;@RequestMapping("/get")public boolean get() {return useLocalCache;}
}

配置管理-加入配置1

首先通过调用 Nacos Open API 向 Nacos Server 发布配置:dataId 为example.properties,内容为useLocalCache=true

curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=example.properties&group=DEFAULT_GROUP&content=useLocalCache=true"

运行 NacosConfigApplication,调用 curl http://localhost:8080/config/get,返回内容是 true。

再次调用 Nacos Open API 向 Nacos server 发布配置:dataId 为example.properties,内容为useLocalCache=false

curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=example.properties&group=DEFAULT_GROUP&content=useLocalCache=false"

再次访问 http://localhost:8080/config/get,此时返回内容为false,说明程序中的useLocalCache值已经被动态更新了。

配置管理-加入配置2

配置管理-切换不同环境

DatalD方案

1.指定spring.profile.active和配置文件的DatalD来使不同环境下读取不同的配置,配置规则:默认空间+新建dev和test两个Datald:

a 新建dev配置DatalD (已经创建完成)

b 新建test配置DatalD

 

 2.通过spring.profile.active属性就能进行多环境下配置文件的读取

 

3 配置文件弄多个,然后修改active属性,即可切换到对应配置文件 

Group方案

根据之前的讲解我们都知道Group为分组默认是: DEFAULT_GROUP,所以现在我们就需要分出两组】一组是"Dev开发组",一组是“test测试组”

1.新建Group

DEV_GROUP

建立TEST_GROUP分组,同名的文件nacos-config-client-info.yaml 

2.完成以上配置以后,接下来就需要通过bootstrap+application来配合完成,具体方式:

在config下增加一条Group的配置即可,可以配置为DEV_GROUP或TEST_GROUP

bootstrap:

 application

注意:刚刚将profile改成info了,这个之后就不用变了

3 配置文件弄多个,同名,group不同,修改bootstrap的group属性,即可切换配置文件

Namespace空间方案

我们已经把DatalD方案和Group方案完成了,然后接下来我们来看一下Namespace (命名空间)方案,默认此方案为public,此方案不能删除,我们现在来新建两个命名空间方案

1 新建dev/test的命名空间

2 服务管理-服务列表页面查看

此时我们就可以切换对应的命名空间,然后再通过Group和DatalD来进行切换,如果想要切换命名空间,我们就需要通过命名空间ID来进行切换 

2. 按照域名配置(Namespace+Group+Datald)编写

先通过namespace命名空间ID来确认使用的命名空间 

单机模式支持mysql

在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力,具体的操作步骤:

1.安装数据库,版本要求:5.6.5+

2.初始化mysql数据库,数据库初始化文件:mysql-schema.sql

注意:先创建数据库nacos_config,然后在里面执行sql

 

3.修改nacos自己目录的conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。

spring.datasource.platform=mysqldb.num=1
db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos_devtest
db.password=youdontknow

再以单机模式启动nacos,nacos所有写嵌入式数据库的数据都写到了mysql

这里表示更改Nacos数据库为本机MySql数据库

注意:这里需要注意几个点,一个是url地址需要改,另外数据库的用户和密码也需要更改,同时还有一个是官网上在db.url.0=jdbc:mysql这个属性上少了一个属性为serverTimezone=UTC需要我们手动添加l

测试

重启Nacos服务,此时之前所创建的Namespace+Group+DatalD将全部消失,因为这些数据是保存在之前Nacos内嵌的derby数据库中,现在使用的是本地的MySql数据库,此时我们可以添加配置测试,在查看数据库nacos_config中的config_info表,此时就会有新添加的配置内容

linux版本安装+集群配置

Nacos生产环境下需要搭建集群配置,那么这里我们预计需要: 1个Nginx+3个Nacos注册中心+1个Mysql(对nginx和mysql进行简化)

 

 

linux安装

1.在官网下载NacosLinux版本: https://github.com/alibaba/nacos/releases

 ​​​​​​​2.在Linux系统中解压此文件,并且把其中nacos目录拷贝到mynacos目录中

tar -zxvf nacos-server-2.0.3.tar.gz

3.打开nacos目录下的bin目录输入命令即可执行

sh startup.sh

更改Nacos启动命令配置原理

我们现在知道,想要启动Naocs只需要启动startup.sh命令即可,但是如果启动3个Nacos那?所以如果我们需要启动多个Nacos,就需要自行修改startup命令

集群配置

Linux服务器上Mysql数据库配置

1.在Linux系统上执行SQL脚本,具体位置在nacos目录下的conf中,这里的操作和之前是一样的,我们可以直接打开这个文件然后拷贝到数据库中执行,当然也是要创建数据库使用数据库然后在复制脚本内容,执行即可

create database nacos_config;

use nacos_config; 

2.修改application.properties配置文件,但是修改之前我们最好做一个备份。

cp application.properties application.properties.init

3.这里的修改和我们之间的在win上的修改是完全一样的,所以我们只要打开这个文件,加上对应的内容即可

spring.datasource.platform=mysql

db.num=1

db.ur1.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=UTCl

db.user=root

db.password=123456

Linux服务器上Nacos的集群配置cluster.conf

1.这里开始正式配置集群,首先我们要更改cluster.conf这个配置文件,当然我们也需要备份,但是这里它的原始名称为: cluster.conf.example,我们需要把它保留同时复制出一个cluster.conf来进行更改

cp cluster.conf.example cluster.conf

2.具体配置内容,这里我们在配置集群的时候不能直接写127.0.0.1这样,这样分不清楚,所以我们需要知道具体的IP地址,我们可以通过:

在conf文件里,写入3个服务器对应的ip地址和端口号

ifconfig -a   查看具体ip地址

 

编辑Nacos的启动脚本startup.sh

1,编辑这个脚本的目的,是为了能够让我们在使用此命令启动的时候传入对应的端口号参数,这样携带着具体端口号参数的启动就能启动具体的Nacos节点了,此脚本的为止在/nacos/bin中

2.核心点:传递不同的端口号启动不同的nacos实例,命令:

./startup.sh-p 3333

表示启动端口号为3333的nacos服务器实例,这里要和config保持一直。

3. 具体修改,依旧要备份:cp startup.sh starup.sh.bk 

修改对应的配置文件为红框的部分(原来是没有port的那些东西)

 

Nginx配置

1.我们需要找到Nginx的配置文件,然后做备份

cd /usr/local/nginx

cp nginx.conf nginx.conf.bk

2. 修改nginx.conf

修改成下面红框那样,监听1111端口

 

测试启动

启动Nacos

1.这里注意,我们在启动之前必须要保证JDK环境变量配置好,同时保证以上配置没有问题,具体启动命令:

./startup.sh -o 3333

./startup.sh -o 4444

./startup.sh -o 5555

2.启动完成之后我们需要通过如下指令来测试Nacos集群是否正常启动,数量为3

ps -eflgrep nacos|grep -v grep Iwc -1 

3 访问具体地址 xxx.xxx.xxx.xxx:3333/nacos,出现即可

启动Nginx

1.首先进入到Nginx目录下,启动Nginx,同时要带着我们设置过得配置文件启动

cd /usr/local/nginx/sbin

./nginx -c /usr/local/nginx/conf/nginx.conf

2.通过访问Nginx来测试是否能够访问到Nacos,在win系统浏览器网址上输入:

192.168.124.133:1111/nacos

集群添加配置

1.在Nacos平台上添加配置

 

 

2. 在数据库中检查是否有这一条配置,如果有表示成功添加

配置微服务为Linux版Nacos集群并注册进Nacos

1.我们以9002为例,此时我们要修改application.yaml文件,把之前的Nacos端口换成Nacos集群 

2,配置完成启动服务,我们就可以在Naocs平台上看贝对应的微服务了,此时表示服务注册成功 

相关文章:

Spring Cloud Nacos使用总结

目录 安装Nacos服务器 服务发现与消费 服务发现与消费-添加依赖 服务发现-配置文件 服务发现-注解 服务发现-Controller 服务消费-配置文件 服务消费-注解与Ribbon消费代码 服务消费-运行 配置管理 配置管理-添加依赖 配置管理-配置文件 配置管理-注解 配置管理-…...

目标检测框架yolov5环境搭建

目前&#xff0c;目标检测框架中&#xff0c;yolov5 是很火的&#xff0c;它基于pytorch框架&#xff0c;集成opencv等框架&#xff0c;项目地址&#xff1a;https://github.com/ultralytics/yolov5&#xff0c;对我来说&#xff0c;机器学习、深度学习才开始接触&#xff0c;本…...

Vulnhub:Digitalworld.local (JOY)靶机

kali&#xff1a;192.168.111.111 靶机&#xff1a;192.168.111.130 信息收集 端口扫描 nmap -A -v -sV -T5 -p- --scripthttp-enum 192.168.111.130 使用enum4linux枚举目标smb服务&#xff0c;发现两个系统用户 enum4linux -a 192.168.111.130 ftp可以匿名登陆&#xff…...

STL源码剖析-六大部件, 部件的关系,复杂度, 区间表示

C标准库-体系结构与内核分析 根据源代码来分析 介绍 自学C侯捷老师的STL源码剖析的个人笔记&#xff0c;方便以后进行学习&#xff0c;查询。 为什么要学STL&#xff1f;按侯捷老师的话来说就是&#xff1a;使用一个东西&#xff0c;却不明白它的道理&#xff0c;不高明&…...

总有一个可用的连接,metaIPC1.2进入智能连接新时代

概述 metaIPC有1.0和2.0两个产品系列&#xff0c;2.0版本是可视对讲IPC&#xff0c;1.0新版本1.2在全面兼容ICE规范基础上进行了扩展&#xff0c;使metaIPC1.2进入智能化连接新时代。 metaIPC1.2在host/stun/turn/srs/zlm/janus/freeswitch等p2p/sfu/mcu进行全方位连通测试&a…...

棋盘问题c

在一个给定形状的棋盘&#xff08;形状可能是不规则的&#xff09;上面摆放棋子&#xff0c;棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列&#xff0c;请编程求解对于给定形状和大小的棋盘&#xff0c;摆放k个棋子的所有可行的摆放方案C。 Input …...

华纳云:Linux系统下怎么创建普通用户并更改用户组

本篇内容主要讲解“Linux系统下怎么创建普通用户并更改用户组”&#xff0c;感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷&#xff0c;实用性强。下面就让小编来带大家学习“Linux系统下怎么创建普通用户并更改用户组”吧! 要求 项目做权限管理&#xff0c;不用root部…...

「她时代」背后的欧拉力量

2018年大热电视剧《北京女子图鉴》&#xff0c;讲述了一群在北京打拼的职业女性&#xff0c;她们背井离乡&#xff0c;被现实包裹&#xff0c;被压力、责任困扰&#xff0c;但依旧用倔强的个性、不屈的进取心和深厚的知识技能努力营造、交织出一片励志的天空&#xff0c;既激昂…...

kubespray v2.21.0 在线部署 kubernetes v1.24.0 集群【2】

文章目录创建 虚拟机模板虚拟机名称配置静态地址配置代理yum 配置配置主机名安装 git安装 docker安装 ansible配置内核参数安装 k8s定制安装新增节点配置主机名配置代理配置互信更新 inventory报错kubespray v2.21.0 部署 kubernetes v1.24.0 集群 【1】在 Rocky linux 8.7 使用…...

聚焦运营商信创运维,美信时代监控易四大亮点值得一试!

2021年11月《“十四五”信息通信行业发展规划》提出&#xff0c;到2025年&#xff0c;我国将建立高速泛在、集成互联、智能绿色、安全可靠的新型数字基础设施体系。 此《规划》让我国运营商信创进一步加速&#xff0c;中国移动、中国电信、中国联通等都先后加入信创大军&#x…...

[python刷题模板] 博弈入门-记忆化搜索/dp/打表

[python刷题模板] 博弈入门-记忆化搜索/dp/打表 一、 算法&数据结构1. 描述2. 复杂度分析3. 常见应用4. 常用优化二、 模板代码1. 打表贪心的博弈2. 464. 我能赢吗3. Nim游戏--最最基础版n1。三、其他四、更多例题五、参考链接一、 算法&数据结构 1. 描述 博弈一直没…...

I2C通信

一、理论上了解I2C时序 I2C写数据时序如图&#xff1a; 通过解析器解析I2C通信如上图&#xff08;SCL和SDA反了&#xff09;。 1---起始信号 2、3---应答信号ACK 5---停止信号 起始信号&#xff1a;SCL线是高电平时&#xff0c;SDA线从高电平向低电平切换。 停…...

【Linux】man什么都搜不了,No manual entry for xxx的解决方案

本文首发于 慕雪的寒舍 man什么都搜不了&#xff0c;No manual entry for xxx的解决方案 系统 CentOS 7.6 1.问题描述 今天查手册的时候&#xff0c;发现man什么都查不了。不管是系统接口还是函数&#xff0c;都显示没有入口文档&#xff08;No manual entry for&#xff09;…...

STM32 库函数 GPIO_SetBits、GPIO_ResetBits、GPIO_WriteBit、GPIO_Write 区别

问题&#xff1a;当我使用STM32库函数对 I/O 口进行赋值时&#xff0c;在头文件中发现有四个相关的函数可以做这个操作&#xff0c;那么它们有什么区别呢&#xff1f; 一、GPIO_SetBits //eg: GPIO_SetBits(GPIOA, GPIO_Pin_1 | GPIO_Pin_2);解释&#xff1a;置位(置1)选择的数…...

在 RISC-V Linux 内核中添加模块

在 RISC-V Linux 内核中添加模块 flyfish 本例以添加helloworld字符设备为例 一 源码配置 1 源码 源码文件helloworld.c拷贝到 drivers/char 目录中 源码主要是输出Hello world init 2 Kconfig 打开drivers/char 目录下的Kconfig文件 在endmenu之前加上 config HELLO…...

利用AOP实现统一功能处理

目录 一、实现用户登录校验 实现自定义拦截器 将自定义的拦截器添加到框架的配置中&#xff0c;并且设置拦截的规则 二、实现统一异常处理 三、实现统一数据格式封装 一、实现用户登录校验 在之前的项目中&#xff0c;在需要验证用户登录的部分&#xff0c;每次都需要利…...

会话技巧---英文单词

目录 前言原文表示同意、答应表示不同意表示建议与忠告鼓励称赞担心与忧虑赞美夸奖-单词前言 加油 原文 表示同意、答应 1.agree[əˈgri]vi. 同意(=approve of); 答应(= consent to) agreement [əˈgrimənt] n. (意见或看法)一致 agree with sb about / on sth…...

VS中解决方案和项目的区别

总目录 文章目录总目录一、概述1、解决方案2、项目3、项目文件4、解决方案文件夹二、图解1、图解解决方案和项目的关系2、图解sln文件3、图解项目文件结语一、概述 1、解决方案 解决方案是一个容器&#xff0c;通常包含多个项目&#xff0c;这些项目通常相互引用。 解决方案中…...

MyBatis的parameterType传入参数类型和resultType返回结果类型

记录&#xff1a;413 场景&#xff1a;MyBatis的parameterType传入参数类型和resultType返回结果类型。 版本&#xff1a;JDK 1.8,Spring Boot 2.6.3,mybatis-3.5.9。 1.传入参数parameterType是Integer 传入参数类型parameterType&#xff1a;java.lang.Integer。 返回结…...

什么是Android FrameWork,请你介绍一下?

Framework是什么 Framework的中文意思是“框架”&#xff0c;在软件开发中通常指开发框架&#xff0c;在一个系统中处于内核层之上&#xff0c;为顶层应用提供接口&#xff0c;被设计用来帮助开发者快速开发顶层应用&#xff0c;而不必关心系统内核运行机制&#xff0c;通常Fr…...

【SQL 必知必会】- 第十六课 更新和删除数据

目录 更新数据 不要省略WHERE 子句 在UPDATE 语句中使用子查询 删除数据 不要省略WHERE 子句 友好的外键 删除表的内容而不是表 更快的删除 更新和删除的指导原则 这一课介绍如何利用UPDATE 和DELETE 语句进一步操作表数据。 更新数据 更新&#xff08;修改&#xff09;表中…...

常见哈希算法及其应用

哈希算法经常会被用到&#xff0c;比如我们Go里面的map&#xff0c;Java的HashMap&#xff0c;目前最流行的缓存Redis都大量用到了哈希算法。它们支持把很多类型的数据进行哈希计算&#xff0c;我们实际使用的时候并不用考虑哈希算法的实现。而其实不同的数据类型&#xff0c;所…...

PHP快速入门02-PHP语言基础

文章目录前言一、 数据类型1.1 String&#xff08;字符串&#xff09;1.2 Integer&#xff08;整型&#xff09;1.3 Float&#xff08;浮点型&#xff09;1.4 Boolean&#xff08;布尔型&#xff09;1.5 Array&#xff08;数组&#xff09;1.6 Object&#xff08;对象&#xff…...

FSCapture - 长截图工具

FSCapture - 长截图工具前言下载使用推荐设置长截图前言 目前大部分手机系统都自带长截图功能&#xff0c;但Windows系统没有自带的长截图功能&#xff0c;因此推荐一款第三方工具FSCapture&#xff0c;该软件轻量强大&#xff0c;支持长截图&#xff0c;即滚动截图。 下载 …...

[ 云计算 | Azure ] Chapter 05 | 核心体系结构之管理组、订阅、资源和资源组以及层次关系

本文主要对如下内容进行讲解&#xff1a;Azure云计算的核心体系结构组件中的&#xff1a;资源、订阅和资源组&#xff0c;以及了解 Azure 资源管理器 (ARM) 如何部署资源。 本系列已经更新文章列表&#xff1a; [ 云计算 | Azure ] Chapter 03 | 描述云计算运营中的 CapEx 与…...

【算法LearnNO.1】算法介绍以及算法的时间复杂度和空间复杂度

目录 一、算法 1、算法概述 2、算法的5个特性 3、设计算法的标准 二、时间复杂度 1、时间复杂度的介绍 2、渐进时间复杂度的求法 3、计算时间复杂度的代码举例&#xff08;平方阶示例&#xff09; 4、时间复杂度排序 三、空间复杂度 一、算法 1、算法概述 算法就是解…...

013:Mapbox GL添加marker

第013个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中添加marker。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共70行)相关API参考:专栏目标示例效果 配置方式 1)查看基础设置:https://xiaozhu…...

智慧工厂可视化合集,推动行业数字化转型

图扑软件基于 HTML5&#xff08;Canvas/WebGL/WebVR&#xff09;标准的 Web 技术&#xff0c;满足了工业物联网跨平台云端化部署实施的需求&#xff0c;以低代码的形式自由构建三维数字孪生、大屏可视化、工业组态等等。从 SDK 组件库&#xff0c;到 2D 和 3D 编辑&#xff0c;…...

工作流调度系统 Azkaban介绍与安装(一)

文章目录前言1、为什么要用工作流调度系统2、常见的工作流调度系统1 集群规划2 配置 MySQL3 配置 Executor Server3.1 修改 azkaban.properties3.2 启动3.3 激活4 配置 Web Server4.1 修改 azkaban.properties4.2 修改azkaban-users.xml文件&#xff0c;添加 atguigu 用户4.3 启…...

【Python基础入门学习】Python工具Pycharm的安装与使用

一、关于Python 1.1 下载Python 在下载与安装pycharm工具前&#xff0c;一定要先安装python 打开Python官网&#xff1a;python下载打开上述网站&#xff0c;选择 Downloads -> 系统 我是Windows系统&#xff0c;点击进入后&#xff0c;找到自己要安装的安装包以及想安装的…...