自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(932)
  • 收藏
  • 关注

转载 Python爬虫:爬取需要登录的网站

不少伙伴学爬虫,这就出一期Python爬虫教程,文末总结的有视频教程,自己按需学习哈!爬虫在采集网站的过程中,部分数据价值较高的网站,会限制访客的访问行为。这种时候建议通过登录的方式,获取目标网站的cookie,然后再使用cookie配合代理IP进行数据采集分析。1 使用表单登陆这种情况属于post请求,即先向服务器发送表单数据,服务器再将返回的cookie存入本地。#!-*-encoding:utf-8-*-importrequestsimport...

2020-11-05 17:03:07 5608

转载 入门数据分析选择Python还是SQL?七个常用操作对比

SQL和Python几乎是当前数据分析师必须要了解的两门语言,它们在处理数据时有什么区别?本文将分别用MySQL和pandas来展示七个在数据分析中常用的操作,希望可以帮助掌握其中一种语言的读者快速了解另一种方法!(文末也有给大家整理两种方法的视频教程,大家按需学习就好)一、选择在SQL中,我们可以使用SELECT语句从表选择数据,结果被存储在一个结果表中,语法如下:SELECTcolumn_name,column_nameFROMtable_name;如果不想显示全部的记录...

2020-11-05 16:49:11 1019 1

转载 瞧瞧,这样的「函数」才叫 Pythonic

在机器学习中,我们经常需要使用类和函数定义模型的各个部分,例如定义读取数据的函数、预处理数据的函数、模型架构和训练过程的函数等等。那么什么样的函数才是漂亮的、赏心悦目的代码呢?本期教程,会从命名到代码量等六方面探讨如何养成美妙的函数。文末有给大家录的视频教程,大家可以按需学习,不清楚的地方也可以留言!与多数现代编程语言一样,在 Python 中,函数是抽象和封装的基本方法之一。你在开发阶段或许已经写过数百个函数,但并非每个函数都生而平等。写出「糟糕的」函数会直接影响代码的可读性和可维护性。那么,什.

2020-11-05 16:18:20 326

转载 2020web前端学习路线

2020年最新web前端学习路线!接下来,教大家如何从零基础小白学习web前端,没有基础的伙伴也不要着急,有给大家整理视频教程,文末,大家按需学习就好!一、入门web前端开发在介绍阶段,您必须首先学习最基本的技能:基于UI设计草案的HTML静态页面生成。这要求您掌握HTML的技巧、CSS页面的布局、样式的风格等。在这个阶段,你需要学习:1、HTML + CSS基础掌握HTML的标签使用、排版、CSS布局、样式美化和浏览器兼容性。 HTML和CSS编码规范:掌握一些代码技巧,写出更好.

2020-11-05 16:06:16 381

原创 一篇文章带你了解HTML5 MathML

HTML5 可以在文档中使用 MathML 元素,对应的标签是<math>...</math>。MathML 是数学标记语言,是一种基于XML(标准通用标记语言的子集)的标准,用来在互联网上书写数学符号和公式的置标语言。注意:大部分浏览器都支持 MathML 标签,如果你的浏览器不支持该标签,可以使用最新版的 Firefox 或 Safari 浏览器查看。一、MathML 简单实例以下是一个简单的 MathML 实例。<!DOCTYPE html&..

2020-10-29 14:36:44 226 1

原创 女生转行IT和男生要考虑的问题有哪些不一样?

在我的后台咨询者当中,女生向我咨询最多的问题就是:女生转行IT有什么困难?是不是很多IT企业都不要女生啊?女生的逻辑不如男生,是不是学不好编程?……以上的所有问题都不是问题,都无关紧要,转行IT有什么困难吗?有,你需要有毅力,你需要能够学进去,你需要有好的引路人,你需要有好的机遇……在这些问题上男女平等,所以女性相较于男性有哪些困难吗?在学习这件事上没有。1 女生是不是学不好编程?这个问题就更无从谈起了,了解过互联网历史的人都知道,最早的一批程序员都是女...

2020-10-29 13:47:27 153

原创 你常常看到的 __init__.py 到底是个啥?

