自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一直在努力的小渣渣

记住2018秋招的恐慌,希望自己以后笔耕不辍~

  • 博客(75)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 今日头条算法及技术架构分析

今日头条算法及技术架构分析​​  由于好奇,所以在网上搜索了大量的今日头条算法及技术架构文章,最后想进行一个总结。​  下面主要介绍今日头条推荐系统概览以及内容分析、用户标签、评估分析,内容安全等原理。一、今日头条推荐算法原理及详解1.系统概念​  推荐系统,如果用形式化的方式去描述实际上是拟合一个用户对内容满意度的函数,这个函数需要输入三个维度的变量。​​  推荐系统,如果用...

2018-11-25 16:10:13 14025 5

原创 Sentinel基础知识

Sentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。完备的实时监控:Sentinel 同时提供实时的监控功能。

2023-12-04 22:26:05 1020

原创 MyBatis源码分析

MyBatis是常用的持久层框架,帮助我们减少了很多的访问数据库的代码。这次我们就来看看MyBatis是怎么做到这些的?看看它里面用到了哪些值得我们借鉴的技术。

2023-11-14 15:59:51 127

原创 Raft算法之日志复制

在Leader选举过程中,集群最终会选举出一个Leader节点,而集群中剩余的其他节点将会成为Follower节点。Leader节点除了向Follower节点发送心跳消息,还会处理客户端的请求,并将客户端的更新操作以消息(Append Entries消息)的形式发送到集群中所有的Follower节点。当Follower节点记录收到的这些消息之后,会向Leader节点返回相应的响应消息。当Leader节点在收到半数以上的Follower节点的响应消息之后,会对客户端的请求进行应答。

2023-07-14 14:11:12 1820

原创 Raft算法之Leader选举

Raft 使用心跳(heartbeat)触发Leader选举。当服务器启动时,初始化为Follower。Leader向所有Followers周期性发送heartbeat。如果Follower在选举超时时间内没有收到Leader的heartbeat,就会等待一段随机的时间后发起一次Leader选举。Follower将其当前term加一然后转换为Candidate。它首先给自己投票并且给集群中的其他服务器发送 RequestVote RPC。结果有以下三种情况:1、赢得了多数的选票,成功选举为Leader。

2023-07-04 11:53:26 497

原创 RabbitMQ延迟消息

在项目中遇到了一个需要延迟发送消息的需求,经过一番探索找到了合适的解决方案,并且在本地进行了验证,这篇文章用于记录自己找到的方案,方便以后自己回顾,也方便有需要的人。

2023-02-23 19:55:36 393 1

原创 Springboot启动过程分析

SpringBoot的版本是v3.0.2,下面进行详细的分析。

2023-02-20 09:21:57 558

原创 Docker技术原理

Docker包含三个基本的概念:镜像、容器和仓库,本文就来依次介绍与探索。

2022-12-26 12:49:03 2945

原创 Docker安装教程

docker安装教程

2022-12-26 12:30:29 308

原创 毕业工作三年总结

毕业工作三年总结

2022-05-12 22:09:06 419

原创 如何学习一个框架

自己之前写过一篇类似的文章,但是只是将搜集到的资料进行了汇总,现在想一篇有自己思考的文章,方便自己以后查看,也希望对你有用。学习一个框架的整体思路是:由浅入深,从整体到局部。先了解个大概搜相关博客或者介绍视频,去了解这个框架是干什么用的,可以解决什么问题,在什么场景下用。了解这些东西可以建立起对一个框架的整体认知,这三个问题也是我们实际工作中要学习某个框架的原因。简单上手看看例子程序或者单元测试代码,特别不能忽略单元测试代码。最好看下官方的introduction和guide部分的文档,这可是最

2021-07-27 01:28:24 1531

原创 Spring模块概览

Spring模块概览对Spring的所有模块大概了解一下,建立一个整体的认知。1. Spring Boot帮助你快速的构建独立的、生产级别的基于Spring的应用。采用固定方式对待Spring平台和第三方库,以此来尽可能消除Spring应用的配置。特性创建独立的Spring应用。直接内嵌Tomcat、Jetty或者Undertow,不需要部署war包。提供固定的"starter"依赖,减少你的构建配置。尽可能的自动配置Spring和第三方库。提供生产可使用的特性,例如metrics、健康

2021-07-20 01:23:10 445

原创 Java线程池的shutdownnow()方法为什么不能停止运行的任务?

Java线程池的shutdownnow()方法为什么不能停止运行的任务?​在工作中到了一个实际问题,明明已经调用了线程池的shutdownnow()方法,但是线程池中任务依然在继续运行。​加下来先大概介绍一下问题背景,然后给出原因分析,最后给出这个问题的解决办法。一、问题背景​事情是这样的,在一个线程池中运行着一个周期任务task,这个task的run方法中会执行四个子任务,每个子任务中都会有网络操作。​ 下面简单用代码进行展示一下。public class Task implements R

