自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Vioao's Blog

[Vioao's Blog] A little more.

  • 博客(45)
  • 资源 (6)
  • 论坛 (1)
  • 收藏
  • 关注

原创 延时任务一锅端

场景延时任务的需求是非常常见的,在我们的开发生涯中,我相信大部分研发人员是会有接触到这一块的。其中,我们在现实生活中比较常接触到的场景有下单后未付款通知订单延迟生成短信通知红包未领取退款通知用户行程将近通知微信公众号的文章延时发布推送等常规模块存储主要负责存储任务的相关信息,比如任务执行所需要的相关信息,执行时间,重试次数等调度负责时间的调度,判断任务是否到达可执行执行负责任务的实际执行在非分布式的情况下,通常这三者是出现在同一个应用内部的;但如果是在分布式系

2020-10-19 17:28:52 133

翻译 ‘[译]深入理解 Node.js Worker Threads

最近工作中又有可能需要写 Node.js 应用了,距离上次写 Node.js 应用也有好些年了,所以就开始重新熟悉下 Node.js 了。刚好最近又在学 Go,其最大的特点就是简单、轻量级的并发模型。非常容易用它编写一个能够充分利用硬件资源的高性能应用。于是不免想起以前学习 Node.js 时会遇到的问题:如何让 Node.js 充分利用多核 CPU 的资源。于是,让我发现了,Node.js 从 v10.5.0 开始引入worker_threads 模块来解决该问题。并让我发现了这篇文章。此文为译

2020-07-22 18:13:24 82

原创 压测对比: Spring WebFlux VS. Spring MVC

前言最近工作有个小项目,其场景主要是封装内部的接口请求,然后做个转换之后,就请求外部请求,之后再将外部响应转换成内部的统一格式,其实有点类似一个简单网关的应用,虽然也有一些业务逻辑在里面,但是主要场景还是请求的转发处理,是一个 IO 密集型的应用,而且外部请求的延迟相对比较大而且不可控。我想,这不正合适 Spring 5 出来的那个新特性的一个应用场景么。于是决定探究下 Spring Web on Reactive Stack: Spring WebFlux.Spring WebFluxSpring

2020-07-13 14:47:15 159

原创 Apache Kafka 概览

简介Apache Kakfa 是一个分布式流处理平台,既可以当做普通的消息中间件用于消息发布订阅,也可以存储并处理流式数据,其分布式设计使得其有较好的容错性,水平拓展性等。通常可以用于当做消息订阅发布用于业务系统中,或者用于大数据方向,接受存储大量的流式数据并和对应的大数据处理框架结合使用,eg. Kafka + Samza从物理部署层面来讲,其主要有如下几个模块:ZooKeeper充...

2019-12-18 17:01:32 256

原创 阿里云ECS搭建JAVA WEB环境

购买配置阿里云服务器ECS阿里云服务器ECS 云服务器(Elastic Compute Service,简称 ECS)是一种简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本,使您更专注于核心业务创新。选购服务器从产品主页直接进入到选购页面就可以了。选择自己需要的服务器就好。主要有如下可选项: - 计费方式 - 地域

2019-11-19 10:02:43 1628

原创 Apache RocketMQ 概览

简介Apache RocketMQ 是阿里开源的一款高性能、高吞吐量的分布式消息中间件。相比于 Kafka,其拥有更好的实时性和消息可靠性。更适用于和 Money 相关的系统。它支持如下特性:订阅/发布模式的消息支持消费组模式的消费,即一个消费组集群内只有一个实例会收到那一条消息。延时消息只支持特定 Level 的延时设置,默认有 “1s 5s 10s 30s 1m 2m 3m...

2019-11-18 11:22:15 129

原创 SpringBoot 整合 Mybatis/Druid/Quartz

SpringBoot 整合Mybatis/Druid/Quartz由于项目中定时任务逐渐增多,对系统的压力也慢慢增加。故打算将系统中的定时任务抽离出来。初步决定使用SpringBoot+mybatis+quartz的整合方式进行快速开发。 整个整合会包含如下任务: 1. 整合Mybatis(包括通用Mapper和分页插件) 2. 整合Quartz实现动态定时任务管理(实现可在Quartz...

2019-09-27 10:25:49 2754 4

原创 记一次 Gradle Build 问题分析

问题出现一次项目更新后,发现项目无法正常 build 了,出现如下报错:error: cannot access DoNotMock class file for com.google.errorprone.annotations.DoNotMock not found问题排查处理步骤如下:Review 代码更新,寻找可疑点这一步 review 没有发现什么特殊的改动,只是更...

2019-08-22 10:25:26 873

原创 OTA 项目相关

OTAOnline Travel Agency:在线旅游(OTA,全称为Online Travel Agency),是旅游电子商务行业的专业词语。指“旅游消费者通过网络向旅游服务提供商预定旅游产品或服务,并通过网上支付或者线下付费,即各旅游主体可以通过网络进行产品营销或产品销售”。LCCLow-cost carrier:低成本航空公司PNRPassenger Name Rec...

2019-08-21 17:25:36 293

原创 项目复盘思考

对自己所参与过的事物做个复盘是个好习惯,能让自己对事物有个更深的了解。比如说,读了一本书,那么这个时候你需要回去思考:这本书讲了些啥,对你有何影响;又或者,你参与了一个活动,你完了后,你也可以对其进行复盘,思考下这个活动的意义,这个活动是让你增加见识了还是让你放松心情了等;再或者,你参与了一个项目,这个时候还是可以复盘,考虑项目的进展中的难点等。其实复盘,就是对自己经历过的事物进行思考总结。是一个...

2019-07-03 14:16:12 766 1

原创 Flink 入门教程

实时流处理的应用场景现在的社会已然进入了大数据AI时代,各行各业都有大量的数据需要处理,并希望从数据中挖掘价值。下面简单举几个例子:物联网中各种行为结果数据的实时收集分析金融行业中各种交易行为数据结果的实时收集分析电商行业中用户的浏览点击等行为数据结果的实时收集分析…实时流处理的目标低延迟高吞吐正确性可容错(即可以中断,并可以恢复且保证exactly once)顺序性(...

2019-05-21 15:50:40 9370

转载 阿里监控诊断工具 Arthas 源码原理分析

阿里开源了 监控与诊断 工具 「 Arthas 」,一款可用于线上问题分析的利器,短期之内收获了大量关注,在 Twitter 上连 Java 官方的 Twitter 也转发了,真的很赞。GitHub 上是这样自述的:Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、...

2019-02-20 09:11:23 5222 1

原创 多线程和锁连杀

多线程常见问题:线程模型,实现同步的方式及其区别,线程池的原理锁优化有哪些、手写生产者消费者模型等

2019-02-13 16:40:42 135

原创 JVM连杀

面试过程中最常问的一些关于JVM的问题。eg. 内存区域有哪些及其作用;垃圾回收算法有哪些;类加载模式等

2019-01-22 11:23:45 179

原创 数据库(Mysql)连杀

面试过程中,对于mysql常见的一些问题解答。eg. mysql的事务级别;mysql的事务实现原理;mysql的索引结构;mysql索引失效情况;如何进行mysql优化等

2019-01-20 21:33:39 233

原创 分布式搜索引擎(ES)连杀

面试过程中,对于es常见的一些问题解答。eg. es的分布式架构原理能说一下么(es是如何实现分布式的啊)?es写入数据的工作原理是什么啊?es查询数据的工作原理是什么啊?es在数据量很大的情况下(数十亿级别)如何提高查询性能啊?es生产集群的部署架构是什么?每个索引的数据量大概有多少?每个索引大概有多少个分片?...

2019-01-20 21:32:44 302 1

原创 消息队列( RocketMQ )连杀

消息队列面试常见问题.以RockMq为例子。为什么要使用RockMq,RockMq如何实现高可用,RockMq消息丢失,顺序消息如何实现,RockMq设计设计原理等。

2019-01-15 20:14:08 819

原创 设计模式连杀

面试过程中可能会问及一些设计模式相关的问题,这一类主要是看你写代码时的思考,是否能写出更好的代码、最好根据结合实际业务情况说一两个例子。说说使用了xxx设计模式之后能解决xxx问题。下面总结一些基础问题及其相应的可能的回答。只是一个例子,设计模式这一块需要有自己的思考。但是需要有一些标准指导,比如六大原则两大标准之类的。

2019-01-15 16:49:41 100

原创 分布式缓存(Redis)连杀

Redis面试常见问题.为什么要使用Redis,Redis的持久化方式,Redis如何实现高可用,缓存和数据库数据不一致问题等.

2019-01-14 15:15:16 327 2

原创 中国灾害预警爬取解析

有获取灾害信息提醒的需求,但是发现并没有开发的API 。已有的API都需要付钱。 天气预报API,可以看知乎的这边文章。网上的天气 API 哪一个更加可靠? 里面的普通的天气预报部分免费,但是灾害预警的API都是需要收费的。于是自己去摸索了。最后通过发F12发现了中国天气网中可用的请求: http://www.weather.com.cn/data/alarm_xml/alarminfo....

2018-07-21 12:41:50 1597 2

原创 定位CPU异常抖动---tomcat热部署的坑

问题及其罪魁祸首WEB服务器: apache-tomcat-8.0.33 JDK: jdk1.8.0_66 操作系统: Linux SHB-L0064049 2.6.32-642.6.2.el6.x86_6 运维反馈CPU抖动异常,如下。 CPU时不时的会从0%抖动到50%,定位到时tomcat的热部署导致的问题。最终通过显式的加上reloadable=“false” 的配置解决...

2018-04-27 10:41:00 1411 8

原创 java web线上请求问题排查

问题描述简要说明下,系统是一个微信第第三方平台,用于托管微信公众号和小程序的。 在一个普普通通的晚上,19点开始有公众号管理员向我们反馈,托管在我们平台的公众号一直提示 “该公众号提供的服务出现异常,请稍后再试“。问题排查验证问题自己去对应的公众号验证,发送消息,确确实实提示”该公众号提供的服务出现异常,请稍后再试“,影响到了公众号的正常服务。并且每次都是这个返回,说明...

2018-04-18 21:53:26 1080

原创 项目重构感悟

重构决定需要提前做好新旧系统的切换方案的规划要高度重视对数据的重构,对数据的调整和兼容是重中之重重构是为了解决实际的项目问题,而不只是作为程序员的一个代码洁癖。所以,需要对新系统有可以量化的指标(eg. 性能提升5个点、开发工作量减少30% 等)技术选型时,不要盲目最求新技术,需要尽量使用成熟、简单的方案,选择成熟简单的方案在遇到问题时多能在网上找到对应的解决方案。文档相对也会更完善。...

2018-03-16 20:37:33 340

原创 分布式系统一致性问题处理思路

为啥出现一致性问题在传统单体架构中,数据状态的处理都在同一个服务和数据库中,而具有ACID特性的数据库支持强一致性,就是说数据库本身是不会出现不一致的状态的,比如我们常用的关系型数据库MySQL就是通过多版本控制协议(MVCC)的实现来保证了强一致性。 但是随着互联网的发展,用户增多&服务也越来越多越来越复杂,数据量和请求的并发量都上来了。为了满足这一变化,越来越多的系统从单体架构投...

2018-03-12 21:00:23 1571

转载 研发团队效率提升新姿势-Scrum,你get了吗?

目前的互联网公司,敏捷(Agile)的概念已经有相当的普及,人人都在谈,似乎不谈敏捷就不那么互联网了。几乎所有的互联网公司都不同程度的实施了敏捷。采用敏捷开发的方法也有很多,主要包括极限编程(XP)、Scrum、水晶方法(Crystal Methods)、自适应软件开发(ASD)、特性驱动开发(FDD)、动态系统开发(DSDM)、轻量级RUP、测试驱动开发(TDD)等等。而在众多的敏捷开发方法中,...

2018-03-05 15:01:12 738

原创 Jasperreports OOM问题处理

问题描述项目使用Jasperreports来转换导出PDF,不过在转换过程中有时会出现OOM的异常。将直接导致线上系统不可使用。主要导致OOM的问题有如下两种:jasper模板文件设计不合理导致Jasperreports进入死循环需要转换的文件确实很大,超过了系统所支持的内存范围此前就有遇到过上述情况导致系统不可用的情况,这明显影响了程序的健壮性。是需要处理的。此前对该的处理排查

2018-01-29 17:13:56 887

原创 微信公众平台SDK JAVA实现WeChat-SDK

前言最近有做一些涉及到微信公众平台和第三方平台开发的工作。需要使用微信提供的接口。然而微信只提供了基于基本的HTTP接口,并没有对应各语言的SDK实现。所以如果自己开发的话需要封装一套SDK。不过,微信公众平台出来几年了,市面上早就有不少JAVA实现的微信SDK了。于是便收集了一些开源的JAVA实现的微信SDK,但是最后都不是特别合适。最终决定自己写一个。下面给出各开源SDK的实现对比和自己的...

2018-01-21 10:07:05 10945 1

原创 使用Checkstyle统一编码

目前手上接管了一个旧项目,在调整的过程中发现其编码规范非常的多样化。其实就是没有规范了。代码中的命名、注释、换行等风格都有多种,差不多每个曾经修改过代码的程序员都留来过自己的风格。代码风格质量良莠不齐,这导致新员工在阅读代码时需要花更多的时间,也更加痛苦。所以考虑使用checkstyle来校验统一代码风格。

2017-11-27 18:01:02 1169 2

原创 mysql 5.7 group by 1055

最近遇到的一个问题,有个项目使用的mysql升级到5.7后,发现项目中有些sql语句执行会报错。报错类似如下:[SQL]select accountname,accounttype from weixin_account group by accountname;[Err] 1055 - 'wcmgt.weixin_account.accounttype' isn't in GROUP BY于是便

2017-10-19 16:04:08 1782

原创 线上java程序CPU占用过高问题排查

工作中负责的有一个项目是使用iReport+JasperReport实现的一个打印系统。最近这个线上程序经常无响应,重启后恢复正常,但是时不时还是会出现类似的问题。 最后发现是JasperReport的一个问题。有个JasperReport的转换任务内存占用特别高,当新对象需要分配内存时就会内存不够了,于是GC线程就不断GC,占用CPU。 导致系统CPU占用超高。

2017-09-18 16:01:55 31261 7

原创 docker初识:运行mysql实例

环境CentOS 7.3 64bit安装docker移除旧版本Docker yum remove docker docker-common docker-selinux docker-engine设置Docker仓库2.1 安装所需要的包 yum install -y yum-utils device-mapper-persistent-data lvm2

2017-08-26 21:05:29 919

原创 CentOS 7.3 搭建OpenCart

环境Centos 7.3 64-bitOpenCart 2.3.0.21. 安装LAMP环境和OpenCart 1.1 How To Install OpenCart On CentOS 7 Linux 1.2 配置支持SEO ,在OpenCart项目部署根目录下创建.htaccess文件,内容如下(需要在OpenCart后台打开SEO支持)

2017-07-19 20:34:24 2130

原创 JAVA开源B2C系统

前言最近有人想面向境外销售商品,但是又不想依托于亚马逊这些平台,于是找我来帮忙想弄个B2C系统。因为刚开始只是打算试试水,也就不打算投入多少成本了。所以这边就考虑使用开源的B2C系统来直接使用了。B2C开源系统选择由于自己的主语言是JAVA,平时工作也都是用的JAVA。考虑到以后需要对系统进行二开、部署维护等。所以一开始就直接查找JAVA 的开源系统了,并且将是JAVA语言开发的作为了第一个必要选项

2017-07-04 23:16:34 3569

翻译 Feign基础教程

Feign使得 Java HTTP 客户端编写更方便。Feign 灵感来源于Retrofit、JAXRS-2.0和 WebSocket。Feign 最初是为了降低统一绑定Denominator 到 HTTP API 的复杂度,不区分是否支持 Restful。可以通过自定义的编码解码器以及错误处理,你可以编写任何基于文本的 HTTP API。让人如同调用本地服务一样调用远程接口

2017-06-23 16:31:45 43288 3

原创 HashMap源码解析

前言其实之前也有看过HashMap的源码,觉得自己对其中的实现原理什么的都还算是比较了解了。其实当初看的时候就没有看的多仔细,只是应付面试的问题罢了。 这不,最近有人提出个问题自救就没法回答了。问: 我们知道,初始化 HashMap 的时候,可以使用默认的构造函数,也可以使用一个带 initialCapacity 参数的构造函数用于构造一个已知大小的实例。那么已知map大小,求initialCapacity 。

2017-06-10 11:43:32 244

原创 JAVA并发编程: CAS和AQS

说起JAVA并发编程,就不得不聊聊CAS(Compare And Swap)和AQS了(AbstractQueuedSynchronizer)。CAS(Compare And Swap)什么是CAS CAS(Compare And Swap),即比较并交换。是解决多线程并行情况下使用锁造成性能损耗的一种机制,CAS操作包含三个操作数——内存位置(V)、预期原值(A)和新

2017-06-06 23:55:04 34344 8

原创 JAVA并发编程:Synchronized和Lock

前言Java多线程编程中,保证线程安全通常会使用到synchronized和Lock。那么合适该使用synchronized,什么时候该使用Lock呢。这个就需要我们对synchronized和Lock有个清晰的了解。..

2017-05-30 22:47:50 368

原创 利用Github Pages和Hexo搭建个人博客

Github Pages和Hexo介绍Github Pages 是 Github 推出的一个福利。可以在上面构建个人页面。Hexo 就是一个快速、简洁且高效的博客框架(官网上是这么说的,hhh),并且支持一键部署到github。可以用它来构建自己的个人博客,当hexo遇到Github pages时,我们就不需要自己的一个服务器就可以搭建一个个人博客网站了。下面开始讲搭建过程。创建自己的Github

2017-05-29 11:51:35 748

原创 项目架构图

前段时间一直在找工作,面试过程终于到了不少问题。有些是自己会的,有些是自己看过却无法整理出来的(说到底是理解不够头测,记忆不够深刻)。当然还有些是完全懵逼的。下面就来说下经常被问及,自己却无法当场整理出来的一个问题。那就是让你画出自己做过的项目的一个整体架构图。

2017-05-28 22:25:57 13038

原创 面试复习整理

JAVA一. Java 集合资料: 1. [Java 集合学习指南]( http://wiki.jikexueyuan.com/project/java-collection/) 2. Java NIO 系列教程常见问题: 1. ConcurrentHashMap的实现实现原理,是如何实现高并发和同步的探索 ConcurrentHashMap高并发性的实现机制 2. 集合类中线程安全的集合

2017-05-28 22:24:06 658

Flask文档.pdf

Flask文档: Flask Documentation Release 0.11

2019-06-12

[Naftalin_Wadler_2006]_Java_Generics_and_Collections.pdf

英文资源,_Java_Generics_and_Collections

2019-06-12

阿里巴巴Java开发手册终极版v1.3.0

阿里巴巴Java开发手册终极版v1.3.0.pdf 阿里巴巴Java开发手册终极版v1.3.0.pdf

2017-12-06

Hadoop权威指南(第四版)高清英文版

Hadoop权威指南(第3版) 修订版(带目录书签) Hadoop权威指南(第3版) 修订版(带目录书签)

2017-12-06

opencart-2.3.0.2.zip

opencart2.3.0.2源码

2017-07-12

vqmod-2.6.2-opencart.zip

支持opencart 2.3.0.2 的vqmod安装包

2017-07-12

怎么实现Spring重新加载配置文件。

发表于 2013-12-26 最后回复 2017-05-28

空空如也

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

TA关注的人 TA的粉丝

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