当你去看一些 Python 相关的项目时,常常会看到 __init__.py,当你使用某些编辑器创建 Python Package 的时候,它也会自动给你生成一个 __init__.py 文件。这玩意有什么用呢?我们知道, Python 中的包是可以包含多个 py 模块的,我们可以在不同的地方通过包名区分使用这些模块。话不多说,咱们先来创建一下这样的目录:我们在这里面创建了三个 Python 子包,里面都有 __init__ 和 module 的 py 文件。...

2020-10-29 11:49:28 197

原创 用Jupyter+pandas数据分析,6种数据格式效率对比

在使用Python进行数据分析时,Jupyter Notebook是一个非常强力的工具,在数据集不是很大的情况下,我们可以使用pandas轻松对txt或csv等纯文本格式数据进行读写。然而当数据集的维度或者体积很大时,将数据保存并加载回内存的过程就会变慢,并且每次启动Jupyter Notebook时都需要等待一段时间直到数据重新加载, 这样csv格式或任何其他纯文本格式数据都失去了吸引力。本文将对pandas支持的多种格式数据在处理数据的不同方面进行比较,包含I/O速度、内存消耗、磁盘占用空间等指

2020-10-29 11:04:48 426

原创 MySQL数据库设计范式与反范式详解

1 第一范式该范式是为了排除 重复组 的出现,因此要求数据库的每个列的值域都由原子值组成;每个字段的值都只能是单一值。1971年埃德加·科德提出了第一范式。即表中所有字段都是不可再分的。1.1 实例重复组通常会出现在会计账上,每一笔记录可能有不定个数的值。举例来说:“数量”就是所谓的重复组了,而在这种情况下这份资料就不符合第一范式。再比如,如下联系方式是一个复合属性,就违反了该范式,在数据库中是无法分离出来的。1.2 解决方案想要消除重复组的话,只要把每笔..

2020-08-26 13:40:07 655 1

原创 数据库设计之字段冗余

学过数据库设计的同学都知道,数据库设计有三大范式,但是在实际工作中,三大范式很难被严格的执行。本文将给大家介绍一种常见的、违反范式的数据库设计方案——字段冗余1 经典示例先来看一个经典的例子,在一些商城系统里,要显示已购买的订单,一般会显示订单号、下单时间、订单金额、商品名称等,如下图。正常我们如果按三大范式来设计表,应该是下面这样,包含【订单表】和【商品表】,在【订单表】中用【商品ID】来关联【商品表】但是这样设计的话,在订单详情页面,要显示商品名称的...

2020-08-26 13:36:16 1964

原创 用Python网络爬虫获取Mikan动漫资源

【一、项目背景】[蜜柑计划 - Mikan Project] :新一代的动漫下载站。是一个专门为喜欢动漫的小伙伴们打造的动漫视频在线播放网站,为大家第一时间分享最新动漫资源,每日精选最优质的动漫推荐。【二、项目目标】实现获取动漫种子链接,并下载保存在文档。【三、涉及的库和网站】1、网址如下:https://mikanani.me/Home/Classic/{}2、涉及的库:**reques****ts、****lxml、**fake_useragent3、软件*.

2020-08-26 12:01:43 1736

原创 Linux教程:Linux下如何高效切换目录?(附视频教程)

Linux 下对于目录的切换,大家肯定会想到一个命令:cd 命令。这个是 Linux 下再基本不过的命令,如果这个命令都不知道的话,赶紧剖腹自尽去吧。cd 命令确实很方便,但如果需要频繁在下面的目录切换,你可能要怀疑人生了:/home/alvin/projects/blogdemos/linux-system-programming/thread/home/alvin/projects/blogdemos/diff/home/harry/study/日本文化/中日交流/影视业/动作片如果

2020-08-26 11:01:27 172 1

原创 Windows下Scoop安装、配置与使用

Scoop简介Scoop是Windows的命令行安装程序,是一个强大的包管理工具。可以在github上找到其项目的相关信息,项目网址。安装的起因:在平常生活中如果要安装像gcc、git等一些需要手动配置相关参数的工具,需要先去官网下载安装程序,点击安装,之后还需要配置,不仅过程麻烦,而且工具多了之后整理起来也相当不容易,配置也很杂,整个电脑就像被污染了一样。而scoop可以很好地解决这一问题,安装scoop后,只需要在命令行输入简单的一串命令即可安装你想要的软件。比如我想安装gcc,只需要输入s

