自定义博客皮肤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的博客

一切都靠积累

  • 博客(85)
  • 资源 (2)
  • 收藏
  • 关注

转载 一文带你了解云原生

文章转载于百度百家号:AI课工场自进入云计算时代后,大量的新概念、新技术如雨后春笋般的涌现出来,从早期的openstack、IAAS平台,到中期的容器技术、微服务架构,再到现在的servicemesh服务网格技术、serverless无服务器架构、云原生技术,可谓在云计算的时代,我们从未停下前进的步伐。而今天要给大家带来的便是云原生技术~那么什么是云原生呢?我们将名词拆成两部分—云、原生,这些是相对于本地应用来的,云是相对于本地而言的,传统的应用都是运行在本地机房的服务器上,而云的应用则是运行在云端.

2020-09-15 10:04:13 356

原创 grpc-java入门实例

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

2020-03-08 13:21:07 2054

转载 CGI介绍

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

2019-12-31 10:46:56 570

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

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

2019-12-06 14:49:39 18593 2

原创 MySQLTransactionRollbackException: Deadlock found when trying to get lock

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

2019-11-29 18:31:26 11420 2

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

最近在给业务代码写单元测试,因为事务生效的问题,使用到了ApplicationContextAware接口,通过applicationContext来获取Spring容器中的Bean,但是在运行单测的时候报出如下异常:java.lang.ClassCastException: com.sun.proxy.$Proxy32 cannot be cast to XX很是奇怪,之前从没遇到过,而且...

2019-11-29 18:03:21 617

原创 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 type: java.lang.Double at org.hibernate.validator.engine.Con...

2019-11-29 17:36:54 493

原创 Mapped Statements collection does not contain value for XXX

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

2019-11-27 11:30:20 252

原创 please execute the cleanup command

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

2019-07-15 20:43:34 1724

转载 BigDecimal.ROUND_的各种用法

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

2019-07-03 10:46:39 18893 2

原创 Redis Cluster集群伸缩

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

2019-06-06 16:29:26 279

原创 Redis高可用集群之rediscluster

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

2019-05-31 16:58:08 347

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

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

2019-05-31 11:49:09 7449

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

本文基于redis-5.0.3版本,环境为Mac OS,单机器上部署。Redis单机存在的问题单机故障容量瓶颈QPS瓶颈Redis主从复制主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,mester以写为主,slaver以读为主。配置原则1.配从不配主。2.使用命令SLAVEOF动态指定主从关系,如果设置了密码,关联后使用 config set...

2019-05-07 17:30:20 510

原创 Executor框架

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

2019-05-06 15:32:07 137

原创 Java中的线程池

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

2019-04-25 09:15:29 160

原创 Java中的Lock与AQS

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

2019-04-01 12:37:24 1495

原创 CAS的实现原理

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

2019-03-29 16:52:26 985

原创 volatile的实现原理与应用

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

2019-03-29 14:54:04 220

原创 synchronized实现原理与应用

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

2019-03-28 17:35:46 219

原创 浅析Java内存模型

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

2019-03-28 10:31:26 122

原创 Java并发工具类的使用

在JDK中的java.util.concurrent包里提供了几个实用的并发工具类,下面我们一起来了解下。CountDownLatch功能: CountDownLatch允许一个或多个线程等待其他线程完成操作我们来看一个查询航班的例子,用户访问APP,查询北京到上海的航班信息,后台需要同时调用三家航空公司提供的API查询数据,最后将最终查询结果汇总后返回。示例代码如下:public c...

2019-03-26 10:48:40 401

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

“高并发和多线程”总是被一起提起,给人感觉两者好像相等,实则 高并发 ≠ 多线程多线程是完成任务的一种方法,高并发是系统运行的一种状态,通过多线程有助于系统承受高并发状态的实现。高并发是一种系统运行过程中遇到的一种“短时间内遇到大量操作请求”的情况,主要发生在web系统集中大量访问或者socket端口集中性收到大量请求(例如:12306的抢票情况;天猫双十一活动)。该情况的发生会导致系统在...

2019-03-20 10:20:57 199

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

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

2019-03-18 00:19:37 6361 1

原创 OPTIONS方法禁用

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

2019-03-13 11:18:27 25864 2

原创 基于Zookeeper实现配置中心

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

2019-03-12 16:06:55 10315 3

原创 分布式锁实现方案

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

2019-03-12 14:45:46 906

原创 zookeeper客户端框架Curator

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

2019-03-05 17:23:41 840

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

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

2019-03-05 14:01:25 274

原创 zookeeper-3.4.13源码编译

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

2019-03-01 23:21:07 1494

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

本文章基于spring-boot-starter-parent 2.0.6RELEASE,spring-cloud-dependencies Finchley.SR2。RabbitMQ安装因为系统是MAC所以使用homebrew工具来安装,命令行中执行如下命令:brew updatebrew install rabbitmq正常情况下,RabbitMQ Server会被安装到/usr/l...

2019-03-01 09:34:12 653

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

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

2019-02-28 10:17:06 1354

原创 分布式协调服务Zookeeper

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

2019-02-26 23:43:24 303

原创 BASE理论的含义

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

2019-02-25 17:02:12 6976

原创 Hystrix设计原理

Hystrix设计原理下图是来自Netflix Hystrix官方的流程图,该图展示了当一个请求调用了相关服务依赖之后Hystrix是如何工作的。1.构建一个HystrixCommand或是HystrixObservableCommand对象构建一个HystrixCommand或是HystrixObservableCommand对象,用来表示对依赖服务的操作请求,同时传递所有需要的参数。...

2019-02-22 17:54:24 497

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

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

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

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

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

2019-02-19 15:49:04 832

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

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

2019-02-18 16:06:47 190

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

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

2019-02-17 00:23:33 193

原创 Hystrix Dashboard

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

2019-02-16 11:45:11 4715

sqlite3.7z

sqlite3.exe,可用于解决SVN操作冲突问题。

2019-07-15

hsdis-amd64.dylib

HotSpot VM JIT编译代码的反汇编插件 JDK1.8亲测可用

2019-03-29

空空如也

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

TA关注的人

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