2020-10-19 08:14:34 4074 2

原创 log4j2 学习(三) 流程跟踪 (Flow Tracing)

先直接上整个流程跟踪知识的思维导图为什么要用流程跟踪?用日志来跟踪应用程序的流程有下面的好处:开发时可以用于调试,而不需要构造一个特殊的运行场景在生产环境中没有调试工具,那么可以用跟踪程序流程的日志诊断问题帮助开发者了解应用程序使用情况进入方法进入方法的时候,可以将entry()和traceEntry()放在方法的第一个语句,这个日志方法的级别时TRACE,对应的marker...

2019-10-26 08:22:19 806

原创 log4j2 学习(一) 概述

一、功能在大型应用中,日志可以帮助定位问题和分析性能,日志组件几乎是大型应用的必备组件。log4j2是log4j的升级版本。log4j2可以完成日志输出。可以定制日志输出格式,指定日志输出的目的是文件、控制台、数据库或其他存储媒介。用log4j输出日志相比较于使用“System.out”的最大优势在于可以指定日志输出级别。二、特点与优势API独立log4j API是一个门面(faca...

2019-10-23 21:36:43 223

原创 命令式编程、声明式编程和函数式编程的理解与思考

命令式、声明式和函数式三种编程范式都各有特色。命令式编程关注的是具体步骤。声明式编程关注的是最后的结果。函数式编程在声明式编程基础上更进一步,将函数作为第一公民。命令式编程在平时常见的编程范式就是命令式编程。来个生活中的例子说明一下什么是命令式编程。比如,小红想吃西红柿炒鸡蛋,然后她妈妈就去买菜、洗菜、做好西红柿炒鸡蛋。小红她妈妈就是在执行命令式编程,必须清楚的知道每一步的动作。下面...

2019-10-18 22:38:15 2665 1

原创 Python at Netflix——评论

Python at Netflix——评论Netflix是一家以技术为导向型的公司,Spring cloud就是Netflix开源出来的框架。读了Netflix官方技术博客上的一篇文章《Python at Netflix》,文章的英文原文和链接都会放在本文下面,接下来我主要谈谈自己对这篇文章的感想。一、总结与感想首先说一下这篇文章的大概内容。Python在Netflix的多个地方都被广泛的使...

2019-09-02 00:56:35 927

原创 什么才是真正的成长?

最近每晚加班时间有点长,突然想到了这个问题,再联想到自己以前上学的经历就有了下面的感悟。成长是针对能力来说的,而不是你花了多少时间和干了多少任务。一直做能力需求低于自己当前能力水平的事,迟早要废,比如,检查一下文档里面的单词有没有拼错,段落是不是符合格式标准。做难度和自己当前能力水平相匹配的事,这只是在重复的熟练技能,比如你已经用Java写了7年的程序,然后让你对数据做一个排序,用一下log4...

2019-08-26 22:28:14 593

原创 Docker学习(二)Docker入门

Docker学习(二)Docker入门一、查看相关信息1、打印Docker版本$ docker --versionDocker version 17.12.0-ce, build c97c6d62、查看Docker安装的详细信息可以使用docker info或者docker version,不要添加--,就可以看到Docker安装的详细信息了。$ docker infoCon...

2019-08-25 23:48:34 612

原创 使用阿里云作为Docker镜像仓库

由于某些原因,访问Docker官网的镜像仓库非常的慢,于是我就打起了国内云服务的注意。最终决定使用阿里云的镜像仓库服务。下面大概介绍上传镜像到阿里云的步骤。一、注册阿里云。到阿里云官网https://homenew.console.aliyun.com/注册一个账号。二、 选择下图所示的容器镜像服务三、 设置命令空间这一步非常的重要。首先点击左侧菜单的命令空间,然后设置一个命令空...

2019-08-25 02:43:59 1508

原创 Docker学习(一)ubuntu18.04 安装Docker

要想学习docker,首先得安装一个Docker是吧。那我下面就以Ubuntu16.04为例子,来安装Docker。建议在安装docker前,把apt的源更改为国内的源,步骤可以参考Ubuntu 更换国内源Step1 卸载掉老版本的Docker老版本的Docker叫作docker, docker.io, or docker-engine. 如果Ubuntu系统已经存在这些软件的话,那么首先是...

2019-08-24 19:02:30 233

原创 JUnit4 学习笔记(一) 安装与示例

JUnit4 学习笔记(一) 安装与示例下载与安装(1) 直接使用jar下载下面这两个jar,然后添加到测试路径中:[junit.jar](https://search.maven.org/search?q=g:junit AND a:junit)hamcrest-core.jar(2) 使用Maven的方式<dependency> <groupId...

2019-08-18 22:01:57 708

原创 如何学习一个新的框架?

最近搜集了一些关于“如何学习一个新框架?”的资料,进行整理,方便以后查看,也方便有需要的人。参考资料:学习开源框架的一些总结最近一直在学习drools的有关知识,drools对于我来说了解的还是比较少的,但是项目又比较紧急。身边也没有会的人,只能自己上。而且,drools的中文资料又比较的少,学习起来还是比较痛苦的。现在的话也算是入门了,所以,总结了一些经验,不论是中文资料多或者是少,技术简单...

2019-08-15 00:48:32 2389

原创 Maven学习

Maven是为了帮助我们管理项目的依赖而存在的。Maven的功能:管理项目的依赖构建项目生成项目信息maven定义的文件目录结构下面是maven定义的文件目录:my-app|-- pom.xml`-- src |-- main | `-- java | `-- com | `-- mycompany ...

2019-08-05 00:39:35 147

原创 Git在IDEA中的使用(详细图文全解)

Git在IDEA中的使用git是一个优秀的分布式版本控制系统。但是当集成到IDEA中,每一个功能又该怎么操作呢?这篇文件涵盖了IDEA中常见的Git功能的操作,每一步都有图示,强烈建议收藏。文章目录Git在IDEA中的使用1. 下载安装与配置1.1 下载安装Git1.2 在IDEA中配置Git2. 克隆Github项目到本地3. 上传IDEA中已有的项目到Github4. 版本管理4.1 提交...

2019-08-05 00:15:23 68785 35

原创 Git基础知识之详细思维导图

前面学习了一下Git的基本知识,觉得应该可以对付常用的操作了,下面给出学习到的Git知识思维导图。参考资料:Git教程

2019-08-02 01:08:21 460

原创 Git 简单入门(四)之使用Github和码云,以及自定义Git操作

6. 使用github在GitHub上,可以任意Fork开源仓库;自己拥有Fork后的仓库的读写权限;可以推送pull request给官方仓库来贡献代码。7. 使用 码云国内的Git托管服务——码云(gitee.com)创建仓库和github上一样的本地库关联到码云的远程仓库自定义git配置user.name和user.email让git显示颜色忽略特殊文件忽略某些文件...

2019-08-02 00:15:34 156

原创 Git 简单入门(三)之远程仓库、分支管理和标签管理

3 远程仓库3.1 准备工作在github上创建账号github上的仓库是公开可见的不想让别人看见给Github交钱搭建Git服务器在本地生成ssh的私钥和公钥在github上设置自己的ssh公钥3.2 添加远程库在github 上创建新仓库把本地仓库推送到github仓库在本地仓库下运行$ git remote add origin <githu...

2019-08-02 00:12:56 210

原创 Git 简单入门(二)之版本管理

2. 版本管理2.1 查看仓库当前的状态命令:git status2.2 查看文件具体被修改了什么内容命令: git diff 2.3 提交修改和提交新文件一样第一步是git add 可以使用git status 查看将被提交的修改第二步是git commit -m 2.4 版本回退可以把commit理解为git仓库的快照如果误删除文件或者打乱了,可以从最近的...

2019-08-02 00:10:38 133

原创 Git 简单入门(一)之简介、安装与简单操作

1. Git简介1.1 起源Git是由linus用C语言开发的分布式版本管理系统。1.2 集中式VS分布式集中式版本管理:版本库存放在中央服务器干活的时候需要用网络连接到中央服务器缺点必须联网网速慢代表开源软件:SVN、CVS分布式版本管理:版本库在自己的电脑没有中央服务器多人如何协作你在自己电脑改动了文件A同事在自己电脑改了文件A只需把各...

2019-07-28 23:31:19 158

原创 linux替换rm命令为mv命令

linux替换rm命令为mv命令一、目的rm是Linux系统非常强大删除命令,但是使用rm命令删除文件后很难恢复。特别是对于将rm -rf ./*误敲成rm -rf /*,那可就欲哭无泪了。为了给自己的操作留有余地,会使用mv命令来替换危险的rm命令。二、步骤实现命令替换的思想其实就是采用bash内置的alias命令进行命令别名设置。2.1 代码演示在家目录下的.bashrc文件的末...

2019-07-14 14:35:53 1906

原创 Java远程操作HDFS文件系统

目标:通过Java编程实现远程HDFS文件系统的增、删、改、查,并且解释原理。一、准备工作集群:搭建Hadoop集群,并且启动HDFS。详细过程可以参考:Hadoop-2.5.1安装步骤及异常处理二、创建Maven工程选择创建工程:选择JDK版本,并勾选"create from archetype"选项,千万不要手贱选择“quick start”,选快速开启的话,创建的maven工程中...

2019-05-30 23:08:30 4117

原创 Hadoop资源调度框架Yarn的知识体系

下面是Yarn的知识体系图,这篇文章会介绍所有涉及的知识点。一、MRv1的架构和缺陷Apache Hadoop 是一个开源软件框架,可安装在一个商用机器集群中,使机器可彼此通信并协同工作,以高度分布式的方式共同存储和处理大量数据。在 MapReduce 框架中,作业执行受两种类型的进程控制:一个称为 JobTracker 的主要进程,它协调在集群上运行的所有作业,分配要在 TaskT...

2019-05-19 10:46:43 533

原创 分布式文件系统HDFS的起源、架构、组成、特性以及数据操作方式

HDFS知识学习​ hdfs全程是Hadoop Distributed File System,是一个分布式文件系统。​ 本博客首先介绍一下分布式的相关概念和知识,然后介绍HDFS的架构与组成,接着会详细分析HDFS读写数据的过程与元数据的管理,最后会总结操作HDFS文件的方式。一篇博客不可能详细讲清楚每一个细节,如果有不足和需要更正的地方,还希望大家留言指出来。分布式​ 分布式是近...

2019-05-14 10:15:43 2668

原创 Python大数据分析实战:豆瓣电影Top250中的最佳导演是谁?

在之前写的一篇文中中,已经采用urllib和BeautifulSoup的方式抓取了豆瓣电影TOP250的导演、编剧、演员、上映时间和地区、语言、短评数、影评数、多少人想看、多少人看过等22个字段。接下来,我们要对这些数据进行分析、挖掘,得到有价值的信息。下面是整个分析过程的思维导图:一、获取数据先从csv文件中读取数据,观察一下:import pandas as pddf = pd...

2019-05-07 01:54:08 1473

原创 零基础爬虫实战(Python):抓取豆瓣电影TOP250

​ 学习了《简明Python教程》,然后想着实战一下,搜索了一些资料,然后对豆瓣电影排行250进行了一个抓取,后续还会对数据进行一些分析。​ 这篇文章主要是对抓取豆瓣电影top250过程的一个梳理,方便日后自己查阅,也希望可以方便到有需要的人。一、整体步骤​ 下面是整个抓取过程的思维导图:1. 生成URL信息​ 首先观察豆瓣电影TOP250的网页地址,多点开几页,就能发现规律。...

2019-05-07 01:26:51 5626 1

原创 《简明Python教程》学习笔记

基本知识第一个Python程序:print("hello world")如何退出Python的解释器提示符:​ 在Linux或OS X的shell程序中,可以通过按下[ctrl+d]或输入exit()。​ 在windows命令提示符中,可以按下[ctrl+z]组合键,然后敲击[center]键来退出。注意:Python 是区分大小写的,如 print 和 Print 是不同的——注...

2019-04-26 09:48:34 2158 1

原创 Python学习资料与学习路线的整理

Python学习资料与学习路线的整理学习资源Python官网地址:https://www.python.org/Python官网给出的学习资源:Python For BeginnersPython官方入门文档:Python Tutorial – Learn Python Programming Step By StepPython教程-廖雪峰的官方网站:PythonPython基础教程...

2019-04-16 16:48:57 1383

原创 八人过河问题详解(Java语言求解)

八人过河问题详解(Java语言求解)在秋招面试搜狗大数据开发岗位的时候,面试官给出了一个八个人过河的问题,后来自己查了之后发现这个是经典过河问题的一个变型。网上也有其他求解这个问题的方法和代码。他们大多数是把所有的状态看作一个图数据,用矩阵表示,有的还需要提前把安全的状态判断出来,需要手动处理一些数据。我写的这个方法,不需要手动处理任何数据,直接就能运行出结果,最后为了更直观的展示,还会打印出...

2019-01-23 18:07:52 2175

原创 开发中Eclipse常用快捷键

编辑时常用快捷键下面是一些开发中比较常用的快捷键。按键功能Alt + /内容提示:Ctrl + 1提示Ctrl + shift + O导包Ctrl + Shift + F格式化代码块Alt+上下键代码位置调换Ctrl+/添加/除去单行注释Ctrl+Shift+/添加多行注释Ctrl+Shift+\删除多行注释w...

2019-01-17 16:38:58 144

现代操作系统

2016-03-20

你必须知道的495个C语言问题完整版本

这里面包含C语言需要注意的一些常见问题,课一帮助学习C语言的人进阶!

2015-07-18

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

TA关注的人

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