自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zqhao的博客

一切都靠积累

原创 grpc-java入门实例

本文主要介绍如何在Intellij IDEA环境下,快速搭建出grpc-java的入门实例。这个入门实例是一个HelloWorld程序,客户端发送world到服务端,服务端接收到请求后,拼装成 Hello,world回。 环境配置 JDK1.8 Maven 3.6 Intellij IDEA 创建...

2020-03-08 13:21:07 207 0

转载 CGI介绍

本文主要介绍CGI的相关知识 概念、背景及架构 CGI(Common Gateway Interface),即通用网关接口,是WWW技术中最重要的技术之一,是外部应用程序(即CGI程序)与WEB服务器之间的接口标准,负责在CGI程序和Web服务器之间传递信息。CGI是Web服务器运行时,调用外部应...

2019-12-31 10:46:56 58 0

原创 The expression 'XXX' evaluated to a null value.

最近遇到了一个关于mybatis的问题,是使用foreach时导致的问题。报错提示:‘The expression ‘XXX’ evaluated to a null value…’。解决问题的同时也发现了对知识点的一知半解,平时只是用,并没有对知识点进行细究。 常见的foreach样式 <...

2019-12-06 14:49:39 184 0

原创 MySQLTransactionRollbackException: Deadlock found when trying to get lock

MySQL数据库下,在对同一个数据表进行大批量更新时遇到该异常: ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock found when trying to get lock...

2019-11-29 18:31:26 515 0

原创 java.lang.ClassCastException: com.sun.proxy.$Proxy32 cannot be cast to XX

最近在给业务代码写单元测试,因为事务生效的问题,使用到了ApplicationContextAware接口,通过applicationContext来获取Spring容器中的Bean,但是在运行单测的时候报出如下异常: java.lang.ClassCastException: com.sun.p...

2019-11-29 18:03:21 135 0

原创 javax.validation.UnexpectedTypeException: No validator could be found for type: java.lang.Double

在使用Hibernate-Validation做数据验证时,碰到了该异常: Exception in thread "main" javax.validation.UnexpectedTypeException: No validator could be found for ...

2019-11-29 17:36:54 55 0

原创 Mapped Statements collection does not contain value for XXX

这个错误是因为Mybatis中*mapper.xml文件映射问题导致的,可以从以下几个方面进行排查: 1、配置中是否正确引入了对应的mapper文件 2、mapper文件是否被编译到正确的路径下 3、映射文件名称与接口的类名称是否一致(根据配置来定,不是必须) 4、mapper文件里的命名空间配...

2019-11-27 11:30:20 41 0

原创 please execute the cleanup command

原因: SVN操作冲突,因之前某个操作未释放,导致后续的操作无法执行。 解决方案: 方案一: 使用命令行在进入项目根目录下,执行svn cleanup命令。如果控制台中报异常信息,我这里是另一个程序正在使用此文件,进程无法访问,则说明之前的某个操作未释放,请查看方案二。 方案二: 一、下载sqli...

2019-07-15 20:43:34 138 0

转载 BigDecimal.ROUND_的各种用法

在银行、帐户、计费等领域,BigDecimal提供了精确的数值计算。其中8种舍入方式值得掌握。 1、ROUND_UP 舍入远离零的舍入模式。 在丢弃非零部分之前始终增加数字(始终对非零舍弃部分前面的数字加1)。 注意,此舍入模式始终不会减少计算值的大小。 2、ROUND_DOWN 接近零的舍入模式...

2019-07-03 10:46:39 2463 0

原创 Redis Cluster集群伸缩

本文基于redis-5.0.3版本,环境为Mac OS,单机器上部署。 在Redis高可用集群之rediscluster文章中介绍了Redis Cluster集群的两种搭建方式,本篇文章来讲述下集群的伸缩问题。 集群扩容 第一步:准备新节点 第二步:加入集群 第三步:迁移槽和数据 集群缩容 第一步...

2019-06-06 16:29:26 85 0

原创 Redis高可用集群之rediscluster

