- 博客(161)
- 资源 (22)
- 收藏
- 关注
原创 Netty知识图谱
Reactor是一个线程对象,该线程会启动事件循环,并使用Selector(选择器)来实现IO的多路复用。注册一个Acceptor事件处理器到Reactor中,Acceptor事件处理器所关注的事件是ACCEPT事件,这样Reactor会监听客户端向服务器端发起的连接请求事件(ACCEPT事件)。
2022-10-24 20:50:48
529
原创 spring常用知识体系
BeanFactory:是Spring里面最底层的接口,包含了各种Bean的定义,读取bean配置文档,管理bean的加载、实例化,控制bean的生命周期,维护bean之间的依赖关系。BeanFactroy采用的是延迟加载形式来注入Bean的。
2022-10-24 20:41:23
961
原创 操作系统知识图谱
构建自己的知识图谱,有助于完整的梳理知识体系,主要是操作系统相关的知识和内容,以下梳理不包含一些特别简单的内容,仅包含一些常用的功能和知识体系,掌握这些知识体系是非常有必要的。...
2022-08-13 10:51:49
952
原创 MongoDB3.2 - 4.2 新特性解读
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。一、副本集3.2版本引入raft协议选举机制(pv1)、早期协议bully(简单的协调者竞选算法 pv0)相对于bully协议,raft协议的好处是...
2020-02-07 14:39:29
5130
1
转载 Java连接PostgreSQL数据库
在Java程序中使用PostgreSQL之前,我们需要确保在机器上安装了PostgreSQL JDBC和Java。 您可以在机器上检查是否正确安装了Java。 现在我们来看一下如何设置PostgreSQL JDBC驱动。 从postgresql-jdbc存储库下载最新版本的postgresql-(VERSION).jdbc.jar。 在类路径中添加下载的jar文件postgresq...
2019-12-29 21:56:18
1599
原创 并发编程常见问答
1、线程创建1.1、有哪些方法创建线程?1.继承Thread类 (真正意义上的线程类),是Runnable接口的实现。2.实现Runnable接口,并重写里面的run方法3 .应用程序可以使用Executor框架来创建线程池。Executor框架是juc里提供的线程池的实现。4.实现Callable接口通过FutureTask包装器来创建Thread线程1.2、如何...
2019-09-30 09:48:39
700
原创 Curator实现分布式锁的基本原理
curator是Netflix公司开源的一个ZooKeeper客户端封装。curator 对于锁这块做了一些封装,curator 提供了InterProcessMutex 这样一个 api。除了分布式锁之外,还提供了 leader 选举、分布式队列等常用的功能。本文主要以InterProcessMutex为例,介绍一下这个分布式可重入排它锁的实现原理。Curator的几种锁方案:InterP...
2019-07-15 10:47:43
4738
原创 浅谈Redis和zookeeper的分布式锁设计
本文主要谈一下使用Redis和zookeeper来进行分布式锁的设计过程和原理。一般实现分布式锁都有哪些方式?使用redis如何设计分布式锁?使用zk来设计分布式锁可以吗?这两种分布式锁的实现方式哪种效率比较高?对于分布式锁,一般来说有一下的需求:可以保证在分布式部署的应用集群中,同一个方法在同一时间只能被一台机器上的一个线程执行。这把锁要是一把可重入锁(避免死锁)有高可用的获取锁和释放...
2019-07-12 15:08:21
974
原创 zookeeper和kafka的SASL认证以及生产实践
一、什么是zookeeper?ZooKeeper是一个集中的服务,用于维护配置信息、命名、提供分布式同步以及提供组服务。所有这些类型的服务都以某种形式被分布式应用程序使用。每次它们被实现时,都有大量的工作需要去修复不可避免的bug和竞争条件。由于实现这类服务的困难,应用程序最初通常会略过它们,这使得它们在出现变化时变得脆弱,难以管理。即使做得正确,这些服务的不同实现在部署应用程序时也会导致管理复...
2019-07-10 15:01:52
16394
3
转载 InnoDB一棵B+树可以存放多少行数据?
InnoDB一棵B+树可以存放多少行数据?这个问题的简单回答是:约2千万。为什么是这么多呢?因为这是可以算出来的,要搞清楚这个问题,我们先从InnoDB索引数据结构、数据组织方式说起。我们都知道计算机在存储数据的时候,有最小存储单元,这就好比我们今天进行现金的流通最小单位是一毛。在计算机中磁盘存储数据最小单元是扇区,一个扇区的大小是512字节,而文件系统(例如XFS/EXT4)他的最小单元是块...
2019-07-04 08:47:41
593
原创 实战:javac插入式注解处理器
一套编程语言中编译子系统的优劣,很大程度上决定了程序运行性能的好坏和编码效率的高低,尤其在Java语言中,运行期即时编译与虚拟机执行子系统非常紧密地互相依赖、配合运作。了解JDK如何编译和优化代码,有助于我们写出适合JDK自优化的程序。看过javac源码,我们就知道,当我们的编译器在把java文件编译为字节码的时候,会对java源程序做各方面的校验,在本文的实战中,我们将会使用注解处理器API来编...
2019-05-30 13:44:58
1683
1
原创 设计模式常见问答
举例一个更倾向于用抽象类而不是接口的业务场景?答: 抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。应用场景:- 当需要去携程、去哪儿等在线旅游网站上面爬取酒店用户评论的时候,需要先调用这些网站的数据接口,然后获取数据,其次解析成我们需要的数据..
2019-04-30 08:18:45
554
原创 java部分基础知识汇总
1、受检异常和非受检异常的区别?所有的异常都是继承至Throwable,包括Error和Exception两个大类Error: 不用捕获,通常是一些底层和硬件的错误,与程序本身无关Exception: 非受检异常:程序本身的异常,如果不主动捕获的,会由jvm去进行处理 受检异常:IOException/SQLException ,必须要去捕获的异常当发生异常时,可以通过try...
2019-03-20 16:19:00
508
原创 单例模式详解
本文主要分享的内容是单例模式的应用场景、常见的单例模式写法、保证线程安全的单例模式策略、反射暴力攻击单例解决方案及原理分析、序列化破坏单例的原理及解决方案。一、单例模式的应用场景单例模式(Singleton Pattern)是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。单例模式是创建型模式。在 Spring 框架应用中 ApplicationContext;数据库的连...
2019-03-12 11:05:20
467
1
原创 单机版kubernetes1.13安装
kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,kubeadm会对集群配置方面的一些实践做调整,通过实验kubeadm可以学习到Kubernetes官方在集群配置上一些新的最佳实践。本文使用阿里云的镜像仓库。一、前置条件:环境:在virtuarbox和VMare中都可以,如果是在虚拟机中,要注意设...
2019-01-08 20:59:10
1857
1
原创 策略模式的实际应用
应用场景:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。特点 :行为型模式 最终执行结果是固定的。执行过程和执行逻辑不一样。目前在公司的实际项目中,有如下场景:有3中数据来源的详情查询(客流数据、舆情数据、画像数据),这三种数据请求的参数都是相同的,如参数里面都是省、市、县、景区名称、开始时间、结束时间。返回的数据也是相同的...
2018-12-18 16:17:38
970
原创 使用观察者模式进行短信通知、预警日志记录
应用场景:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。如在舆情系统中发现有客户给出差评,就需要2小时内给相应的负责人发送短信通知,在客流系统中,人数超过预警值需要发送短信提醒相关负责人并记录到预警流水表中。特点:一般由两个角色组成...
2018-12-18 11:20:40
2277
原创 POI复制Excel模板并填充数据
我们最近需要对系统加一个报表导出的功能,可以通过POI直接导出,导出后的excel文件需要支持在office里面修改数据后图表也会自动变换。方法一可以使用jfreechart+poi,但是这种方法生成的图表是一张图片,不能在office中自动修改;第二种方法是poi调用 office的宏,它需要调用自定义的.dll 文件,也需要在windows环境中,所以不适用...
2018-12-18 10:46:21
5304
4
原创 记一次服务器性能问题排查经过
最近,测试妹子和前端向我反映说接口查询起来很慢,他们那边加载要挺久的,我满满自信的说不科学啊,我过去一看,好像的确是挺慢的,然后就决定来把这个问题解决一下。因为我的API服务以及部署在我们部门目前性能最好的服务器上面了,所以应该不是API服务器这个节点的问题,然后屁颠屁颠的查sql...
2018-11-27 15:01:07
762
原创 基于轨迹的游客行为特征分析
大数据时代,深度“数据挖掘”高级分析技术成为大势所趋,对于旅游景区来说,谁先掌握互联网平台、善用大数据,谁就最有可能先人一步破除体制壁垒与管理围墙,实现转型升级和跨越式发展。通过在旅游景区部署移动信号监测设备,就可以发现该群体游客的相关属性,例如在一个区县,在不同景点之间部署,可以发现游客移动的轨迹是怎么样,本文主要就是用于分析游客在不同景点之间的浏览情况,这样可以更加合理的设计景区与景区之间的交通路线,销售相关旅游产品和应急预案等方面的东西...
2018-10-16 10:33:28
6627
3
转载 MySql5.6性能优化
目标了解什么是优化 掌握优化查询的方法 掌握优化数据库结构的方法 掌握优化MySQL服务器的方法什么是优化?合理安排资源、调整系统参数使MySQL运行更快、更节省资源。 优化是多方面的,包括查询、更新、服务器等。 原则:减少系统瓶颈,减少资源占用,增加系统的反应速度。数据库性能参数使用SHOW STATUS语句查看MySQL数据库的性能参数 SHOW STATUS LIKE ...
2018-09-20 10:30:46
500
转载 Tomcat7性能优化
目的通过优化tomcat提高网站的并发能力。服务器资源服务器所能提供CPU、内存、硬盘的性能对处理能力有决定性影响。优化配置 配置tomcat管理员账户 在conf/ tomcat-users.xml下添加用户: <role rolename="manager"/><role rolename="manager-gui"/><rol...
2018-09-20 10:23:44
520
原创 python中scrapy框架爬取携程景点数据
本文使用scrapy框架,python3.6进行爬取,主要获取的是携程上河南省的景点名称,地址,省市县,描述,图片地址信息等。首先通过搜索可以得到河南的网页地址为:http://piao.ctrip.com/dest/u-_ba_d3_c4_cf/s-tickets/P1/,然后以这个页面为起始位置开始爬取。将爬取的数据保存到mysql数据库中。
2018-09-04 11:51:27
7046
7
原创 hyperedger +fabric 区块链实践
1、Fabric开发基础必备 hash:相同的数据内容,会生成相同的hash值。区块:区块有区块的编号、交易数据、时间戳等来生成一系列的哈希值挖矿:去计算一个随机数、满足我们hash值的一个随机数。安装完成后直接输入 blockchain 进入输入内容,从创世区块开始,例如我这里输入bc
2018-08-30 16:00:56
4898
原创 利用python脚本监控Tomcat服务器
对于最近的开发环境,偶尔会有挂掉的现象发生,然而并没有及时发现,下载需要添加一个监控功能,当服务挂掉的时候需要有邮件提醒,同时我们的系统每天晚上会跑定时任务,想知道有没有异常发生,所以添加了两个python监本监控,因为本身系统不大,所以没必要去配置kafka+storm这种日志监控了,只用了很简单的方式来处理了。1、监控tomcat是否挂掉from smtplib import SMTP_SSL...
2018-07-05 21:41:23
3810
原创 自定义maven插件的实现
最近在折腾maven,然后研究了一下maven的插件的写法,然后做了一个案例,通过maven插件来统计当前工程中的目录下有多少个java文件,操作步骤如下,在intellij idea中使用。1、新建一个maven项目,我这边jdk的build选择的是1.8,在pom.xml中添加...
2018-06-13 14:22:05
15897
4
原创 tomcat部署多个项目,通过不同域名解析访问不同的网站
最近在上线的两个网站,使用的是一台服务器下的一台tomcat,然后部署了两个应用,现在有两个域名分别指向这两个应用。例如域名 a.com指向tomcat中的app1.war,域名b.com指向tomcat中app2.war,也就是同一台tomcat配置;两个不同的域名指向不同的工程。 解决方案一:直接修改tomcat的配置:修改tomcat/conf/server.xml配置文件,新增部分...
2018-05-15 10:25:05
3283
1
原创 docker中安装的centos启动tomcat 非常慢解决方案
最近在用docker部署部署应用,遇到的两个问题就是:1、docker run 启动容器的时候,总是会强行Exited ,这个问题就是在启动时加上-it就可以了,例如 docker run -it -d -p 58080:8080 --name tomcat1 test/myweb:0.1 /root/run.sh 2、docker中安装的centos启动tomcat 非常慢。在全部操作完成之后...
2018-05-15 09:49:47
4012
5
转载 协同过滤推荐算法及应用
1. CF协同过滤推荐算法原理1.1 概述什么是协同过滤 (Collaborative Filtering, 简称 CF)?首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,你会怎么做?大部分的人会问问周围的朋友,看看最近有什么好看的电影推荐,而我们一般更倾向于从口味比较类似的朋友那里得到推荐。这就是协同过滤的核心思想。协同过滤算法又分为基于用户的协同过滤算法和基于物品的协同过滤算...
2018-05-09 09:36:03
17179
原创 HashMap源码分析与实现
面试的时候经常会遇见诸如:“java中的HashMap是怎么工作的”,“HashMap的get和put内部的工作原理”这样的问题。本文将用一个简单的例子来解释下HashMap内部的工作原理。每当hashmap扩容的时候需要重新去add Entry对象,需要重新hash,然后放入我们新的entry table数组里面。如果在工作中,已经知道hashmap需要存多少值,几千或者几万的时候,最好新指定题...
2018-02-09 16:01:02
5881
原创 基于CBO的SQL优化和Oracle实例优化
SQL优化是数据优化的重要方面,本文将分析Oracle自身的CBO优化,即基于成本的优化方法。Oracle为了自动的优化sql语句需要各种统计数据作为优化基础。外面会通过sql的追踪来分析sql的执行过程,消耗的资源信息。对于数据库的性能问题往往是在系统部署一段时间之后出现的,即大量用户开始使用该系统,系统的数据处理量和各种计算复杂性增加的时候,这个时候往往会追溯到系统的初始设计阶段,所以我们还是
2017-12-08 22:21:33
4135
1
原创 大话Elasticsearch常用操作和核心原理
我们想要寻找某些信息的时候,一般会直接去百度、谷歌、搜歌、360搜索等,搜索分为垂直搜索、互联网搜索、IT系统的搜索。搜索,就是在任何场景下,找寻你想要的信息,这个时候,会输入一段你要搜索的关键字,然后就期望找到这个关键字相关的有些信息...
2017-11-07 16:20:51
32199
6
原创 Java基础资料整理
1、LocalThread的应用场景,数据传输适合用LocalThread么2、linux的基本命令 软链接、更改用户组和名、查看磁盘IO、查看内存、查看磁盘大小3、网络安全(攻防有哪几种类型)4、JVM的包括哪几种,画图表示,JVM的垃圾回收算法有哪几种5、年轻代、持久代、老年代6、session和cookie的区别,在分布式环境中,如何保持session共享,例如两台tomcat中,其中一
2017-08-25 17:20:44
18450
1
原创 Python爬虫采集CloudBlog网站的文章
本文通过使用python爬虫,来将一个网站中的文章获取下来,包括标题、发表时间、作者、文章内容等基本信息,并且将这些数据存储到数据库中,是一个非常完整的流程。获取首页所有的文章连接,并存放到URL集合中,然后再一个个的访问这些采集到的链接,来访问,并再次解析出文章详细的内容。 最近有个需求,需要采集金融财经类的新闻文章,获取首页所有的文章连接,并存放到URL集合中, 在本文中,以采集CloudBlog的博客文章为例,如下图所示,首先采集这个页面的信息....
2017-07-27 17:03:06
2929
转载 日志监控告警系统的设计与实现
日志监控告警系统基于的日志进行监控,监控需要一定规则,对触发监控规则的日志信息进行告警,告警的方式,是短信和邮件。log4j---->error,info,debug 应用程序程序的日志 error级别 TimeOutException 角标越界IndexXXXException ......Errorcom.alibaba.jstorm.daemon.worker.Wo...
2017-06-13 17:02:23
55446
6
原创 Spring+SpringMVC+MongoDB案例
MongoDB是一个NoSql数据库,MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。其存储结构为BSON。下面是通过一个Spring+SpringMVC+MongoDB的案例来说明mongodb的基本使用。
2017-03-22 21:35:49
5010
原创 基于openstack构建私有云实践
主要分享的是云计算、openstack的使用、私有云平台建设、云服务器云硬盘的构建和使用。从基本概念入手到私有云建设,信息量非常大。对于openstack的安装部署都是从官方文档中一步步的介绍,内容非常详细。云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源...
2017-02-02 13:35:58
26455
原创 KVM虚拟化技术实践
今天分享的文章是关于云计算中的kvm(虚拟化技术),通过本文你可以知道的是kvm是干什么的,如何使用kvm,如何通过java操作xml从而生成生成虚拟机。KVM 全称是 基于内核的虚拟机(Kernel-based Virtual Machine),它是一个 Linux 的一个内核模块,该内核模块使得 Linux 变成了一个 Hypervisor。我们需要知其然也要知其所以然。那么我们是怎样做到在VMware Work
2017-02-01 16:01:01
28523
原创 Elasticsearch+Hbase实现海量数据秒回查询
首先祝大家2017新年快乐,我今天分享的是通过ElasticSearch与hbase进行整合的一个搜索案例,这个案例涉及的技术面比较广,首先你得有JAVAEE的基础,要会SSM,而且还要会大数据中的hdfs、zookeeper、hbase以及ElasticSearch和kibana。环境部署在4台centos7上。ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apa
2017-01-01 16:38:06
64563
25
原创 COS对象存储服务的使用
在很多图片上传以及文件上传下载操作的时候,我之前一直使用的是nginx在服务器中划分出一个静态的文件服务器,我主要用于存放图片。然后因为某种原因,然后我换成了COS。官网的简介是这样的:对象存储服务(Cloud Object Service)是面向企业和个人开发者提供的高可用,高稳定,强安全的云端存储服务。然后我最开始是抱着死马当活马医的心态来使用的,进度上面要求我是要尽快完成的,而且我发现对于我这种小网站来说使用这个COS服务基本上是免费的,简直就是捡到宝的感觉...
2016-12-14 15:58:23
14344
4
游客轨迹分析数据集
2018-10-16
自定义maven插件的实现
2018-06-13
POI基本操作方法和api文档
2016-11-29
新浪微博授权登录代码
2016-07-18
Ajax+Struts2实现验证码验证功能
2016-06-24
流量分析系统源数据
2016-06-16
hadoop用户流量分析系统原始数据
2016-06-10
xml解析案例
2016-06-01
java企业人事管理系统 (含源码,数据库)
2016-05-20
javamail邮件
2016-05-13
java记事本程序
2016-04-24
oracle实战详解
2016-03-29
基金项目源码
2016-03-14
javaee实训教程
2016-02-29
新闻客户端源码(安卓)
2016-02-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人