2020-08-26 10:54:01 1458

原创 换一种方式编写 Spring MVC 接口

写在前面通常我们编写Spring MVC接口的范式是这样的:@RestController@RequestMapping("/v1/userinfo")public class UserInfoController { @GetMapping("/foo") public String foo() { return "felord.cn"; }}这种我都写吐了,今天换个口味,使用Spring 5新引入的函数式端点(Function...

2020-08-26 10:50:45 126

原创 小清新风车短教程:10步教你绘制一副插画

AI教程:10步教你绘制一副小清新风车插画效果图Tutorial Step:1绘制房子的基础图形,先使用矩形工具(M)绘制一个120×140PX的白色矩形,作为风车房子的基础图形。但是我们的房子是一个梯形现在只是长方形,所以我们要使用自由变换工具(E)选中图形顶部的顶点向中间移动,记住移动的数值,为了图形美观我们要确保两边变换数值一致,然后我们的梯形就完成了。图1:绘制房子基本图形Tutorial Step:2绘制风车的房顶,我们只需要在梯形顶部上绘制一个三角形就..

2020-08-26 10:46:41 228

原创 运维自救攻略:避免“锅”从天而降

开始这个话题之前,我们先来看看运维充(苦) 实 (bi) 的工作日常。不被理解的工作日常——运维是做什么的?——装系统的、修电脑的、机房电工、修电路的、扯网线的、搬服务器的……我们也不知道他在做什么,反正看上去整天忙来忙去的……其实,以上只是运维日常工作的一小部分。一般来说,当产品上线后,项目组成员去欢喜庆祝的时候,就是运维忙到飞起的时候。打扫战场、收尾工作,样样都要做;报警分析报告、系统监控数据报告,“告告”不能少。24小时提心吊胆的工作日常...

2020-08-26 10:37:10 107

原创 从几百个Excel中查找数据,用Python一分钟搞定

今天给大家分享一个真实的办公自动化需求,日常办公肯定都会遇到的,大家一定要仔细阅读需求说明,在理解需求之后即可体会Python的强大!一、需求说明首先我们来看下今天的需求,有一份档案记录总表的Excel工作簿, 每天会根据当天日期建立新表,每天的表格内包含所有档案信息,同时也有可能会添加新的档案名。同个年度的总表在年末可能会有两、三百个工作表,同时每个表中可能也存在千余份档案信息。表格形式如下(为了直观呈现本例以7个工作表和十余份档案的形式呈现)需要完成的操作:为了方便审查特定档案信息.

2020-08-25 17:26:58 4342 2

原创 这些自动化场景,批处理脚本完全可以取代 Python

一. 写在前面提到自动化解决方案,相信大部分人会想到用 Python 语言,只需要根据功能场景,编写 Python 脚本即可相反,PC 端的 Batch 批处理 似乎快被忘记了,很多人对它嗤之以鼻,认为这么古老的脚本语言貌似没什么用,Python 似乎可以取而代之相比 Python 脚本,Batch 批处理脚本在某些场景下,使用更简洁、方便、高效,即写即用,不需要依赖 Python 环境,并且可以完全摆脱打包等繁琐步骤二. 批处理基础新建批处理脚本很简单,只需要新建一个文本文件,然后修改

2020-08-25 17:16:02 134

原创 干货来了:Chrome常用快捷键整理汇总

工欲善其事,必先利其器,chrome前端调试必备工具!要想操作浏览器更有效率,我们可以试试掌握以下这些快捷键。Ctrl+N打开新窗口Ctrl+T打开新标签页Ctrl+Shift+N在隐身模式下打开新窗口Ctrl+O在 Google Chrome 浏览器中打开计算机中的文件按住 Ctrl 键的同时点击链接 或用鼠标中键(或鼠标滚轮)点击链接 从后台在新标签页中打开链接按住 Ctrl+Shift 的同时点击链接或按住 Shift 键的同时用鼠标中键(或鼠标滚轮)点击链接在新标签页中打开链

2020-08-25 17:11:13 567

原创 面试官问:我把数据库部署在Docker容器内,你觉得如何?

近2年Docker非常的火热,各位开发者恨不得把所有的应用、软件都部署在Docker容器中,但是您确定也要把数据库也部署的容器中吗?这个问题不是子虚乌有,因为在网上能够找到很多各种操作手册和视频教程,小编整理了一些数据库不适合容器化的原因供大家参考,同时也希望大家在使用时能够谨慎一点。目前为止将数据库容器化是非常不合理的,但是容器化的优点相信各位开发者都尝到了甜头,希望随着技术的发展能够更加完美的解决方案出现。Docker不适合部署数据库的7大原因1、数据安全问题不要将数据储存.

2020-08-25 15:32:53 1022

原创 5G带给我们的机会

5G回首过去,展望未来1G时代1973年,美国著名的摩托罗拉公司工程师,马丁.库帕发明世界上第部推向民用的手机,马丁.库帕从此被成为“现代手机之父”。他的第一个电话打给了尤尔·恩格尔,这个人不是别人正是他的竞争对手,库珀兴奋地用几乎颤抖的声音说道:“尤尔,我正在用一个真正的移动电话和你通话,一个真正的手提电话!”手机那头沉默了。接电话的不是别人,正是库珀长期以来的竞争对手—贝尔实验室的一名科学家尤尔·恩格尔。但是这也标志着一个新时代的开始——无线通信的诞生。1987年11月18日,第一.

2020-08-25 14:58:42 496 1

原创 内存小还要速度快,终于找到可以基于File的Cache了

一:背景1. 讲故事18年的时候在做纯内存项目的过程中遇到了这么一个问题,因为一些核心数据都是飘在内存中,所以内存空间对我们来说额外宝贵,但偏偏项目中有些数据需要缓存,比如说需要下钻的报表上的点,基于性能的考虑,不希望采用独立的缓存中间件,比如 redis, mongodb,毕竟再怎么滴还是要走网络io,但直接放在本机内存中也不现实,那有没有均衡于 native cache 和 cache server 之间的方案呢? 对的,就是 disk cache,毕竟 磁盘IO 的读写要远大于网络IO,更何况

2020-08-25 14:52:52 231 1

原创 使用 Horoscope 测试 TiDB 优化器

优化器在数据库中一直位于至关重要的位置,性能调优也常常需要围绕优化器来进行。作为数据库厂商,我们希望在各类复杂的业务场景中,TiDB 都能够给出比较理想的执行计划,因此在优化器和执行器上做了非常多的工作和努力,但是选错执行计划或者索引的情况仍然是日常中最为常见的一个问题。优化器有关的问题可以简单归结为两种:统计信息准确的情况下给出了错误的执行计划。 另一类则是在统计信息过期的情况下给错了执行计划。选错索引是其中比较常见的一种情况,用户希望添加索引来加速查询速度,某些情况下,优化器可能会走到全表扫

2020-08-24 10:24:33 135

原创 大型Kubernetes集群的资源编排优化

云原生这个词想必大家应该不陌生了,容器是云原生的重要基石,而Kubernetes经过这几年的快速迭代发展已经成为容器编排的事实标准了。越来越多的公司不论是大公司还是中小公司已经在他们的生产环境中开始使用Kubernetes, 原生Kubernetes虽然已经提供了一套非常完整的资源调度及管理方案但是在实际使用过程中还是会碰到很多问题:集群节点负载不均衡的问题 业务创建Pod资源申请不合理的问题 业务如何更快速的扩容问题 多租户资源抢占问题这些问题可能是大家在使用Kubernetes的过程中应该会

2020-08-24 10:16:07 255

原创 UI教程:工作流程指南之需求分析

从需求到产品上线,要经历多少个阶段,每个阶段有哪些应该掌握的基础知识?工作流程第一节:需求分析。UI 设计工作,包括APP 设计、网页设计、小程序设计等方面。而一个产品完整的 UI 设计流程,是指拿到一个新的项目需求后,从设计思考开始,产品前期分析,设计产品,设计评审,用户测试,直至产品上线。工作流程如下:以上的流程都是与UI设计师密切相关的内容,我们的关注点不能只有视觉效果,孤立的设计容易脱离产品,反复修改,因此前期分析与后期支持都值得我们重视。原文中推荐使用的【...

2020-08-24 09:52:45 166

原创 如何将斐波那契数列应用到排版设计中

斐波那契黄金比例数列是一组非常奇妙的数字,这种数列规律可以应用到设计、摄影、艺术创作等领域。斐波那契数列是0,1,1,2,3,5,8,13,21......从第三个数开始,每一项都等于前两项之和,接下来我们将利用这一规律制作黄金比例网格。在AI中新建画板,绘制矩形按住alt键复制矩形,CTRL+D重复操作移动矩形,按照1,1,2,3,5,8,13,21....这样的顺序依次添加参考线选中所有矩形,旋转90度选中所有矩形,旋转180...

2020-08-24 09:46:02 308

原创 不可变数据之Immutable

在讲不可变数据(Immutable Data)前,先说说可变数据(Mutable Data),在原生js中创建的数据都是可变的,如: var a = {qty:1} a.qty = 10;可能有小伙伴说,可以用const啊,const对基本数据类型还行,但对引用数据类型根本没辙,如 const a = {qty:1} a.qty = 10;​ a.qty;// 10如果把对象a赋值给其它变量还会导致新的问题,如: const a =

2020-08-24 09:42:00 326

原创 Flask - Cookie的使用

Flask - Cookie的使用用户使用浏览器第一次访问服务端时,服务端生成cookie,放在响应response里返回,并保存在用户浏览器里.from flask import Flask,make_response@app.route('/set/<name>')def set_cookie(name): response = make_response(redirect(url_for('hello'))) response.set_cookie('name',

2020-08-14 13:44:22 271

原创 搭建个人Huginn步骤

1. 安装docker2. 安装Huginndocker run -it -p 3000:3000 huginn/huginn3. 访问服务[http://docker-machine ip:3000]默认用户名/密码: admin/password微博更新自动提醒使用Weibo User Agent , uid要填写正确 , 例子里填为30分钟查询一次.{“uid”: “602949”,“access_token”: “2.00f1xxxxdfbcTwwWUD”,“app_k

2020-08-14 10:55:03 509

原创 从零开始学Python:第22课-Python标准库初探

Python语言最可爱的地方在于它的标准库和三方库实在是太丰富了,日常开发工作中的很多任务都可以通过这些标准库或者三方库直接解决。下面我们先介绍Python标准库中的一些常用模块,后面的课程中再陆陆续续为大家介绍Python常用三方库的用途和用法。base64 - Base64编解码模块Base64是一种基于64个可打印字符来表示二进制数据的方法。由于log2 64=6 ,所以Base64以6个比特(二进制位,可以表示0或1)为一个单元,每个单元对应一个可打印字符。对于3字节(24比特)的.

2020-08-13 17:48:01 103

原创 从零开始学Python:21课-函数的高级应用

在前面的一节Python课中,我们已经对函数进行了更为深入的研究,还探索了Python中的高阶函数和Lambda函数。在这些知识的基础上,这节课我们为大家分享两个和函数相关的内容,一个是装饰器,一个是函数的递归调用。整理的这俩大集合视频教程,想学习的伙伴,可以来学了!Python 900集全套视频教程:https://pan.baidu.com/s/1cU5lDWq9gh0cQ7hCnXUiGA2020最新_Python_(MySQL_SQL_Redis)数据库详解https://pan.bai

2020-08-13 17:43:51 87

原创 Python实战操作:解题之被围绕的区域

题目给定一个二维的矩阵,包含‘X’和‘O’(字母 O)。找到所有被‘X’围绕的区域,并将这些区域里所有的‘O’用‘X’填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的‘O’都不会被填充为‘X’。 任何不在边界上,或不与边界上的‘O’相连的‘O’最终都会被填充为‘X’...

2020-08-13 17:37:31 190

原创 Java面试题:之ZooKeeper篇

本期教程主要跟大家总结ZooKeeper相关的面试题;在后续,会沿着第一篇开篇的知识线路一直总结下去!ZooKeeper是什么?ZooKeeper是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。分布式应用程序可以基于Zookeeper实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。Zookeeper

2020-08-13 16:38:19 501 1

原创 kbone 高级 - 使用小程序内置组件(二)

2.5 编写系列组件2.5.1 App.vue在 src/index 下创建 App.vue 文件,内容如下:<template> <div> <ul class="tab"> <li class="tab-item" :class="{selected: wxPrefix === 0}" @click="wxPrefix = 0">wx-component 用法</li> <li class

2020-08-13 16:23:19 107

原创 kbone 高级 - 使用小程序内置组件(一)

1、用法需要明确的是,如果没有特殊需求的话,请尽量使用 html 标签来编写代码,使用内置组件时请按需使用。这是因为绝大部分内置组件外层都会被包裹一层自定义组件,如果自定义组件的实例数量达到一定量级的话,理论上是会对性能造成一定程度的影响,所以对于 view、text、image 等会被频繁使用的内置组件,如果没有特殊需求的话请直接使用 div、span、img 等 html 标签替代。部分内置组件可以直接使用 html 标签替代,比如 input 组件可以使用 input 标签替代。目前已支持的可

2020-08-13 15:57:26 811

原创 如何用PS把夏天变成冬天

如何用PS把夏天变成冬天1. 将素材图拖进PS中2.新建通道混合器调整图层,调整参数3.选择通道面板,选中RGB通道并创建选区,返回图层面板,选中通道混合器的蒙版,填充黑色4.CTRL shift alt E盖印图层5. 选择-色彩范围6. 新建图层,填充为白色,右键 设置混合选项的混合颜色带7. 新建图层,填充为黑色,滤镜-像素化-点状化8. 图像-调整-阈值9. 将图层混合模式改为滤色...

2020-08-13 15:54:47 794

原创 做完这20道前端面试题,你定会瞬间膨胀

1、Vue框架的作者是谁?A、秦始皇B、孙悟空C、弥勒佛D、尤雨溪E、刘德华2、MongoDB底层的程序语言是:A、汉语B、C++C、英语D、日语3、你用过的最令你苦恼的浏览器是:A、IAB、IBC、ICD、IDE、IE4、下列什么命令可以在当前目录新建一个Git仓库?A、git initB、请创建一个仓库C、求求你创建一个仓库吧D、你丫快创建一个仓库!5、开发js程序需要在什么设备上完成:A、手扶拖拉机B、热水

2020-08-13 15:45:31 193

原创 面试挖坑题:之C语言底层操作问题

C语言的内存模型基本上对应了现在von Neumann(冯·诺伊曼)计算机的实际存储模型,很好的达到了对机器的映射,这是C/C++适合做底层开发的主要原因,另外,C语言适合做底层开发还有另外一个原因,那就是C语言对底层操作做了很多的的支持,提供了很多比较底层的功能。  下面结合问题分别进行阐述。  1、问题:移位操作  在运用移位操作符时,有两个问题必须要清楚:  (1)、在右移操作中,腾空位是填 0 还是符号位;  (2)、什么数可以作移位的位数。  答案与分析: .

2020-08-13 15:28:53 311

原创 Kafka与ActiveMQ的区别与联系详解

1. 背景分析消息队列这个类型的组件一直是非常重要的组件,当经过两家企业后我就很坚信这个结论了。队列这种东西,最广泛的作用还是在于解耦,宽泛一点的说,它可以将不同部门的工作内容进行有效的整合,基于一个约定好的格式,就可以两头互相不干扰的进行开发。可以说这个生产消费的思想不仅仅适用于程序也适用于非常多的地方。目前对于我看到的来说,Kafka更多的还是做为一个数据源,数据桥梁的作用,不同业务之间的沟通。比如需要实时接入A部门的业务数据的话,就会有这样的手段:落地到HDFS的数据会用来进行一些算.

2020-08-13 15:09:36 3665 1

原创 如何保证消息不被重复消费

一. 重复消息为什么会出现消息重复?消息重复的原因有两个:1.生产时消息重复,2.消费时消息重复。1.1 生产时消息重复由于生产者发送消息给MQ,在MQ确认的时候出现了网络波动,生产者没有收到确认,实际上MQ已经接收到了消息。这时候生产者就会重新发送一遍这条消息。生产者中如果消息未被确认,或确认失败,我们可以使用定时任务+(redis/db)来进行消息重试。@Component@Slf4Jpublic class SendMessage { @Autowired p

2020-08-07 17:50:04 1181

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除