------------本文结束感谢您的阅读------------

2019-05-31 16:58:08 94 0

原创 Mac下使用终端查看用户进程

最近在研究Redis集群,需要使用终端查看进程情况。当使用ps -ef|grep redis命令时,发现无进程显示,然而redis确实已经启动起来了,在活动监视器里也能看到进程。在网上搜索无果后,于是尝试着分析下吧! 使用ps -ef命令查出所有线程,仔细排查过后发现基本都是/System/Lib...

2019-05-31 11:49:09 3586 0

原创 Redis主从复制与哨兵模式

本文基于redis-5.0.3版本,环境为Mac OS,单机器上部署。 Redis单机存在的问题 单机故障 容量瓶颈 QPS瓶颈 Redis主从复制 主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,mester以写为主,slaver以读为主。 配置原则 1.配从...

2019-05-07 17:30:20 146 0

原创 Executor框架

------------本文结束感谢您的阅读------------

2019-05-06 15:32:07 39 0

原创 Java中的线程池

Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。合理使用线程池的好处: 降低资源消耗: 通过重复利用已创建的线程降低线程创建和销毁所处造成的消耗。 提高响应速度: 当任务到达时,任务可以不需要等待线程的创建就能立即执行。 提高线程的可管理性: 使...

2019-04-25 09:15:29 64 0

原创 Java中的Lock与AQS

------------本文结束感谢您的阅读------------

2019-04-01 12:37:24 326 0

原创 CAS的实现原理

------------本文结束感谢您的阅读------------

2019-03-29 16:52:26 238 0

原创 volatile的实现原理与应用

------------本文结束感谢您的阅读------------

2019-03-29 14:54:04 75 0

原创 synchronized实现原理与应用

------------本文结束感谢您的阅读------------

2019-03-28 17:35:46 104 0

原创 浅析Java内存模型

------------本文结束感谢您的阅读------------

2019-03-28 10:31:26 51 0

原创 Java并发工具类的使用

在JDK中的java.util.concurrent包里提供了几个实用的并发工具类,下面我们一起来了解下。 CountDownLatch 功能: CountDownLatch允许一个或多个线程等待其他线程完成操作 我们来看一个查询航班的例子,用户访问APP,查询北京到上海的航班信息,后台需要同时调...

2019-03-26 10:48:40 85 0

转载 高并发和多线程的关系

“高并发和多线程”总是被一起提起,给人感觉两者好像相等,实则 高并发 ≠ 多线程 多线程是完成任务的一种方法,高并发是系统运行的一种状态,通过多线程有助于系统承受高并发状态的实现。 高并发是一种系统运行过程中遇到的一种“短时间内遇到大量操作请求”的情况,主要发生在web系统集中大量访问或者soc...

2019-03-20 10:20:57 52 0

原创 单例模式的7种实现方式及比较

单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的一个类只有一个实例,即一个类只有一个对象实例。 – 百度百科 问题的由来 多个线程要操作同一对象,需要保证对象的唯一性。 解决思路 该类的构造方法为私有,防止外部实例化该类...

2019-03-18 00:19:37 1272 0

原创 OPTIONS方法禁用

在给系统做安全检测的过程中,发现了一个低危安全性问题,检测到目标服务器启用了OPTIONS方法。 OPTIONS方法是用于请求获得由Request-URI标识的资源在请求/响应的通信过程中可以使用的功能选项。通过这个方法,客户 端可以在采取具体资源请求之前,决定对该资源采取何种必要措施,或者了解服...

2019-03-13 11:18:27 7149 0

原创 基于Zookeeper实现配置中心

------------本文结束感谢您的阅读------------

2019-03-12 16:06:55 2973 1

原创 分布式锁实现方案

并发是很多系统都需要面对的问题,在Java语言中提供了很多并发处理相关的API,但是这些API仅适用于在单节点环境中,在分布式环境中就无能为力了,因此我们要寻找解决方案来解决分布式系统中的并发问题,而并发问题的实质就是数据的一致性问题,为此我们引入分布式锁。 概念 分布式锁是控制分布式系统之间同步...

