自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

开着奥迪卖小猪

越努力越幸运

  • 博客(113)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java爬虫之WebMagic

目录一、设计思想二、总体架构三、项目组成四、实际应用 这里只附一张metabase报表图一、设计思想1. 一个框架,一个领域一个好的框架必然凝聚了领域知识。WebMagic的设计参考了业界最优秀的爬虫Scrapy,而实现则应用了HttpClient、Jsoup等Java世界最成熟的工具,目标就是做一个Java语言Web爬虫的教科书般的实现。如果你是爬虫开发老手,那么WebMagic会非常容易上手,它几乎使用Java原生的开发方式,只不过提供了一些模块化的约束,封装一...

2021-04-11 21:43:49 524

原创 Java进程CPU使用率过高 排查

简要步骤:top (找到最耗cpu的进程) top -Hp 1 (找到最耗cpu的进程的最耗cpu的线程) top -H -p PID printf "%x\n" 10854 (将线程pid转换为16进制,结果2a66) /opt/jdk1.8.0_231/bin/jstack 1|grep '0x2a66' -C20 --color (查看进程堆栈,找到最耗cpu的那个线程在干嘛 20行) 背景某服务器上部署了若干tom...

2021-04-11 11:01:11 738

转载 阿里一年,聊聊我成长了什么,入职阿里的职业生涯感悟

2018.5.31~2019.5.31,一段精彩的旅程,渡过了在阿里一年的时光,这段时光有快乐、有焦虑、有迷茫、更有思考,思考的是自己过去的种种不足、思考的是一些现在看来之前错误的想法、思考的是如何成为一个更好的技术人,将这一些思考分享给看到这些文字的每个人,共勉。应当如何面对线上的异常/故障 看起来毫无意义的一个问题,碰到线上异常/故障如何面对,排查解决了不就好了,但...

2019-09-26 09:15:54 662

原创 缓存雪崩、缓存穿透、缓存击穿

一、缓存雪崩 当缓存大规模渗透在整个架构中以后,那么缓存本身的可用性将决定整个架构的稳定性。 缓存雪崩是指设置缓存时采用了相同的过期时间,导致缓存在某一个时刻同时失效,或者缓存服务器宕机宕机,导致缓存全面失效,请求全部转发到了DB层面,DB由于瞬间压力增大而导致崩溃。 缓存失效导致的雪崩效应对底层系统的冲击是很大的。解决方式: 1. 对缓存的访问,如果发现从缓存...

2019-09-08 22:20:08 598

原创 Redis持久化:RDB、AOF

目录一、RDB方式Redis会在以下几种情况下对数据进行快照:RDB优点RDB缺点二、AOF方式开启AOFAOF的实现AOF的重写原理AOF优点AOF缺点PS:小编另外一篇关于持久化快照的文章:https://blog.csdn.net/kzadmxz/article/details/75913259Redis两种持久化的方式: RD...

2019-09-06 12:17:39 630

原创 Redis存储结构、数据类型

存储结构: Redis的全称是remote dictionary server(远程字典服务器),它以字典结构存储数据(key-value),并允许其他应用通过TCP协议读写字典中的内容。 数据结构如下:数据类型:1、字符类型 String 字符串类型是redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据。你可以用它...

2019-09-06 10:30:27 7555

原创 Redis为什么高效?应用场景是什么?性能瓶颈在哪里?

