Docker学习
Docker安装123456789101112131415161718// 使用官方安装脚本自动安装curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun// 启动 Dockersudo systemctl start docker// 通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。sudo docker run hello-world// 卸载旧版本sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ ...
RocketMQ学习
基本概念Producer Group标识发送同一类消息的Producer,通常发送逻辑一致。发送普通消息的时候,仅标识使用,并无特别用处。若事务消息,如果某条发送某条消息的producer-A宕机,使得事务消息一直处于PREPARED状态并超时,则broker会回查同一个group的其 他producer,确认这条消息应该commit还是rollback。
Consumer Group标识一类Consumer的集合名称,这类Consumer通常消费一类消息,且消费逻辑一致。同一个Consumer Group下的各个实例将共同消费topic的消息,起到负载均衡的作用。Consumer Group、topic 和 tag决定消费唯一Queue消息。
Topic标识一类消息的逻辑名字,消息的逻辑管理单位。无论消息生产还是消费,都需要指定Topic。消息主题,通过Topic对不同的业务消息进行分类。
Tag消息标签,用来进一步区分某个Topic下的消息分类,消息从生产者发出即带上的属性。
选择创建多个Topic,或者在同一个Topic下创建多个Tag。但通常情况下,不同的Topic之 ...
MySQL进阶学习
MySQL基础数据定义语言DDL(Data Definition Language)123456789101112131415161718对象: 数据库和表关键词: create alter drop truncate(删除当前表再新建一个一模一样的表结构)创建数据库:create database school;删除数据库:drop database school;切换数据库:use school;创建表:create table student id int(4) primary key auto_increment name varchar(20) score int(3) );查看数据库里存在的表:show tables;
数据操纵语言DML(Data Manipulation Language)1.插入 INSERT
1234567891011-- 单行插入INSERT INTO test(id, NAME) value(16, 'g');-- 插入且支持子查询INSERT INTO test(id, NAME) ...
MongoDB入门到进阶
安装MongoDB1. 下载:下载地址
2. 配置环境变量,注意到bin目录
3. 创建数据库所在目录,默认在C盘下的data文件夹中的db文件里
自定义数据库路径启动
1mongod --dbpath 数据库路径
自定义端口号启动
1mongod --port 端口号
自定义数据库路径 和 端口号 启动
1mongod --dbpath 数据库路径 --port 端口号
4. cmd输入 mongod 启动服务
5. 通过 localhost:27017 访问
6. cmd输入 mongo 启动客户端
7. 开机自启动mongod服务
在自定义的数据库路径data中新建log文件夹,然后在根目录新建mongod.cfg配置文件(mongodb4后,说是自带服务了,但是我是免安装版的,还是自己配置。)
配置文件内容如下:
123456<!--配置内容-->systemLog: destination: file path: mongod的目录\mongod.cfgstorage: dbPath: mongod的目录\bin
8. ...
Python从入门到进阶
认识Python推荐学习视频传送门:求知讲堂2020python+人工智能 99天完整版
环境与解释器IDE 里如果报下面这类错误:
Cannot set up a python SDK at Python 3.7 ... The SDK seems invalid
优先排查这几项:
1、当前配置的 python.exe 路径是不是已经失效
2、Anaconda 或虚拟环境是不是被移动、删除、重装过
3、IDE 里的解释器是不是选到了错误的 base 环境
4、删掉当前解释器配置后,重新指定一次真实存在的 python.exe
这类问题本质上通常不是代码问题,而是解释器路径、环境元数据或者 IDE 缓存不一致。
第一个main函数12345def print_hi(name): print(f'Hi, {name}') # Press ⌘F8 to toggle the breakpoint.if __name__ == '__main__': print_hi('PyCharm ...
SpringBoot工程实践
配置命名规范
多个单词分隔符用杠 -
RequestParam、PathVariable等注解区别@RequestParam 和 @PathVariable 注解是用于从request中接收请求的,两个都可以接收参数,关键点不同的是@RequestParam 是从request里面拿取值,而 @PathVariable 是从一个URI模板里面来填充
@RequestParamhttp://localhost:8080/user/getUser?postId=14523,根据上面的这个URL,会从request中获取 post_id 的值,然后赋值给别名 postId
123public User getUser(@RequestParam(value="post_id", required=false) String postId){...}
@RequestParam 支持下面四种参数:
defaultValue 如果本次请求没有携带这个参数,或者参数为空,那么就会启用默认值
name 绑定本次参数的名称,要跟URL上面的一样
re ...
Nacos服务
基本概念(1)Nacos 是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您 快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
(2)常见的注册中心:
Eureka(原生,2.0遇到性能瓶颈,停止维护)
Zookeeper(支持,专业的独立产品。例如:dubbo)
Consul(原生,GO语言开发)
Nacos
12345相对于 Spring Cloud Eureka 来说,Nacos 更强大。Nacos = Spring Cloud Eureka + Spring Cloud ConfigNacos 可以与 Spring, Spring Boot, Spring Cloud 集成,并能代替 Spring Cloud Eureka, Spring Cloud Conf ...
Springboot使用Websockt
概述Websocket通常,应用层协议都是完全基于网络层协议TCP/UDP来实现,例如HTTP、SMTP、POP3,而Websocket是同时基于HTTP与TCP来实现:
先用带有 Upgrade:Websocket头Header的特殊HTTP request来实现与服务端握手HandShake;
握手成功后,协议升级成Websocket,进行长连接通讯;
整个过程可理解为:小锤抠缝,大锤搞定。
为什么不使用HTTP长连接来实现即时通讯?事实上,在Websocket之前就是使用HTTP长连接这种方式,如Comet。但是它有如下弊端:
HTTP 1.1 规范中规定,客户端不应该与服务器端建立超过两个的 HTTP 连接, 新的连接会被阻塞。
对于服务端来说,每个长连接都占有一个用户线程,在NIO或者异步编程之前,服务端开销太大。
为什么不直接使用Socket编程,基于TCP直接保持长连接,实现即时通讯?
Socket编程针对C/S模式的,而浏览器是B/S模式,浏览器没法发起Socket请求,正因如此, W3C最后还是给出了浏览器的Sock ...
Springboot整合RabbitMQ
基本介绍MQ全称为Message Queue,消息队列是应用程序和应用程序之间的通信方法。
AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。更准确的说是一种binary wire-level protocol(链接协议)。这是其和JMS的本质差别,AMQP不从API层进行限定,而是直接定义网络交换的数据格式。
RabbitMQ是一个 Erlang 开发的AMQP(Advanced Message Queuing Protocol )的开源实现。
RabbitMQ安装和基本配置1、安装RabbitMQ服务
1docker pull rabbitmq:3-management //注意docker pull rabbitmq如果安装这个是后面不能访问管理网页的
2、查看安装的RabbitMQ的镜像id
1docker images
3、启动RabbitMQ
1docker run -d -p 5672:5672 -p 15672:15672 - ...
Java数据结构与算法
学习总结:尚硅谷2019Java数据结构和算法
线性结构和非线性结构
线性结构
是一个有序数据元素的集合。 其中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。
常用的线性结构有:线性表,栈,队列,双队列,数组,串。
特点:
1.集合中必存在唯一的一个”第一个元素”;
2.集合中必存在唯一的一个”最后的元素”;
3.除最后元素之外,其它数据元素均有唯一的”后继”;
4.除第一元素之外,其它数据元素均有唯一的”前驱”。
5.数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构。
非线性结构
各个数据元素不再保持在一个线性序列中,每个数据元素可能与零个或者多个其他数据元素发生联系。
根据关系的不同,可分为层次结构和群结构。
常见的非线性结构有:二维数组,多维数组,广义表,树(二叉树等)。(其中多维数组是由多个一维数组组成的,所以不再是线性结构)
特点:
非线性结构的逻辑特征是一个结点元素可能对应多个直接前驱和多个后继
稀疏数组和队列稀疏数组
稀疏数组介绍
图示
应用实例
代码实现
...



