08 2021 档案
摘要:MongoRepository操作MongoDB 环境搭建 添加Repository类 @Repository public interface UserRepository extends MongoRepository<User, String> { } 添加操作 package com.stu
阅读全文
摘要:MongoTemplate操作MongoDB 集成简介 spring-data-mongodb提供了MongoTemplate与MongoRepository两种方式访问mongodb,MongoRepository操作简单,MongoTemplate操作灵活,我们在项目中可以灵活适用这两种方式操作
阅读全文
摘要:MongoDB的常用CURD操作 INSERT插入数据 db.User.save({name:'zhangsan',age:21,sex:true}) #插入User数据 db.User.find() #查看User {"_id": Objectld("4f69e680c9106ee2ec95da6
阅读全文
摘要:MongoDB的基本操作 数据库操作 一个mongodb中可以建立多个数据库 常用操作: 1、 Help查看命令提示 db.help(); 2、 切换/创建数据库 use test 如果数据库不存在,则创建数据库,否则切换到指定数据库 3、 查询所有数据库 show dbs; 4、 删除当前使用数据
阅读全文
摘要:MongoDB的安装 MongoDB简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB 将数据存储为一个文档,数据结构由键
阅读全文
摘要:Docker镜像仓库 搭建私有镜像仓库 搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。 官网地址:https://hub.docker.com/_/registry 1.简化版镜像仓库 Docker官方的Docker Registry是一个基础版本的Docker镜像仓
阅读全文
摘要:Docker-Compose集群 初识DockerCompose Docker Compose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器! Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。格式如下: version: "3.8" se
阅读全文
摘要:Dockerfile自定义镜像 镜像结构 常见的镜像在DockerHub就能找到,但是我们自己写的项目就必须自己构建镜像了。 而要自定义镜像,就必须先了解镜像的结构才行。 镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。 我们以MySQL为例,来看看镜像的组成结构: 简单来说,镜像就
阅读全文
摘要:Docker的基本操作 镜像操作 1.镜像名称 首先来看下镜像的名称组成: 镜名称一般分两部分组成:[repository]:[tag]。 在没有指定tag时,默认是latest,代表最新版本的镜像 如图: 这里的mysql就是repository,5.7就是tag,合一起就是镜像名称,代表5.7版
阅读全文
摘要:Docker安装 Docker简介 Docker是一个快速交付应用、运行应用的技术 1、可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统中 2、运行时利用沙箱机制形成隔离容器,各个应用互补然干扰 3、启动、移除都可以通过一行命令完成,方便快捷 微服务虽然具备各种各样的
阅读全文
摘要:EasyExcel的使用 EasyExcel简介 EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。 文档地址:https://alibaba-easyexcel.github.io/index.html github地址
阅读全文
摘要:幂等性、优先级队列、惰性队列 幂等性 用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。 举个最简单的例子,那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常, 此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查
阅读全文
摘要:发布确认高级 引言 在生产环境中由于一些不明原因,导致 rabbitmq 重启,在 RabbitMQ 重启期间生产者消息投递失败,导致消息丢失,需要手动处理和恢复。于是,我们开始思考,如何才能进行 RabbitMQ 的消息可靠投递呢? 特别是在这样比较极端的情况,RabbitMQ 集群不可用的时候,
阅读全文
摘要:ttl延迟队列 延迟队列简介 延时队列,队列内部是有序的,最重要的特性就体现在它的延时属性上,延时队列中的元素是希望 在指定时间到了以后或之前取出和处理,简单来说,延时队列就是用来存放需要在指定时间被处理的 元素的队列。 使用场景 1.订单在十分钟之内未支付则自动取消 2.新创建的店铺,如果在十天内
阅读全文
摘要:springboot整合RabbitMQ 环境搭建 一、创建一个Springboot项目 二、导入相关依赖 或者不勾选Spring for RabbitMQ,自己导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifa
阅读全文
摘要:死信队列 死信队列简介 先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer 将消息投递到 broker 或者直接到 queue 里了,consumer 从 queue 取出消息进行消费,但某些时候由于特定的原因导致 queue 中的某些
阅读全文
摘要:Routing 之订阅模型-Topic Topic简介 Topic类型的Exchange与Direct相比,都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定Routing key 的时候使用通配符!这种模型Routingkey 一般都是由一
阅读全文
摘要:Routing 之订阅模型-Direct(直连) Direct exchange简介 在Fanout模式中,一条消息,会被所有订阅的队列都消费。但是,在某些场景下,我们希望不同的消息被不同的队列消费。这时就要用到Direct类型的Exchange。 在Direct模型下: 队列与交换机的绑定,不能是
阅读全文
摘要:fanout扇形模型 交换机 我们假设的是工作队列背后,每个任务都恰好交付给一个消费者(工作进程)。在这一部分中,我们将做一些完全不同的事情-我们将消息传达给多个消费者。这种模式称为 ”发布/订阅”. 为了说明这种模式,我们将构建一个简单的日志系统。它将由两个程序组成:第一个程序将发出日志消息,第二
阅读全文