自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Heqianqian的博客

盛年不再有,一日难再晨,及时当勉励,岁月不待人.

  • 博客(386)
  • 资源 (2)
  • 论坛 (1)
  • 问答 (1)

转载 TCC分布式事务原理

业务场景介绍咱们先来看看业务场景,假设你现在有一个电商系统,里面有一个支付订单的场景。那对一个订单支付之后,我们需要做下面的步骤:更改订单的状态为“已支付”扣减商品库存给会员增加积分创建销售出库单通知仓库发货这是一系列比较真实的步骤,无论大家有没有做过电商系统,应该都能理解。进一步思考好,业务场景有了,现在我们要更进一步,实现一个 TCC 分布式事务的效果。什么意思呢?也就是...

2019-05-14 17:43:13 286

原创 NoClassDefFoundError: javax/servlet/http/HttpServletResponse异常解决方法

场景描述:maven+springboot项目,启动的时候出现异常,具体信息如下:Caused by: java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest at java.lang.Class.getDeclaredMethods0(Native Method) ~[na:1.8.0_181] at j...

2019-04-25 14:40:19 1200

转载 基于Docker的Mysql主从复制搭建

基于Docker的Mysql主从复制搭建 为什么基于Docker搭建?资源有限虚拟机搭建对机器配置有要求,并且安装mysql步骤繁琐一台机器上可以运行多个Docker容器Docker容器之间相互独立,有独立ip,互不冲突Docker使用步骤简便,启动容器在秒级别利用Docker搭建主从服务器首先拉取docker镜像,我们这里使用5.7版...

2019-04-22 20:47:48 139

原创 Maven profile环境切换

介绍profile可以配置一系列信息,使用mvn clean compile -Pxx激活特定的profile和其下配置信息,示例: <profiles> <profile> <id>dev</id> <properties> &lt...

2019-04-18 14:09:28 134

转载 Maven 生命周期和构建原理

       maven是一个非常经典的和通用的项目管理工具,虽然现在热炒gradle将作为下一代 项目管理工具来取代maven,但是 由于maven强大和健全的功能,maven还有很强的生命力。      本文将介绍maven对于项目生命周期的设计以及原理。读完本文,你将了解到:一...

2019-04-11 10:11:37 250

原创 ForkJoinPool invoke、execute和submit区别