为什么高效: 1、完全基于内存,大多数请求都是内存操作,非常快速; 2、数据结构简单,操作简单; 3、采用单线程,避免了不必要的上下文切换和竞争条件,不存在多进程或者多线程的切换,不用考虑锁带来的性能消耗; 4、使用多路 I/O复用模型,非阻塞 IO应用场景: 缓存(数据查询、热点数据、商品数据、短连接、新闻内容等。(最多使用)...

2019-09-06 09:53:44 1245

原创 分布式事务 解决方案

目录一、为什么会有分布式事务?二、分库分表以后带来的问题?三、分布式事务解决方法及原理1、经典的 X/Open DTP 事务模型2、2PC二阶段提交(two -phaseCommit)3、3PC 三阶段提交(1)cancommit阶段:询问是否可以执行事务提交(2)precommit阶段:预提交(3)doCommit阶段:四、分布式事务一致性 开源...

2019-08-21 22:59:01 834 2

原创 聊聊 “触发器 trigger” 引发的bug

1、生产bug这是一个A系统从B系统同步项目信息的job。2、排查后台报错:java.sql.SQLException: ORA-01795: maximum number of expressions in a list is 1000原因:in里面最多1000个值,如果in的括号里面超过了1000个值,就会报这个错误。经查,sqlMapping...

2019-07-30 22:41:47 1350

原创 GC算法 (标记清除、复制、标记整理、 分代收集) 、 新生代 老年代

一、标记-清除算法(Mark-Sweep) 1标记阶段:首先通过根节点,标记所有从根节点开始的可达对象。未被标记的对象就是未被引用的垃圾对象 2清除阶段:清除所有未被标记的对象。 不足:1效率问题:标记和清除两个过程的效率都不高。 2空间问题:标记清除后会产生大量不连续的内存碎片,空间碎片太多可能会导致以...

2019-07-20 11:39:12 11000 3

原创 Mybatis框架:原理解析

目录一、原生jdbc — jdbc utils工具类 — ORM框架二、Mybatis是什么?三、Mybatis和Hibernate区别和应用场景四、Mybatis框架原理五、SqlMapConfig.xml1、properties属性2、settings全局参数配置3、typeAliases(别名)4、typeHandlers(类型处理器)5、map...

2019-05-08 19:28:47 1687

原创 限流 熔断:Hystrix、 Sentinel

目录一、Hystrix SpringCloud1、Hystrix名字由来?2、Hystrix是什么?3、为什么需要Hystrix ?4、Hystrix的设计原则是什么?5、Hystrix如何解决依赖隔离6、Hystrix是如何实现它的目标的?7、如何使用Hystrix?8、Hystrix-dashboard监控平台搭建9、Hystrix配置...

2019-04-21 12:58:57 2460

原创 Oracle序列sequence cache nocache、RAC

一、问题描述:新增了个表,上了生产环境之后,发现ID跳号且穿插,如图1所示。 而测试环境只是跳号,如图2所示。 图1 生产环境 图2 ...

2019-01-03 21:10:44 4016

原创 数据库MySQL的应急处理

数据库CPU使用率过高通过监控面板确认数据库qps是否有突增,如果突增,则进行qps突增应急预案处理 查看数据库慢sql,如果存在大量慢sql,则启动慢sql应急预案处理qps突增应急预案查看数据库当前的大量的qps来自于哪里 通过sql定位到这些请求来自于哪个服务 能否定位到服务对应的接口,如果能则限流该接口,如果不能则限流整个应用。慢sql的应急预案查看数据库当前慢sql 通过慢sql定位到对应应用 能否定位到服务对应的接口,如果能则限流该接口,如果不能则限流整个应用。...

2021-04-11 21:23:16 1422

原创 代码整洁之道

混乱的代价稍后等于永不 – 勒布朗法则 简单代码规则 能通过所有的测试 没有重复的代码 体现系统中的全部设计理念 包括尽量少的实体,比如类,方法,函数等 更改的原则 更改一个变量名 拆分一个过长的函数 消除重复的代码 清理嵌套的if语句 函数函数要么做事情,要么回答什么事 要么do什么操作 要么返回值 这种指定需要分割开 使用异常替代返回的错误码 多使用抛出异常 抽离Try/catch 代码块 错误处理只做一件事 如果错误基类...

2020-09-17 20:54:59 203

原创 Gitlab用户在组中有五种权限:Guest、Reporter、Developer、Master、Owner

Gitlab权限管理Gitlab用户在组中有五种权限:Guest、Reporter、Developer、Master、OwnerGuest:可以创建issue、发表评论,不能读写版本库Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限Developer:可以克隆代码、开发、提交、push,RD可以赋予这个权限Master:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限Owner:可以设置项目访问权限 - Visibility ...

2020-07-30 13:43:39 2159

转载 阿里巴巴共享服务中心:淘宝四大服务中心

本章将介绍阿里巴巴共享服务中心的架构,以及在架构转变的过程中,技术团队对如何建设共享服务中心的思考,包括在过去几年建设历程中,我们沉淀出的一些建设原则。 在阿里巴巴集团的中台战略中,共享服务中心是中台架构的基石,如何构建稳定可靠、最高效地支撑上层业务快速创新的共享服务能力是中台战略成功落地的关键。 一般来说,服务能力包括两个层次,一个层次是底层PaaS的能力...

2020-04-02 10:46:55 622

转载 java 反射机制之 getDeclaredMethod()获取方法,然后invoke执行实例对应的方法

关于反射中getDeclaredMethod().invoke()的学习,来源于项目中的一行代码:SubjectService.class.getDeclaredMethod(autoMatchConfig.getMethodName(), Integer.class).invoke(subjectService, GlobalConfig.OPEN_TO_IPLAN);获取反射的方法有...

2020-02-25 16:45:52 1187

原创 JVM性能优化

直接上图

2020-02-17 17:12:23 293

原创 Fetch failed remote error:CAPTCHA required

拉取代码报错: 提示就是要你输入验证码啊,网页没问题,但是git客户端没法输入,所以才报错。 解决办法:在网页上登陆了下仓库,输入下验证码,然后Idea再拉取,OK。...

2019-11-13 12:06:03 1027

原创 Kafka为什么吞吐量大、速度快?

本文参考:http://searene.me/2017/07/09/Why-is-Kafka-so-fast/ https://queue.acm.org/detail.cfm?id=1563874 Kafka是大数据领域无处不在的消息中间件,目前广泛使用在企业内部的实时数据管道,并帮助企业构建自己的流计算应用程序。 Kafka...

2019-09-28 02:01:32 16531 5

原创 Double型比较大小 compareTo()

public class DoubleCompare { public static void main(String[] args) { Double d1 = 100.0; Double d2 = 90.0; Double d3 = 150.005; int i = 10; System.out...

2019-09-20 11:05:09 6799 1

原创 布隆过滤器 bloom

布隆过滤器的应用:https://blog.csdn.net/kzadmxz/article/details/100640815 布隆过滤器是Burton Howard Bloom在1970年提出来的,一种空间效率极高的概率型算法和数据结构,主要用来判断一个元素是否在集合中存在。因为他是一个概率型的算法,所以会存在一定的误差,如果传入一个值去布隆过滤器中检索,可能会出现检...

2019-09-08 22:43:43 318

原创 锁:公平锁/非公平锁、悲观锁/乐观锁

一、公平锁/非公平锁(多线程执行顺序的维度)公平锁:加锁前先查看是否有排队等待的线程,有的话优先处理排在前面的线程,先来先得。 非公平所:线程加锁时直接尝试获取锁,获取不到就自动到队尾等待。例子ReentrantLock 同时支持两种锁//创建一个非公平锁,默认是非公平锁Lock nonFairLock= new ReentrantLock();Lock nonFairL...

2019-08-22 13:12:27 635

原创 slf4j与logback冲突,导致 log4j.properties不起作用,疯狂打印debug级别日志

1、bug现象:生产环境,日志级别不受控,疯狂打印debug级别的日志,也连不到日志平台kibana。 此时已不能回滚,因为,新上的RPC接口,已经被别的系统依赖。 除了日志问题,其它一切正常。 所以当前方法是,赶紧找到问题所在,解决掉。2、将生产问题尝试在测试环境复现 ...

2019-07-31 22:48:04 3786

原创 【安全漏洞】XStream 远程代码执行高危漏洞

老铁们,又来漏洞啦...https://help.aliyun.com/noticelist/articleid/1060033733.html?spm=5176.12809143.sas.63.2cb0QyZfQyZfwl

2019-07-30 16:09:23 2259

原创 【安全漏洞】jackson-databind漏洞、 异常NoClassDefFoundError: Could not initialize class com.fasterxml.jackson

一、jackson-databind漏洞 国家信息安全漏洞库:http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-201906-867 二、发现项目中有使用2.6.3版本的jackson,所以进行升级 jackson-databind 升级到2.9.9.1、 jackson...

2019-07-25 00:54:40 13893 5

原创 Solr+Zookeeper 搭建搜索集群SolrCloud

目录一、简介1、SolrCloud是个什么玩意?2、Solr是个什么玩意?3、zookeeper是个什么玩意?4、实现负载均衡的方式: (Nginx、Redis槽、Zookeeper)二、SolrCloud的结构1、物理结构2、逻辑结构三、SolrCloud的搭建(3个zookeeper、4个solr)1、3台zookeeper搭建2、4台solr 实例...

2019-07-20 15:50:46 3395 1

原创 Kafka 与 Flume

一、Kafka与Flume比较1、Flume主要是为了发送数据给HDFS和HBase用的工具。 Flume集成了Hadoop的安全体系。 如果数据将被多个系统所消费,那么采用Kafka。 Kafka是一个更加通用的系统。 可以有很多数据的Producer和Consumer。 这些Consumer之间共享多个主题。2、Flume具有多个内置的源和sink...

2019-07-17 23:47:25 809

原创 Hadoop与Spark异同

Hadoop与Spark异同主要有以下10点:1、性能:当数据大小适于读入内存,尤其是在专用集群上时,Spark 表现更好;Hadoop MapReduce 适用于那些数据不能全部读入内存的情况,同时它还可以与其它服务同时运行。2、使用难度:Spark 更易于编程,同时也包含交互式模式;Hadoop MapReduce 不易编程但是现有的很多工具使其更易于使用。3、成本:根据基准...

2019-07-17 23:29:22 1194

原创 IDEA导入Spring源码,spring-core报错,缺失DefaultNamingPolicy类

一、问题描述: 在IDEA导入Spring源码后,发现spring-core报错,经过排查发现是DefaultNamingPolicy未引入,它来源于spring-cglib-repack、spring-objenesis-repack这两个jar文件。二、解决方法: 进入源码的目录,执行:gradle objenesisRepac...

2019-06-28 12:28:59 3943 1

原创 【安全漏洞】CSRF漏洞攻击:原理、检测、防御、实践

目录一、CSRF漏洞攻击原理1、CSRF攻击原理图2、CSRF攻击实例二、CSRF漏洞检测三、防御CSRF攻击1、验证 HTTP Referer 字段2、在请求地址中添加 token 并验证3、在 HTTP 头中自定义属性并验证四、生产bug实践1、生产csrf漏洞发现,见jira截图2、解决策略:法1:加拦截器,校验referer字段法2:加验...

2019-06-16 16:48:21 2923

原创 Oracle查看用户的表

-- 查看当前用户的表:SELECT count(*) FROM user_tables; -- 查看当前用户下有多少张表SELECT * FROM user_tables; -- 查看当前用户下的表SELECT * FROM user_tab_comments; -- 查看当前用户下的表,注释等SELECT * FROM user_col_comment...

2019-05-08 15:46:32 16994 1

原创 e.printStackTrace()

目录一、含义二、不建议使用e.printStackTrace()三、建议使用 logger.error();一、含义catch(Exception e) { e.printStackTrace();} 当try语句中出现异常是时,会执行catch中的语句,java运行时系统会自动将catch括号中的Exception e 初始化,也就...

2019-05-07 09:55:17 39606 8

转载 CSDN积分获取方法

 积分获取攻略:1. 个人设置里进行手机绑定CSDN账户 奖励50分 (右上角设置-账户安全-手机绑定)2. 完成任务送若干分积分      http://task.csdn.net/3. 上传有效资源获取积分(上传非法,广告资源用户,将被扣除一定积分,严重者封号)。   · 上传自己设分资源被下载,下载量×资源分,100分封顶。   · 上传0分资源被下载,下载量×系统奖励1分,100...

2019-01-24 10:47:31 4859 137

原创 idea 中文乱码

 一、问题描述: 写单元测试,测试远程服务接口时,遇到中文乱码问题,造成传参错误。 如下图      二、解决方法:     看右下角,已经是UTF8,如图    (注:这里只是表示当前这个文件的编码方式,如果改变当前文件的编码,可以直接右击\File Encoding\...修改为UTF8)                继续找问题所在     prefere...

2019-01-03 20:01:27 2948

原创 IDEA清空缓存及索引

IDEA清空项目缓存: File / Invalidate caches ... Invalidate and Restart:使缓存无效并重启(执行此项)Invalidate:使缓存无效Just Restart:仅重启PS: IDEA在首...

2018-11-29 16:18:07 4644

原创 idea本地起项目,手动自由切换dev、test环境问题

一、问题描述           idea本地起项目,总是不停使唤,即使MavenProjects里做了选择,pom文件里也做了限定有时连到dev环境、有时连到test环境。 这样会造成不同环境的服务调用的混乱。                      二、解决方法   Edit Configurations/ + Maven / dev  :clean package -D...

2018-11-21 12:40:10 8905

原创 mac securecrt记住密码

一、问题描述    mac有自带的终端,可以运行ssl和sftp,但是目录操作,文件操作和文件上传是分开的,很不方便,并且文件上传命令需要文件的全路路径。     使用securecrt能方便的解决上述的问题,并且文件上传采用选择文件的方式。但是由于有多个服务器需要连接和管理,每次连接securecrt都需要重新输入密码。   最近使用破解版的Mac secureCRT,一开始是记住密...

2018-09-27 12:02:23 2182

原创 JVM基本结构

2018-09-24 21:57:47 131

Paste破解版:mac复制粘贴历史记录小软件

复制粘贴历史记录小软件下载,Mac(Paste破解版), 博客链接:https://blog.csdn.net/kzadmxz/article/details/81413141

2019-01-09

空空如也

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

TA关注的人

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