2019-03-12 14:45:46 459 0

原创 zookeeper客户端框架Curator

Curator客户端 Cureator的特点: 1.封装Zookeeper client与Zookeeper server之间的连接处理 2.提供了一套Fluent风格的API 3.提供Zookeeper各种应用场景的抽象封装,比如recipe、共享锁、集群领导选举等。 ...

2019-03-05 17:23:41 285 0

原创 Zookeeper进阶及客户端框架使用

------------本文结束感谢您的阅读------------

2019-03-05 14:01:25 92 0

原创 zookeeper-3.4.13源码编译

本文主要讲解如何对zookeeper源码进行编译,本机环境是mac os。 源码下载 Github源码地址 这里下载的是相对稳定的3.4.13版本 安装Ant Ant下载地址 这里下载的是apache-ant-1.10.5-bin.zip 下载后解压缩,然后添加环境变量 export PATH=$...

2019-03-01 23:21:07 799 0

原创 消息总线Bus - Spring Cloud系列(八)

本文章基于spring-boot-starter-parent 2.0.6RELEASE,spring-cloud-dependencies Finchley.SR2。 RabbitMQ安装 因为系统是MAC所以使用homebrew工具来安装,命令行中执行如下命令: brew update bre...

2019-03-01 09:34:12 299 0

原创 spring-boot-starter-actuator监控端点问题

在研究spring cloud config动态刷新配置的时候,需要用到spring-boot-starter-actuator监控模块,actuator使用的是2.0.6版本。项目启动后发现只有/health和/info端点,无法使用/refresh端点。 查阅官网后发现需要增加配置来暴露: ...

2019-02-28 10:17:06 797 0

原创 分布式协调服务Zookeeper

分布式系统介绍 分布式系统的定义 《分布式系统原理和范型》一书中定义:分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像是单个相关系统。 从进程角度看,两个程序分别运行在两台主机的进程上,它们互相协作最终完成同一个服务或者功能,那么理论上这个两个程序所组成的系统,也可以称作是&a...

2019-02-26 23:43:24 131 0

原创 BASE理论的含义

在CAP定理的含义中介绍了CAP定理的相关知识,本篇文章来介绍CAP理论的延伸,BASE理论。 BASE理论的核心思想是即使无法做到强一致性,也可以采用适合的方式使应用达到最终一致性。BASE是指基本可用(Basically Available)、软状态(Soft State)、最终一致性(Eve...

2019-02-25 17:02:12 1415 0

原创 Hystrix设计原理

Hystrix设计原理 下图是来自Netflix Hystrix官方的流程图,该图展示了当一个请求调用了相关服务依赖之后Hystrix是如何工作的。 1.构建一个HystrixCommand或是HystrixObservableCommand对象 构建一个HystrixCommand或是Hyst...

2019-02-22 17:54:24 205 0

原创 分布式服务跟踪Sleuth - Spring Cloud系列(七)

------------本文结束感谢您的阅读------------

2019-02-20 17:17:31 87 1

原创 分布式配置中心Config - Spring Cloud系列(六)

------------本文结束感谢您的阅读------------

2019-02-19 15:49:04 391 0

原创 API网关服务Zuul - Spring Cloud系列(五)

------------本文结束感谢您的阅读------------

2019-02-18 16:06:47 62 0

原创 声明式服务调用Feign - Spring Cloud系列(四)

------------本文结束感谢您的阅读------------

2019-02-17 00:23:33 66 0

原创 Hystrix Dashboard

Hystrix Dashboard主要用来实时监控Hystrix的各项指标信息。通过Hystrix Dashboard反馈的实时信息,可以帮助我们快速发现系统中存在的问题。

2019-02-16 11:45:11 1453 0

原创 服务容错保护Hystrix - Spring Cloud系列(三)

------------本文结束感谢您的阅读------------

2019-02-15 17:12:15 111 0

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