网络爬虫网络爬虫,不知道大家是否有过了解?今天白又白给大家写个解千千音乐网站中的JS加密算法,如果有哪里不对的,还请大佬们指正。想要和我一起学习爬虫的你,那你首先要掌握一些有关爬虫的基础知识,要知道什么是爬虫?数据是从哪里得来的?先了解一些基础的知识点才能开始真正学习爬虫呀。基础知识问题都是可以在网上查询到的,嘻嘻我对爬虫的工作的理解就是模拟我们通过浏览器获取网页信息的过程,无外乎“发送请求—获得
Read More
moregeek program
2021年巨热门的Python爬虫框架大推荐-多极客编程
Python爬虫框架的优点真是说也说不完,它可以让程序员以更少的代码实现自定义功能,还可以将更多的精力集中在业务逻辑上,更加的轻松便利。因此本文将为大家推荐十款常见且好用的爬虫框架。一、ScrapyScrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。。用这个框架可以轻松爬下来如亚马逊商品信息之类的数据。二、PySpi
Read More
Read More
Nginx 架构到底有多牛-多极客编程
本文章转自:乐字节
文章主要讲解:Nginx 架构浅析
获取更多Java相关资料可以关注公众号《乐字节》 发送:999
1.Nginx 基础架构
nginx 启动后以 daemon 形式在后台运行,后台进程包含一个 master 进程和多个 worker 进程。如下图所示:
nginx 是由一个 master 管理进程,多个 worker 进程处理工作的多进程模型。基础架构设计,如下图所示:
Read More
Read More
面试官:MySQL 是如何执行一条查询语句的?-多极客编程
对于一个开发工程师来说,了解一下 MySQL 是如何执行一条查询语句的,我想是非常有必要的。首先我们要了解一下MYSQL的体系架构是什么样子的?然后再来聊聊一条查询语句的执行流程是如何?MYSQL体系结构先看一张架构图,如下:模块详解Connector:用来支持各种语言和 SQL 的交互,比如 PHP,Python,Java 的 JDBC;Management Serveices & Ut
Read More
Read More
使用 Nginx 提供 DDNS 服务(前篇)-多极客编程
本文将介绍如何使用 Nginx 作为一般 DDNS 程序的替代方案,完整配置在 200 行左右。
相比较使用一些充满“黑盒”依赖,或者运行时复杂的程序,使用 Nginx 可以以更低的资源,来完成我们所需要的效果。写在前面之前在群里提到过这个方案,出于篇幅的原因,这个话题将会拆解为几部分,分别介绍:
1、使用 Nginx 完成基础的 DDNS 核心操作,包括进行 DNS 记录更新。
2
Read More
Read More
面试官:MySQL的幻读是怎么被解决的?-多极客编程
这篇文章主要是讲一下幻读是怎么被解决的
在此之前要了解一下什么是幻读什么是幻读?如下图所示然后前几天有位读者跟我说,我这个幻读例子不是已经被「可重复读」隔离级别解决了吗?为什么还要有 next-key 呢?
他有这个质疑,是因为他做了这个实验。
实验的数据库表 t_stu 如下,其中 id 为主键。然后在可重复读隔离级别下,有两个事务的执行顺序如下:从这个实验结果可以看到,即使事务
Read More
Read More
计算机进程和线程-多极客编程
计算机系统中,进程和线程是非常重要的概念。 一个进程就是一个正在执行的程序,包括pc、寄存器和变量的当前值,多个进程共享着物理内存、磁盘、打印机和其他资源。一般来说,每个进程有一个地址空间和一个在CPU上被调度执行的实体——线程。在同一个进程的环境中,允许并行运行彼此之间有独立性的多个线程,多个线程共享着进程的地址空间、打开文件集、子进程、报警及相关信号等其他资源。
Read More
Read More
10个Python绘画表白代码【内附源码,再不收藏你只能单身了】-多极客编程
发现一些很好玩的画图小项目,今天分享给大家,教你怎样用Python画一朵玫瑰花、时钟、爱心、太阳花、月饼、进阶自定义爱心、小猪佩奇、星空、超梦幻的蓝色背景樱花等大家快来学习吧。运行工具:pycharm 、python玫瑰花效果图:
源码:from turtle import *import timesetup(1000,800,0,0)speed(0)penup()seth(90)fd(340)s
Read More
Read More
mysql随手记-我没有被面试官“锁”住-多极客编程
一位风尘仆仆的男子走了过来,对我说:小伙子,我看你简历上写的精通mysql,那我就问问你mysql的知识吧!我:好的(千万别多问,千万别多问~~)面试官:对mysql锁了解的多吗?我:还行(其实就是很好)。面试官:那好,那我接下来主要问锁相关的知识我:好的好的(放马过来吧,我也就是客气一下。)面试官:mysql支持哪些级别的锁?我:支持库锁、表锁、行锁。面试官:那先说说库锁吧,锁库有几种方式?我:
Read More
Read More
开发的时候,人与人之间还是要少点儿信任之--注解方式防止重复请求-多极客编程
自定义注解方式防止前端同一时间多次重复提交
一、 前情提要
有这样一个业务,上课的时候老师给表现好的学生送小花花,
每节课都能统计出某个学生收到的花的总数。
按照产品需求,前端点击送花按钮后30秒内是不能再次送花的(信任的基础)
(上课老师送花行为都进行统计了,可见互联网是多么可怕)
二、技术设计
2.1 库表设计
CREATE TABLE `t_student_flower` (
`id`
Read More
Read More
求你了,别再说数据库锁的只是索引了!!!-多极客编程
在MySQL数据库中,为了解决并发问题,引入了很多的锁机制,很多时候,数据库的锁是在有数据库操作的过程中自动添加的。
所以,这就导致很多程序员经常会忽略数据库的锁机制的真正的原理。比如,我经常在面试中会问候选人,你知道MySQL Innodb的锁,到底锁的是什么吗?
关于这个问题的回答,我听到过很多种,但是很少有人可以把他回答的很完美。因为想要回答好这个问题,需要对数据库的隔离级别、索引等都有一定
Read More
Read More
为什么MySQL数据库索引选择使用B+树?-多极客编程
在进一步分析为什么MySQL数据库索引选择使用B+树之前,我相信很多小伙伴对数据结构中的树还是有些许模糊的,因此我们由浅入深一步步探讨树的演进过程,在一步步引出B树以及为什么MySQL数据库索引选择使用B+树!
学过数据结构的一般对最基础的树都有所认识,因此我们就从与我们主题更为相近的二叉查找树开始。
一、二叉查找树
(1)二叉树简介:
二叉查找树也称为有序二叉查找树,满足二叉查找树的一般性质,是
Read More
Read More
网络安全工程师演示:小白这样买电脑,再也不踩无良商家的坑了!-多极客编程
前言:
最近,有不少学员私聊咨询我我买电脑的若干问题,为避免重复回答,在此我特意为广大粉丝朋友们整理了这篇文章,希望能帮到你们。此文非商务广告,请放心食用!
计算机和互联网已经与老百姓的日常生活、工作、学习紧密相连,通过计算机和互联网,人们了解外面世界的信息也在加快,传递信息的渠道也越来越多。笔记本地诞生,不仅告别了家庭式电脑的体积,关键在于方便、便携,走到哪都可以随身携带,只要有网络,就可办
Read More
Read More
微服务 - 分布式事务 - 2PC、3PC-多极客编程
在微服务体系下,我们的应用被分割成多个服务,每个服务都配置一个数据库。如果我们的服务划分的不够完美,那么为了完成业务会出现非常多的跨库事务。即使按照 DDD 的原则来切分服务还是免不了有的业务场景需要多个业务同时提交成功或者同时回滚的场景。比如会员使用积分下订单这个场景,那么会员服务的积分扣减需要跟订单下单成功同时完成。如果下单成功,但是扣减积分接口失败,那么就会造成数据的不一致性。这个时候我们就
Read More
Read More
Springboot集成JUnit5优雅进行单元测试-多极客编程
为什么使用JUnit5
JUnit4被广泛使用,但是许多场景下使用起来语法较为繁琐,JUnit5中支持lambda表达式,语法简单且代码不冗余。
JUnit5易扩展,包容性强,可以接入其他的测试引擎。
功能更强大提供了新的断言机制、参数化测试、重复性测试等新功能。
ps:开发人员为什么还要测试,单测写这么规范有必要吗?其实单测是开发人员必备技能,只不过很多开发人员开发任务太重导致调试完就不管了,
Read More
Read More
Jenkins for Kubernetes实现Slave动态伸缩-多极客编程
本文章案例可用于参考Jenkins for Kubernetes部署。因每个公司的架构和环境不一样,需要改变一些部署的方式。
Jenkins for Kubernetes的好处:
Jenkins-Master的高可用。Kubernetes的RC或Deployment可以监控副本的存活状态(通过探针)和副本数量,如果Master出现无法提供服务的情况,就会重启或者迁移到其他节点。
Jenkins-S
Read More
Read More
某团面试题:hashCode 的值是怎么生成的?对象内存地址吗?-多极客编程
先看一个最简单的打印
System.out.println(new Object());
会输出该类的全限定类名和一串字符串:
java.lang.Object@6659c656
@符号后面的是什么?是 hashcode 还是对象的内存地址?还是其他的什么值?
其实@后面的只是对象的 hashcode 值,16进制展示的 hashcode 而已,来验证一下:
Object o = new Ob
Read More
Read More
RabbitMQ-进阶-多极客编程
过期时间TTL
过期时间TTL表示可以对消息设置预期的时间,在这个时间内都可以被消费者接收获取;
过了之后消息将自动被删除。
RabbitMQ可以对 消息和队列 设置TTL。目前有两种方法可以设置。
第一种方法是通过队列属性设置,队列中所有消息都有相同的过期时间。
第二种方法是对消息进行单独设置,每条消息TTL可以不同。
如果上述两种方法同时使用,则消息的过期时间以两者之间TTL较小的那个数值为准
Read More
Read More
10分钟认识RocketMQ!想进阿里连这个都不会?-多极客编程
一、消息中间件简介
1.1、什么是什么MQ
MQ(Message Queue)是一种跨进程的通信机制,用于传递消息。通俗点说,就是一个先进先出的数据结构。有点像队列。
1.2、MQ的应用场景
1.2.1、异步解耦
最常见的一个场景是用户注册后,需要发送注册邮件和短信通知,以告知用户注册成功。传统的做法如下:
此架构下注册、邮件、短信三个任务全部完成后,才返回注册结果到客户端,用户才能使用账号登
Read More
Read More
某团面试题:hashCode 的值是怎么生成的?对象内存地址吗?-多极客编程
先看一个最简单的打印
System.out.println(new Object());
会输出该类的全限定类名和一串字符串:
java.lang.Object@6659c656
@符号后面的是什么?是 hashcode 还是对象的内存地址?还是其他的什么值?
其实@后面的只是对象的 hashcode 值,16进制展示的 hashcode 而已,来验证一下:
Object o = new Ob
Read More
Read More