使用ForkJoinPool的时候发现执行任务的方法有:invoke(ForkJoinTask task)execute(ForkJoinTask<?> task)submit(ForkJoinTask task)三种方式,现在总结下区别。首先比较execute和submit的区别,观察源码发现: /** * Arranges for (asynchro...

2019-04-09 22:19:30 3141

原创 SpringMVC AOP无效不起作用解决方法

【场景描述】为接口添加监控,配置<aop:aspectj-autoproxy expose-proxy="true">后代理不生效【原因分析】其中加载spring主配置文件的是applicationContext,加载springmvc的是webApplicationContext。如果我们要切入Controller,需要在webmvc的配置文件里添加<aop:aspe...

2019-03-27 15:21:58 886

原创 Tomcat 出现Control character in cookie value or attribute异常解决方法

【错误描述】java.lang.IllegalArgumentException: Control character in cookie value or attribute.at org.apache.tomcat.util.http.LegacyCookieProcessor.isV0Separator(LegacyCookieProcessor.java:748)at org.apa...

2019-03-27 15:14:50 1655

转载 HDFS 运行原理

简介HDFS(Hadoop Distributed File System )Hadoop分布式文件系统。是根据google发表的论文翻版的。论文为GFS(Google File System)Google 文件系统(中文,英文)。HDFS有很多特点:① 保存多个副本,且提供容错机制,副本丢失或宕机自动恢复。默认存3份。② 运行在廉价的机器上。③ 适合大数据的处理。多大?多小?HDF...

2019-02-25 16:43:53 121

原创 Tomcat One or more listeners failed to start问题解决

问题描述:十一月 01, 2018 10:27:28 下午 org.apache.catalina.core.StandardContext startInternal严重: One or more listeners failed to start. Full details will be found in the appropriate container log file十一月 01...

2018-11-02 13:15:17 1105

原创 Git 使用LFS上传大文件到GitLab

安装LFS1)官网下载安装包wget https://github.com/git-lfs/git-lfs/releases/download/v2.2.1/git-lfs-darwin-amd64-2.2.1.tar.gztar -zxvf git-lfs-darwin-amd64-2.2.1.tar.gzcd git-lfs-2.2.1./install.sh 2)brew ...

2018-09-28 09:35:48 1928

原创 Quartz Job类无法注入spring bean问题解决方法

问题描述: 在Quartz的任务类中,无法使用autowired注入spring bean@Component @PersistJobDataAfterExecution @DisallowConcurrentExecution public class XXJob implements Job{ @Autowired private XxxServ...

2018-09-06 19:49:04 911

原创 Metrics 监控工具使用

Metrics是一个Java工具包,里面有各种监控的工具,可以用来监控生产环境中代码的运行状态。通过集成Jetty、Logback、Log4j、Apache HttpClient、Ehcach、JDBI和Jersey等通用库,以及报表平台Ganglia和Graphite提供的监控工具:Gauges:用于某一个值的测量。Counters:计数器是一个AtomicLong的实例,可以增加或...

2018-09-05 19:40:09 2569

原创 Hadoop 四种环境部署 (二)

四种部署模式本地模式,伪分布式模式,完全分布式模式,HA完全分布式模式区分的依据是NameNode、DataNode、ResourceManager、NodeManager等模块运行在几个JVM进程、几个机器。 模式名称 各个模块占用的JVM进程数 各个模块运行在几个机器数上 本地模式 1 1 伪分布式 N 1 分布式 N...

2018-08-13 21:08:43 176

原创 Hadoop 基本了解 (一)

一.构成Hadoop主要四个构成部分:基础核心:提供基础的通用功能HDFS:分布式存储MapReduce:分布式计算Yarn:资源分配(任务的执行方式)1.HDFS的构成主要分为三个节点:NameNode:主要存储数据的存放地址等元数据DataNode:只用来存储数据SecondaryNameNode:辅助DataNode,把元数据持久化到磁盘中1...

2018-08-13 21:07:36 364

原创 Nginx 出现413 Request Entity Too Large解决方法

问题描述: 表单上传文件到后台,提示413 Request Entity Too Large错误解决方法: 首先想到的是修改SpringMVC配置,调高允许上传文件的大小 <!-- file upload related --> <bean id="multipartResolver" class="org.springframe...

2018-05-11 14:01:49 2761

原创 Docker 容器时间和系统时间存在误差解决方法

问题描述: docker容器的时间和系统时间存在8小时误差,容器使用UTC时区,系统使用CST时区时间原因分析及解决方法 创建容器的时候就应该使用-v /etc/localtime [容器名称或者id]:/etc/localtime和-v /etc/timezone [容器名称或者id]:/etc/timezone指定容器的时间和时区,但是由于容器已经创建完项目也部署上去了,不想再换重新创...

2018-05-08 17:10:37 1722 1

原创 Ajax 传递数组后台接收不到数据问题解决方法

问题描述: 前端使用ajax向后台提交数据$.ajax({ url: '/xxxx.ajax', method: 'GET', data: { ids:[1,2,3,4,5,6] }, dataType: 'json', success: function (data)...

2018-04-27 19:50:57 2528

原创 IDEA 出现Address already in use: JVM_Bind解决方法

端口和地址被占用,有可能是起了多了tomcat服务,常理是用任务管理器杀进程,或者使用cmd,netstat -ano | findstr 8080 找到8080端口对应的进程ID,再使用taskkill /F /PID 3223(端口号) 不过有时候这样试过还是显示JVM_Bind,这时候一种简单的解决方法就是直接删除IDEA中的这个tomcat,再重新配置一个也可以通过修改端口号解...

2018-04-25 09:29:40 7708

原创 AngularJS 如何实现页面跳转过程中传递参数

转载出处: https://www.zhihu.com/question/33565135/answer/69651500Angular页面传参有多种办法,根据不同用例,我举5种最常见的(请在网页版知乎浏览答案):PS: 在实际项目中,请参照https://github.com/johnpapa/angular-styleguide优化您的代码。1. 基于ui-router的页...

2018-04-24 14:17:29 573

原创 AngularJS 表单提交hidden属性后台无法获取到数据

问题描述: 通常使用表单提交数据的时候会使用input的hidden提交一些隐藏的属性<input type="hidden" ng-model="pageId" name="pageId" id="pageId">就像这样,然后提交到后台却无法获取到数据,我将type属性设置成text后,后台就获取到了原因分析: angularjs中使用ng-model绑定值之后...

2018-04-24 09:43:11 738

原创 AngularJS 数据有改变但是页面未渲染问题解决方法

问题描述: 渣前端,AngularJS用的不熟,场景是在页面加载的时候,请求后端数据填充到select下拉框中,但是可以看到获取到了后端数据,可是页面中的select中并未渲染出数据原因分析: AngularJS中使用了ajax请求数据时,AngularJS是监听不到的,因此需要使用$scope.$apply()强制渲染渲染一下解决方法: 使用$scope.$apply()强制渲染渲...

2018-04-23 20:25:22 3627 1

原创 Linux 磁盘满解决方法

df -h查看磁盘状态进入利用率高的磁盘下du -h --max-depth=1 查看文件大小ls -lhs 将文件以从大到小顺序展现接下来只要把占用空间大的无用文件删除掉就行了...

2018-04-20 14:20:34 347

转载 分布式 分布式锁的实现方案

目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需要牺牲强一致...

2018-04-18 09:19:58 174

转载 JAVA lambda表达式使用案例

复习Lambda表达式的时候,在知乎上看到一个回答说的很棒,觉得比我当时看的《Java 8函数式编程》书好理解多了。转载自 Lambda 表达式有何用处?如何使用? - Sevenvidia的回答 - 知乎 https://www.zhihu.com/question/20125256/answer/324121308什么是Lambda?我们知道,对于一个Java变量,我们可以赋给其...

2018-04-08 15:32:11 583

原创 分布式 集群环境下如何避免定时任务执行多次的解决方法

项目需要每隔一段时间执行某个定时任务,但是由于同时部署在多台机器上,因此可能会出现任务被执行多次,造成重复数据的情况,下面提供几种解决思路1. 指定执行定时任务的机器在多台机器中选择一台执行定时任务,每次执行的时候回判断当前机器和指定的机器是否一致,一致才会执行这种方法可以避免执行多次的情况,但是最明显的缺点就是单点故障问题,当这台指定的机器挂了以后,任务就不会执行了。2. 任务从...

2018-04-08 09:42:05 9076 1

原创 Node.js 实现Websocket实时通信小Demo

一个小Demo模拟实时通信,主要借助socket.io框架实现(对websocket的进一步封装)1.环境准备:1) Node.js 环境 –> 官网下载安装即可 2) socket.io.js文件 –> 同样官网下载 https://cdnjs.com/libraries/socket.io 3) 按照官网文档指示,安装模块npm install socket.io...

2018-04-07 21:56:48 740

转载 分布式 分布式事务中2PC与3PC的区别

协调者在分布式系统中,每一个机器节点虽然都能明确的知道自己执行的事务是成功还是失败,但是却无法知道其他分布式节点的事务执行情况。因此,当一个事务要跨越多个分布式节点的时候(比如,淘宝下单流程,下单系统和库存系统可能就是分别部署在不同的分布式节点中),为了保证该事务可以满足ACID,就要引入一个协调者(Cooradinator)。其他的节点被称为参与者(Participant)。协调者负责调度参...

2018-04-04 20:39:24 213

转载 Vue.js vue-resoucre的使用与解析 全攻略

本文的主要内容如下:介绍vue-resource的特点介绍vue-resource的基本使用方法基于this.http的增删查改示例</li><listyle="list−style:none;padding:0px;margin:0px;">基于this.http的增删查改示例</li&...

2018-03-16 09:21:37 303

原创 Vue.js 使用问题总结

新的项目前端开发使用到了Vue.js,第一次用有一些小问题,总结一下1.ready中方法不调用问题 vue2.x之后的版本,组件加载完成的钩子由ready变成mounted2.使用vue-resource与后台通信时,无法将数据set进指定的属性中,出现TypeError:Cannot user 'in' in [object Array] 原因是使用this.$set格式不对,应该是...

2018-03-16 09:18:39 244

原创 Spring RestTemplate出现乱码解决方法

发起Http请求有很多方法,Spring本身提供了RestTemplate类,简化了发起HTTP请求以及处理响应的过程,并且支持REST我们一般都是在xml配置文件中注入RestTemplate实现单例,一般初始化时会指定一些Converter用于不同的请求解析,下面是我之前的配置<bean id="restTemplate" class="org.springframework.w...

2018-03-02 19:06:05 1748

转载 Web WebSocket编程

1.为什么需要WebSocket初次接触 WebSocket 的人,都会问同样的问题:我们已经有了 HTTP 协议,为什么还需要另一个协议?它能带来什么好处? 答案很简单,因为 HTTP 协议有一个缺陷:通信只能由客户端发起。 举例来说,我们想了解今天的天气,只能是客户端向服务器发出请求,服务器返回查询结果。HTTP 协议做不到服务器主动向客户端推送信息。这种单向请求的特点,注定了

2018-02-04 15:26:14 724

转载 Java 常用JSON库注意事项

目前常用的json序列化反序列化类库有Jackson、Gson、Fastjson,其中Fastjson利用 ASM 框架,速度是这三者中最快的。本文介绍下这三种 json 库在使用过程中需要注意的地方。fastjson1)字段命名问题例如一个boolean成员变量isOnline,通过IDEA自动生成getter:isOnline(),setter:setOnline(boolea

2018-01-30 16:23:51 356

原创 Python 2.x升级到3.x

服务器上默认安装的是2.7版本的python,现在想手动升到3.x版本 记录一下1.去官网/镜像下载3.x的安装包下载网址2.解压文件,执行./configure进行配置该步骤报错一般都是没装编译器 –》 yum install make gcc gcc-c++3.编译并且安装 make & make install 4.此时执行python3 –version应该就可以看到是

2018-01-26 16:04:11 1632

转载 Web JavaScript模块化概念以及requirejs的使用

一. 模块的写法网页越来越像桌面程序,需要一个团队分工协作、进度管理、单元测试等等……开发者不得不使用软件工程的方法,管理网页的业务逻辑。Javascript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。但是,Javascript不是一种模块化编程语言,它不支持”类”(class),更遑论”模块”(module)了。(

2018-01-23 15:29:33 501

原创 Web 表格table实现横向滚动条以及时间组件laydate的使用

今天有空 来总结下最近的问题 最近的问题应该是昨天磕了一天的前端,吐槽一下前端提供的文档写的太不详细了,坑太多了。一个是table实现横向滚动的,做的功能是想把Hbase内容放入表格显示,Hbase中的列太多,且内容很长,所以使用普通的表格显示的时候会出现列拉伸的效果,因此用横向滚动,最简单的方法,将table放入一个div中,对div设置宽度,并且指明属性overflow-x:scroll,

2018-01-23 15:10:53 1330

转载 Web 短链接URL如何实现

最近写的项目中有用到短链接这个功能,项目中只是调用别人的服务。当时想的内部实现就是,服务端首先把长链接映射成对应的短链,再存入数据库,访问短链的时候访问数据库取到对应的长链地址再做转发即可。 这里考虑的太简单了,没有考虑到其中实现的很多细节: 1.长链到短链的映射问题,是否能存在这种绝对不碰撞的映射函数? 2.每次请求都要访问一遍db,是否存在更高效的方式? 3.转发的时候存在301和30

2018-01-23 14:52:31 694

原创 Json 格式化时间问题

实体类转json,Date类型的字段会默认转成1970年1月1日至今的毫秒数,解决方法有很多种,简单的使用@JsonFormat注解修饰实体类Date类型的字段或者getter方法 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")private Date created;//创建时间@JsonFormat(pattern = "yyyy-MM-d

2018-01-10 10:13:32 502

原创 Mybatis 判断Integer为空小问题

一般判断字符串为空时 使用的是和null以及空字符串”进行判断if test="str!=null and str!=''"> ...if>对于Integer等数值类型if test="num!=null"> ...if>只需要和空进行判断即可 之前和空字符串也比较了,但是常理来说,0并不等于空字符串,因此等式应该也是成立的,然而在Mybatis里Integ

2018-01-10 10:06:10 2501

原创 SpringCloud 分布式配置中心Cloud Config使用

在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在spring cloud config 组件中,分两个角色,一是config server,二是config client。1.服务

2017-12-28 20:58:09 538

Netty权威指南

Netty权威指南 Netty权威指南 Netty权威指南 Netty权威指南 Netty权威指南 Netty权威指南 Netty权威指南

2017-11-21

大型网站系统与Java中间件实践

大型网站系统与Java中间件实践大型网站系统与Java中间件实践大型网站系统与Java中间件实践

2017-11-21

heqianqiann的留言板

发表于 2020-01-02 最后回复 2020-01-02

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