-
RabbitMQ初探:死信队列、延迟队列、保证消息可靠性
在之前,已对RabbitMQ的一些基本知识做了一些了解,详见RabbitMq:6种工作模式通俗理解本文主要介绍RabbitMQ的死信队列、延迟队列、保证消息可靠性等的方法和实现,本文在正式开始之前补充交换机类型知识。交换机分类:扇形交换机 fanoutExchange直连交换机 directExchange主题交换机 topicExchange头交换机 headersExchange死信队列(Dead-Letter-Exchange)可以称为死信交换器,也有人称之为死信邮箱。当消息在一个队列中变成死信 (deal message) 之后,它能被重新被发送到另一个交换机中(实际上也可以直接使用已存在的交换机作为死信交换机,如一个正常交换机,只要队列指定他为死信交换机),这个交换机就是 DLX ,绑定 DLX 的队列就称之为死信队列。上述的死信是什么呢?——没有被消费者使用的信息消息变成死信 般是由于以下几种情况:消息被拒绝 (BasicReject/BasicNack),井且设置 requeue 参数为 false,即被拒绝也不重新入队的消息;消息过期,当消息设置了过期时间后,消息过期就成为死信,当队列设置了过期时间后,消息在队列中存在的时间大于队列过期时间,变为死信;队列达到最大长度后,新来的消息进入不了队列,只能进入死信队列。DLX 是一个正常的交换器,和一般的交换器没有区别,它
-
协同过滤算法
协同过滤协同过滤算法核心在于: 1.物以类聚 2.人以群分其分主要分为两种,1.基于用户 2.基于物品的协同,这也恰好印证物以类聚,人以群分。人以群分:基于用户的协同推荐基于用户的协同推荐,其主要工作在于找到人群,即找到相似的人。那么我们如何判断人与人之间是否相似呢?什么样的人最相似?以贴吧(之所以以此为例,因为我自己写的一个项目,里面有类似贴吧的这样的一个个论坛)为例,假设用户对论坛的一些操作行为被系统评估为分数,例如在关注+发帖+评论+浏览5分,关注+发帖4分,关注3分,只评论2分,只浏览过1分,那么我们就有了用户对每个贴吧(论坛)的操作分数呢?(当然,这个例子也许存在一些不恰当之处)假设存在以下几种人和以下几种贴吧,以及他们对贴吧的操作分数。| |孙笑川吧|中国人口吧|航空母舰吧|弱智吧|民科吧||-------|-------|-------|-------|-------|-------||用户A|5|3|4|4|||用户B|3|1|2|3|3||用户C|4|3|4|3|5||用户D|3|3|1|5|4||用户E|1|5|5|2|1|回到问题 什么样的人最相似?我们是不是可以认为对某个贴吧分数越高的人对该贴吧的喜爱程度越高呢?例如用户A和C都关注了都很喜爱孙笑川吧,同时他俩同样的喜爱航空母舰吧、中国人口吧,同时他们对中国人口吧也很喜爱,那么我们是不是可以认为他
-
小白深度学习之RNN,循环神经网络
当我们在进行一些任务时,我们会发现,任务的输入是有序的,而这种顺序对我们的任务是重要的。例如词性标注,同一个词可能在不同的句子中,表现出不同的词性。相较于BP神经网络、DNN等,他们对输入的顺序并无特别的要求,而RNN不同,不同的顺序很有可能影响最终的输出结果。RNN结构图当你看到这张图的时候,如果你是一脸懵逼的的,那么,就对了!未完待续.....
-
小白版深度学习:多层感知机MLP和BP神经网络
写在前面虽说是写在前面,但是建议在看完文章后再看多层感知机是一个网络,BP是一个算法,他不是一个网络,之所以我们能够随处可见“BP神经网络”这样的名词,其是对一种多层感知机的叫法,指的是使用了BP算法优化的多层感知机。本文主要讲述四个部分:感知机 -> 多层感知机 -> BP算法 -> BP神经网络感知机多层感知机BP算法BP神经网络
-
小白深度学习:基于梯度优化方法
梯度梯度是一个相对于向量求导的导数(如果你不知道什么是向量,请复习高中数学),如果你不能理解,对于1维度向量,你可以暂时理解为其时一元函数,其梯度就是他的导数,如果时2维向量,其梯度为2元函数中的函数对每个元的偏导,此时梯度应该为2维向量,n维以此类推。基于梯度优化方法在深度学习中,我们大多时候都是进行优化任务,训练神经网络,你可以通俗的理解为神经网络的输出与真实的值之间的“距离”(实际并非距离)最小化的过程,直到最小(尽管可能并非如此),我们将度量这个“距离”的函数称为目标函数,、或者代价函数、损失函数等,可能你在一些博客上看到这几个名词之间各自有不同的意思,例如下图,但是在此系列博客中,我们可能将交替使用他们。假设我们的目标函数是一个一元二次函数,那么我们想要最小化目标函数,即是寻找出该函数的最小值点,那么应该怎样寻找到这个最小值点呢,我们可以随意在该函数选取一个点,我们左右移动这个点,直到找到最小值,那么我们应该朝左还是朝右呢?你是否想起了倒数呢?导数的正负代表了是增长还是减小,所以我们可以直接在该点处求导,看导数究竟>0还是<0,导数>0时候,我们可以向左移动来减小,导数>0,我们可以向右移动。一个例子如下(摘自 深度学习花书):此时你可能有一个疑问,导数并不能找出最小值啊?没错,当倒数等于0时(如果导数=0,但是左右导数都是<0,在最小化任务
-
小白版深度学习-0:前置知识 一元函数 导数 偏导 激活函数 矩阵运算
此前置知识不断更新一元函数$$f(x)=wx+b$$$x$为未知数
-
记录第一次VUE与springboot部署在同一tomcat下出现的问题及解决方法
多模块springboot打包使用idea右侧maven在父模块执行install,在入口模块执行打包package即可,由于我要打包成war文件放在tomcat,其他模块pom文件中打包方式未jar即可,入口文件为war。vue打包npm run build将出现的dist文件夹复制进入tomcat即可运行,dist改成你想要的项目名即可出现的问题1.springboot打包找不到主类的的问题这个问题提示是除了入口模块,其他模块均存在该问题,网上一些教程说出现该问题后再每个模块新建一个类,可以什么都不写,只写一个main函数即可(经过测试确实可行)解决方法:出现此问题主要原因在于将打包等插件放在了其他包pom文件或者父pom文件下,我们应该打包入口模块,将pom插件放在入口模块下即可解决vue打包文件夹出现 Error: EPERM: operation not permitted, mkdir...此问题为无权限创建文件夹(即使有权限有可能也会出现此问题),到项目文件夹,“右键-属性-安全-编辑”,直接将权限全打开即可,打开后仍然出现此问题的,无需理会,此时执行打包,即使仍报此错误,但是你会发现dist文件夹已经出现,里面的文件已经出现。(此问题主要出现在项目文件在C盘时)访问首页404或者空白的问题首页404,说明并未找到页面,检查访问路径,检查是否放置正确。出现空白页,打开
-
AOP功能的基本使用,自定义注解的使用,aspect注解切面编程的使用等
注:AOP本质为动态代理,是对被代理对象、方法的增强,所以在无法进行动态代理情况下,AOP会失效。、本文旨在记录注解、aop的一些写法、方法,以防使用时忘记,不对原理做深入探讨。自定义注解采用@interface构建注解,实例如下所示,其中注解@Target表明该自定义注解使用的位置,ElementType.METHOD表示使用在方法上,当然,我们也可以修改此参数让其使用类上、参数上等,@Retention(RetentionPolicy.RUNTIME)表明注解作用在什么时候,RetentionPolicy.RUNTIME表明运行时作用,一般此处均是此写法。注解内定义成员,采用名字+()形式,注意此处并不是方法,而是代表变量,注意需要指定默认值,在注解中无法使用复杂类作为变量,可使用基本数据类型以及对应的数组。@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface OperateLog { String value() default "select";}@Aspect实现aop@Aspect实现aop有两种形式,一种为使用注解,一种为使用ex....表达式,本处介绍使用注解,其主要区别在于注解的方式由注解来标定使用aop的地方,表达式方式可直接标定使
-
logback日志配置在springboot,logback.xml配置,自动提示,约束,命名空间等一些配置详解,以及配置日志后控制台无法打印异常信息
logback日志xml配置详解,包含每个标签的作用,防止忘记或者直接复制即可使用,需注意应将该文件命名为logback.xml或者logback-spring.xml,放在resource下<?xml version="1.0" encoding="utf-8" ?><!--此处可以写入命名空间,自动提示,将下面的粘贴后,将鼠标放在raw.githubusercont这个网址上,点击alt+enter,选择fetch导入即可拥有自动提示--><configuration xmlns="http://ch.qos.logback/xml/ns/logback" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ch.qos.logback/xml/ns/logback https://raw.githubusercontent.com/enricopulatzo/logback-XSD/master/src/main/xsd/logback.xsd">&l
-
记第一次使用axios跨域新手小白出现的问题blocked by CORS policy: Response to preflight request doesn't pass access
记录的坑和解决的方法此处给出三种解决方式(任选一种即可),遇见的坑(自己不了解导致)将会进行标识遇见的主要报错为has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.其中浏览器发送了两次请求,一次为profil 请求,返回码为403,ajax返回码为4041.在前端进行解决假如你要访问的请求地址为locolhost:8090,那么在axios的baseUrl不应配置为http://yanzw.cn:8090,亲测将会导致代理失效,