自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

John的博客

一生一趟,不虚此行!

  • 博客(123)
  • 资源 (12)
  • 收藏
  • 关注

原创 精选面试题

并发编程一.Executor为什么使用线程池:手动创建线程耗费性能,不利于管理。首先创建线程池有两种方式:使用Executors工厂来创建ThreadPoolExecutor这类自定义线程池。1. 使用Executors工厂来创建Executors是一个类,用来创建线程池,常用的有四种线程池1.newFixedThreadPool 创建一个可重复固定的线程数的线程池2.newCachedThreadPool 创建一个可缓存的线程池,调用execute将重复用以前构造的线程(如果当

2021-06-01 17:18:18 216

原创 mysql使用问题

问题:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone....解决方案:show variables like '%time_zone%';set global time_zone='+8:00';问题:刚安装完mysql8.0.11,连接时报错:在navicat中报错client does not support authenticatio

2021-03-09 11:08:08 202

转载 数据迁移 —— 从 PostgreSQL 到 MySQL

一、背景公司某个项目,本来生产环境一直用线上的 aliyun 的 PostgreSQL RDS 的,但是后来为了一些更高级的功能扩展,换成了 aliyun 的 MySQL RDS。于是需要进行数据库的迁移。技术栈:Node.js(Express) React PostgreSQL二、结构迁移我们的库比较简单,只有表,没有视图、函数、存储过程、触发器什么的。所以结构这块不用考虑太多。我们 Node 应用用的是 Sequelize,需要改造的就一条:把 model 定义里涉及JS.

2020-11-26 10:05:46 2973

原创 git重置密码后,idea需要重新登录

因改密码本地idea需要重新登录执行 git config --system --unset credential.helper 命令,重新出入账户密码

2020-10-29 17:27:00 1673

原创 消息队列设计精要

消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发的Notify、MetaQ、RocketMQ等。本文不会一一介绍这些消息队列的所有特性,而是探讨一下自主开发设计一个消息队列时,你需要思考和设计的重要方面。过程中我们会参考这些成熟消息队列的很多重要思想。本文首先会阐述什么时候你需要一个消息队列

2020-05-13 14:30:03 399

原创 后端业务域性能优化指南

环境准备操作系统JVM与应用服务器周边依赖系统数据库拓扑根据扩展性原则考虑: 垂直拆分:按业务将表拆分到不同的库。 水平拆分:水平分库分表。 读写分离:在业务允许的情况下,在从库读取非实时数据。 海量数据表的定期归档:主要有利于DDL变更及数据备份。查询时如命中索引差别不大 Schema:数据库DDL SQL 遵循DBA的MySQ...

2020-05-08 11:31:11 230

原创 JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解

现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 ...... 这些问题在日常开发中可能被很多人忽视(比如有的人遇到上面的问题只是重启服务器或者调大内存,而不会深究问题根源),但能够理解并解...

2020-04-28 14:45:24 189

原创 @Transactional和Propagation的使用

@Transactional事务几点注意这里面有几点需要大家留意:A. 一个功能是否要事务,必须纳入设计、编码考虑。不能仅仅完成了基本功能就ok。B. 如果加了事务,必须做好开发环境测试(测试环境也尽量触发异常、测试回滚),确保事务生效。C. 以下列了事务使用过程的注意事项,请大家留意不要在接口上声明@Transactional ,而要在具体类的方法上使用 @Transactiona...

2020-03-27 14:44:58 3268 1

原创 MQ使用问题

一、如何保证消息的幂等性?业务系统在收、发MQ消息时都启用了确认机制,所以返回发送成功的消息至少会被消费一次(at-least-once), 需要消费端业务逻辑满足幂等性。幂等性是指,同一个消息被消费多次产生的结果与只消费一次的结果是相同的。x为某集合内的任意数, 如果满足f(x)=f(f(x)), 那么我们称f运算为具有幂等性。举个例子,下面的 Example 类的 close() 方法...

2019-12-23 17:19:31 560

原创 线程池相关

https://www.jianshu.com/p/210eab345423对线程池的理解,项目中哪个地方使用了,如何使用的,用的Excutor框架中的哪个实现类,为什么用这个?一、为什么要用线程池?1、创建和销毁线程伴随系统的开销,过于频繁的创建/销毁线程,会很大程度上影响处理效率线程池缓存线程,可用已有的闲置线程来执行新任务2、线程并发数量过多,抢占系统资源从而导致阻塞...

2019-12-17 16:07:23 148

转载 一次分表踩坑实践的探讨

前言之前不少人问我“能否分享一些分库分表相关的实践”,其实不是我不分享,而是真的经验不多????;和大部分人一样都是停留在理论阶段。不过这次多少有些可以说道了。先谈谈背景,我们生产数据库随着业务发展量也逐渐起来;好几张单表已经突破亿级数据,并且保持每天 200+W 的数据量增加。而我们有些业务需要进行关联查询、或者是报表统计;在这样的背景下大表的问题更加突出(比如一个查询功能需要跑好几分...

2019-12-03 11:04:49 157

转载 Tomcat 源码分析(转)

Tomcat源码分析(一)--服务启动1.Tomcat主要有两个组件,连接器和容器,所谓连接器就是一个http请求过来了,连接器负责接收这个请求,然后转发给容器。容器即servlet容器,容器有很多层,分别是Engine, Host,Context,Wrapper。最大的容器Engine,代表一个servlet引擎,接下来是Host,代表一个虚拟机,然后是Context,代表一个应...

2019-11-27 15:23:40 779

转载 平时碰到系统CPU飙高和频繁GC,你会怎么排查?

处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题。当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警。本文主要针对系统运行缓慢这一问题,提供该问题的排查思路,从而定位出问题的代码点,进而提供解决该问题的思路。对于线上系统突然产生的运行缓慢问题,如果该问题导致线上系统不可用,那么首先需要做的就是,导出jstack和内存信息,...

2019-11-21 11:52:48 210

转载 聊聊分布式事务,再说说解决方案

前言最近很久没有写博客了,一方面是因为公司事情最近比较忙,另外一方面是因为在进行CAP的下一阶段的开发工作,不过目前已经告一段落了。接下来还是开始我们今天的话题,说说分布式事务,或者说是我眼中的分布式事务,因为每个人可能对其的理解都不一样。分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在微服务架构中,几乎可以说是无法避免,本文就分布式事...

2019-11-20 16:08:33 133

原创 RabbitMQ问题整理

1.消息顺序消费问题将一个queue拆分成多个queue,一个queue对应一个消费者 这样进到queue中的数据是有序的,消费者消费的时候,也是按照顺序来消费2、消息丢失问题丢失消息的三种情况:生产者弄丢了数据、RabbitMQ 弄丢了数据、消费端弄丢了数据。一、生产者弄丢了数据生产者将数据发送到 RabbitMQ 的时候,可能数据就在半路给搞丢了,因为网络问题啥的,都有可能...

2019-11-20 11:30:30 352

原创 分库分表

2019-11-06 14:30:52 116

原创 关于 HTTP 中 状态码解读

HTTP协议简介HTTP(超文本传输协议)是应用层上的一种客户端/服务端模型的通信协议,它由请求和响应构成,且是无状态的。(暂不介绍HTTP2)协议协议规定了通信双方必须遵循的数据传输格式,这样通信双方按照约定的格式才能准确的通信。无状态无状态是指两次连接通信之间是没有任何关系的,每次都是一个新的连接,服务端不会记录前后的请求信息。...

2019-11-06 11:27:30 179

原创 面试问题整理

重写equals方法的同时,重写hashCode的原因1.Object 类是所有类的父类,其 equals 方法比较的是两个对象的引用指向的地址,hashcode 是一个本地方法,返回的是对象地址值。他们都是通过比较地址来比较对象是否相等的。2.如果不重写equals,那么比较的将是对象的引用是否指向同一块内存地址,重写之后目的是为了比较两个对象的value值是否相等。3.重写了 eq...

2019-11-05 17:49:33 289

转载 分布式核心要点摘要学习

现在的业务发展进度,单体应用基本要进博物馆了!分布式系统,从设计、到开发、到运维,都让人头大!微服务的理念也越来越普及,对于没有自我研发底层基础设施的中小型企业来说,当前Spring Cloud是个很好的选择。这里就不细究分布式、SOA、微服务这些概念了。先从提到分布式时经常碰到的一些概念说起,进行一个粗略的整理。个人习惯,XMind搞起!1. 分布式相关概念2. 分布式数据...

2019-10-30 16:30:54 283

原创 需要完成任务

域名接入网站页面开发小程序页面开发微信支付接入完整调试

2019-08-15 16:40:27 184

转载 如何居中一个元素

前言本文主要介绍水平居中,垂直居中,还有水平垂直居中各种办法,思维导图如下:想阅读更多优质文章请猛戳GitHub博客,一年五十篇优质文章等着你!一、水平居中1.行内元素水平居中利用 text-align: center 可以实现在块级元素内部的行内元素水平居中。此方法对inline、inline-block、inline-table和inline-flex元素水平居中都有效。...

2019-08-15 10:37:00 104

原创 linux命令整理

查看日志文件某几行【一】从第3000行开始,显示1000行。即显示3000~3999行cat filename | tail -n +3000 |head -n 1000【二】显示1000行到3000行cat filename | head -n 3000| tail -n +1000tail -n 1000 显示最后1000行tail -n +1000 从第1000行开始...

2019-07-18 14:22:01 156

转载 小程序框架图

2019-07-04 14:30:23 4403 1

原创 zookeeper知识图谱

2019-07-03 14:38:37 314 1

转载 Elasticsearch-基础介绍及索引原理分析

Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎.当然 Elasticsearch 并不仅仅是 Lucene 那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。 实时分析的分布式搜索引擎。 可以扩展到上百台服务器,处理PB级别的...

2019-06-12 14:26:00 401

转载 canal概述

概述canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。起源:早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获...

2019-05-17 14:33:59 2242

转载 vue-router 基本使用

 路由,其实就是指向的意思,当我点击页面上的home按钮时,页面中就要显示home的内容,如果点击页面上的about 按钮,页面中就要显示about 的内容。Home按钮 => home 内容, about按钮 => about 内容,也可以说是一种映射. 所以在页面上有两个部分,一个是点击部分,一个是点击之后,显示内容的部分。  点击之后,怎么做到正确的对应,比如,我点击ho...

2019-04-28 17:33:59 371

原创 vuex学习

核心概念1State定义变量和属性const state = { count: 0}获取$store.state.countmapState辅助函数import { mapState } from 'vuex'export default { // ... computed: mapState({ // 箭头函数可使代码更简练...

2019-04-24 16:08:11 175

转载 浅析DNS域名解析过程

对于每一个HTTP请求发起过程中,都有很重要的一个步骤——DNS解析,本篇文章将跟着DNS解析过程来分析域名是如何解析的。一、DNS域名解析步骤下图是DNS域名解析的一个示例图,它涵盖了基本解析步骤和原理。下面DNS解析步骤进行讲解,后面将采用命令行的形式来跟踪DNS解析过程。当用户在地址栏键入www.baidu.com并敲下回车键之后,域名解析就开始了。第一步:检查浏览...

2019-04-16 11:45:17 1660

原创 maven打包之resource配置

一、简介构建Maven项目的时候,如果没有进行特殊的配置,Maven会按照标准的目录结构查找和处理各种类型文件。src/main/java和src/test/java这两个目录中的所有*.java文件会分别在comile和test-comiple阶段被编译,编译结果分别放到了target/classes和targe/test-classes目录中,但是这两个目录中的其他文件都会被忽略掉。...

2019-03-26 16:13:26 1698

原创 mysql更新表中日期字段时间

DATE_ADD和DATE_SUB函数可以用INTERVAL关键字标识的时间间隔进行加减操作,类似于PHP中的strtotime函数1.更新表中有效期valid_time字段值都增加一天UPDATE cqh_activity SET valid_time=DATE_ADD(valid_time,INTERVAL 1 DAY);2.更新表中有效期valid_time字段值都减少一天...

2019-03-22 10:57:13 10434

转载 (转)数据可视化之美:经典案例与实践解析

随着 DT 时代的到来,传统的统计图表很难对复杂数据进行直观地展示。这几年数据可视化作为一个新研究领域也变得越来越火。成功的可视化,如果做得漂亮,虽表面简单却富含深意,可以让观测者一眼就能洞察事实并产生新的理解。可视化(visualization)和可视效果(visual)两个词是等价的,表示所有结构化的信息表现方式,包括图形、图表、示意图、地图、故事情节图以及不是很正式的结构化插图。基本的可...

2019-03-21 16:00:27 1685

原创 Spring Boot : Whitelabel Error Page解决方案

本人在用新学习的是Spring Boot来搭建一个产品官网,遇到的问题整理当搭建好web项目,启动完项目,访问的时候报白页的错误那是因为程序只加载Application.java所在包及其子包下的内容解决方案:一、在Application类中加上@ComponentScan(basePackages = {"com.demo.controller"}) 多个之间用","分隔...

2019-03-15 14:46:24 4111

原创 MQ业务消息执行顺序问题

问题背景: 单机架构下MQ队列本身具有先进先出的有序特性,但在分布式架构下,消费的顺序受服务实例和网络的影响而无法继续保持有序特性。 由于业务消息的执行具有先后关系,无序的执行会导致业务处理异常。 以上BUG消费端采用业务逻辑兼容的方案(比如:先收到取消指令,会自动创建订单),会增加程序处理复杂度,方案上需要优化方案一:消费端增加消息记录表,暂存不满足业务条件的消息,并采用定时器进行补偿处...

2019-02-19 15:51:49 3526

原创 MySQL的启动方式

mysql的启动方式有4种: mysqld 、mysql_safe 、mysql_multi、service mysql start1. mysqld:是mysql的核心程序,用于管理mysql的数据库文件以及用户的请求操作。mysqld可以读取配置文件中的[mysqld]的部分[mysqld]user = mysqlbasedir = /usr/local/mysqldatadi...

2019-01-25 14:08:08 1769

原创 Idea常用快捷键

搜索类文件ctrl+shift+alt+N查找类中的方法和属性ctrl+F12快速查找类或方法在整个项目中的位置:按住Ctrl键再点击类或方法会出现所有用到过的文件对象 Ctrl+N  查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L  格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等)Ctr...

2019-01-23 14:53:04 138

原创 sharding-jdbc分库分表

当当开源的sharding-jdbc,官方网址:https://github.com/dangdangdotcom/sharding-jdbc好了,看了这么多的介绍,感觉还是很高大上的,注意点有:①对JDBC API进行了原生态的分装,这是与cobar-client不一样的地方,这就是他可以支持多个第三方ORM框架的关键②可支持=,BETWEEN,IN等操作,说明,JDBC返回结果...

2018-12-12 16:59:21 320

原创 angularJs自定义指令事件

在项目中需要用到在指令中自定义事件,主要用到了以下方式:(function () { app.directive('echarts', ['$http', 'httpService', function ($http, httpService) { function link($scope, element, attrs) { var myCh...

2018-12-05 14:33:34 2378

原创 IntelliJ IDEA常用快捷键汇总

在使用IntelliJ Idea的时候,使用快捷键是必不可少的。掌握一些常用的快捷键能大大提高我们的开发效率。有些快捷键可以熟练的使用,但是还有另外一些快捷键虽然很好用,但是由于因为没有形成使用习惯或者没有理解快捷键的用法,甚至之前对一些快捷键根本没有概念,导致不会去使用。对于这些快捷键,如果能够用好,编辑代码的效率必能提高一个水平。所以在此梳理出来,加强自己的使用,形成习惯。(注:有些操作的...

2018-11-23 17:07:01 158

原创 mysql如何避免死锁

其实死锁是数据库对事务的保护机制。一旦发生死锁,mysql会选择相对小的事务(undo较少的)进行回滚。0. 最重要还是注意程序的逻辑根本的原因是程序逻辑的顺序,最常见的是交差更新Transaction 1: 更新表A -> 更新表BTransaction 2: 更新表B -> 更新表A这类问题要从程序上避免,所有的更新需要按照一定的顺序1. 保持事务的轻量...

2018-11-23 16:44:25 5103

jira项目管理系统使用指南.pdf

jira项目管理系统使用指南

2021-03-18

redis 开发和使用规范 (最详细)

最全redis开发和使用规范,以及各种使用场景介绍,redis各种数据类型分析等等

2018-09-14

joda-time-2.9.9

joda-time-2.9.9时间日期转换工具类,简单易用,功能强大!

2018-01-25

class反编译工具

class反编译工具,可以将class文件编译成java代码,检测代码完整性

2017-12-19

阿里开发规范插件

阿里开发规范插件,可以嵌入到eclipse中,检测代码规范性

2017-12-19

spring揭秘-最经典的Spring学习教程

spring揭秘-最经典的Spring学习教程,值得一看!

2017-07-21

精通Linux_第2版_ Brian Ward_2015.pdf

经典的linux学习教程!

2017-07-21

反编译工具jd-gui

反编译工具jd-gui!

2017-06-14

shiro教程实战与开发

最全shiro教程实战与开发

2017-06-14

超好用notepad中json格式化插件

超好用notepad中json格式化插件!

2017-05-05

(MySQL中文参考手册

mysql中文最详细介绍,值得收藏!

2017-01-11

Adroid官方API文档完整版

最详细最全面的Android开发api文档介绍

2017-01-11

空空如也

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

TA关注的人

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