自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hanjinping的博客

天道酬勤,厚德载物

  • 博客(94)
  • 资源 (11)
  • 收藏
  • 关注

原创 阿里巴巴的26款超神Java开源项目!

1.分布式应用服务开发的一站式解决方案 Spring Cloud AlibabaSpring Cloud Alibaba 致力于提供分布式应用服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应用系统。地址:https

2020-08-26 20:10:08 279

原创 阿里笔试

/** * @author hanjinping * <p> * 类信息注释 */public class A { /** * 求山脉的最大坡度 * 包含上坡和下坡 * @param b */ public static int test(int b[]){ int max=0; for (int i=0;i<b.length-1;i++){ //上坡开始,上坡.

2020-05-16 11:44:13 299

原创 阿里面经-Java多线程 BlockingQueue

1、核心方法public interface BlockingQueue<E> extends Queue<E> { //将给定元素设置到队列中,如果设置成功返回true, 否则返回false。如果是往限定了长度的队列中设置值,推荐使用offer()方法。 boolean add(E e); //将给定的元素设置到队列中,如果设置成功返回true, 否则返回false. e的值不能为空,否则抛出空指针异常。 boolean offer(E e

2020-05-15 18:31:07 249

原创 阿里面经

一、分布式锁问题:1、B的锁被A给释放了场景:A、B两个线程来尝试给key myLock加锁,A线程先拿到锁(假如锁3秒后过期),业务未执行完成,B获取到锁,A释放锁(此时A锁因为过期时间已经释放,实际释放的是B锁)解决方案:在每个线程加锁时要带上自己独有的value值来标识,只释放指定value的key,否则就会出现释放锁混乱的场景2、锁过期了,业务还没执行完解决方案:锁自动续期,redisson客户端,redisson在加锁成功后,会注册一个定时任务监听这个锁,每隔10秒就去查看这个锁,...

2020-05-15 09:35:25 213

原创 kafka 进阶

一、kafuka入门1、简介Kafka is a distributed,partitioned,replicated commit logservice。kafka对消息保存时根据Topic进行归类,发送消息者成为Producer,消息接受者成为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)成为broker。无论是kafka集群,还是producer和consumer都依赖于zookeeper来保证系统可用性集群保存一些meta信息。2、Topic.

2020-05-13 12:01:27 707

原创 mq消息中间件面前突击

主讲:Rocketmq1、mq优势: 流量缓冲(削峰填谷)、系统解耦、性能提升、蓄流压测2、rocketmq主要优势:事务型消息、支持18个延迟消息级别、消息失败重发(指定次数和间隔时间)、消费端根据tag过滤3、rocketmq和kafka对比:指标 rocketMq kafka 应用场景 非日志可靠传输消息(订单、充值、交易) 日志消息传输(日志收集、监控、常规消息系统) 语言 java scala 持久化/部署 磁盘文件、单..

2020-05-11 21:56:23 266

原创 Window10 系统下安装Linux子系统

一、启用子系统(看图)1、 windows设置-->更新和安全-->开发者选项-->开发人员模式 2、win+X调出系统菜单-->应用和功能-->程序和功能-->应用或关闭window功能-->勾选适用于linux的Windows子系统二、安装Ubuntu系统1、使用curl下载: cmd命令执行一下内容:curl.exe ...

2020-03-12 14:23:21 348

原创 CentOs7 提示没有安装包docker的解决办法

1、运行下面的yum 命令-安装 docker:yum install docker -y提示没有安装包docker2、/etc/yum.repo.d 目录下创建配置文件touch test.repo配置文件*.repo3、在配置文件中写入下面内容:[dockerrepo]name=Docker Repositorybaseurl=https:/...

2019-12-29 14:43:39 1887 1

原创 JVM监控常用命令

jpsjps的功能也和 ps 命令类似:可以列出正在运行的虚拟机进程,并显示虚拟机执行主类( Main Class, main() 函数所在的类)名称以及这些进程的本地虚拟机唯一 ID。jps -l参数说明:-q: 只输出LVMID,省略主类的名称 -m: 输出虚拟机进程启动时传递给主类main()函数的参数 -l: 输出主类的全名,如果进程执行的是jar包,输出jar路径...

2019-12-11 21:17:40 99

原创 dubbo白名单

dubbo白名单实现:1、创建过滤器,实现 com.alibaba.dubbo.rpc.Filter 接口2、resources目录下创建META-INF\dubbo目录,新建com.alibaba.dubbo.rpc.Filter名称的文件。3、dubbo-provider.xml中 新增 <dubbo:provider filter="xxFilter"/>...

2019-12-06 16:13:42 429

转载 K8S基础概念

一、核心概念1、NodeNode作为集群中的工作节点,运行真正的应用程序,在Node上Kubernetes管理的最小运行单元是Pod。Node上运行着Kubernetes的Kubelet、kube-proxy服务进程,这些服务进程负责Pod的创建、启动、监控、重启、销毁、以及实现软件模式的负载均衡。Node包含的信息:Node地址:主机的IP地址,或Node ID。 Node的运...

2019-12-03 09:45:55 500

原创 XSS攻击-springboot项目修复

百度百科:XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内...

2019-10-31 17:19:30 1477

原创 基于zookeeper分布式锁的实现

基于zookeeper分布式锁的实现1、Zookeeper的节点类型1. 持久节点节点创建后就会一直存在,直到主动删除,不会因为创建改节点的客户端会话消失而消失。2.持久顺序节点持久的,顺序节点,Zk会维护这个时序,记录子节点的创建的先后顺序。3.临时节点临时节点的生命周期和客户端会话绑定,如果客户端会话失效(不是连接断开),那么这个节点被自动清除掉,临时节点下面不能创建子...

2019-10-30 21:11:54 191

原创 基于redis分布式锁的实现

基于redis分布式锁的实现分布式锁的实现方式:setnx / del / expire1. setnx如返回1,则该客户端获得锁,把lock.foo的键值设置为时间值表示该键已被锁定,该客户端最后可以通过DELlock.foo来释放该锁。 如返回0,表明该锁已被其他客户端取得,这时我们可以先返回或进行重试等对方完成或等待锁超时。2. del通过del删除key来释放锁。3. ex...

2019-10-30 12:12:06 213

原创 代理模式

通过代理控制对象的访问,可以详细访问某个对象的方法,在这个方法调用处理,或调用后处理。既(AOP微实现) ,AOP核心技术面向切面编程。代理的分类静态代理(静态定义代理类)动态代理(动态生成代理类)Jdk自带动态代理Cglib 、javaassist(字节码操作库)静态代理静态代理需要自己生成代理类JDK动态代理package com.p...

2019-04-03 18:34:10 102

原创 计算分页工具类

/** * @returnType:@param list 切割集合 * @returnType:@param pageSize 分页长度 * @returnType:@return List<List<T>> 返回分页数据*/public class ListUtils { public static <...

2019-04-01 00:15:00 292

原创 SpringCloud微服务搭建详解

主要讲解SpringCloud搭建微服务的步骤,其中用到了Eurake、Ribbon、Feign、Hystrix、Zuul、Config技术。项目地址:https://github.com/17665387407?tab=repositories一、建立一个总工程首先建立一个microservice-parent总工程,总工程中并不做什么业务逻辑,总工程主要定义一个POM文件,...

2019-03-29 15:56:03 346

原创 个人手记

标题

2019-03-15 09:18:49 137

原创 二分查找法与二分法排序

1、二分查找法二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一...

2019-03-12 00:07:19 691

转载 分布式事务的四种解决方案

简述分布式事务指事务的操作位于不同的节点上,需要保证事务的 AICD 特性。例如在下单场景下,库存和订单如果不在同一个节点上,就涉及分布式事务。解决方案在分布式系统中,要实现分布式事务,无外乎那几种解决方案。一、两阶段提交(2PC)两阶段提交(Two-phase Commit,2PC),通过引入协调者(Coordinator)来协调参与者的行为,并最终决定这些参与者是否要真...

2019-03-10 15:30:47 4031

转载 基于zookeeper分布式锁的原理和实现

一、分布式锁介绍分布式锁主要用于在分布式环境中保护跨进程、跨主机、跨网络的共享资源实现互斥访问,以达到保证数据的一致性。二、架构介绍在介绍使用Zookeeper实现分布式锁之前,首先看当前的系统架构图解释: 左边的整个区域表示一个Zookeeper集群,locker是Zookeeper的一个持久节...

2019-03-10 13:50:29 134

转载 redis分布式锁安全性探讨

一、基于单个redis节点的分布式锁步骤1:向redis发送命令,获取锁SET resource_name my_random_value NX PX 30000解释说明:my_random_value:客户端生成的随机值,要保证在足够长的时间内所有客户端生成的随机值是唯一的NX:当key为resource_name的值不存在时,才能被成功插入(IF NOT EXISTS...

2019-03-10 10:59:20 150

转载 三种实现分布式锁的方式

一、为什么要使用分布式锁我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用我们学到的Java多线程的18般武艺进行处理,并且可以完美的运行,毫无Bug!注意这是单机应用,也就是所有的请求都会分配到当前服务器的JVM内部,然后映射为操作系统的线程进行处理!而这个共享变量只是在这个JVM内部的一块内存空间!后来业务发展,需要做集群,一个应用需要部署到几台机器上然...

2019-03-09 10:08:11 257

转载 自动构建编译javaweb项目并发布到N台服务器

前言当你使用nginx实现了负载均衡,当你有了超过3台以上的应用服务器时,一个特别头疼的问题就来了,发布项目好麻烦。你每次都要在本地编译打包一遍,然后手动复制到每一台服务器上面去,如果只有一两台服务,那么确实还不算麻烦,但是当你有了一定数量的服务,你就会发现,发布一遍项目,一个小时过去了。然后你即使改动一个小的地方,所有的必须又重新发布一遍,最后在发布项目上面浪费的时间都足够你睡...

2019-03-08 17:25:24 362

转载 jsp的三种自定义标签 写法示例

自定义标签可以大大方便我们的页面控件编写,并且可以实现很多统一的管理。 0、首先需要引入支持自定义标签的jar包,有两种方式,一个是直接在maven里面引入依赖: &lt;dependency&gt; &lt;groupId&gt;javax.servlet.jsp&lt;/groupId&gt; &lt;artifa...

2019-02-26 11:22:42 181

转载 简要分析ZooKeeper基本原理及安装部署

一、ZooKeeper 基本概念1、ZooKeeper 是什么?Zookeeper官网地址: http://zookeeper.apache.org/Zookeeper官网文档地址:http://zookeeper.apache.org/doc/trunk/index.htmlZooKeeper 是Hadoop下的一个子项目,它是一个针对大型分布式系统的可靠协调系统;它提供的功能包括...

2019-01-13 17:20:13 110

转载 Kafka史上最详细原理总结

KafkaKafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Li...

2019-01-05 17:49:00 194

转载 Shell 教程(一)

Shell 脚本Shell 脚本(shell script),是一种为 shell 编写的脚本程序。业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。由于习惯的原因,简洁起见,本文出现的 "shell编程" 都是指 shell 脚本编程,不是指开发 shell 自身。Shell 环境Shell 编...

2018-12-14 11:39:38 170

转载 Linux vi/vim

所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。但是目前我们使用比较多的是 vim 编辑器。vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。什么是 vim?Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处...

2018-12-14 09:56:55 84

原创 Linux 文件属组、属性

文件基本属性在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组,如实例中,bin文件的第一个属性用"d"表示。"d"在Linux中代表该文件是一个目录文件。在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。当为[ d ]则是目录 当为[ - ]则是文件; 若是[ l ]则表示为链接文档(link file); 若是[ ...

2018-12-11 11:39:30 2832

原创 Linux系统目录结构

系统结构:以下是对这些目录的解释: /bin: bin是Binary的缩写, 这个目录存放着最经常使用的命令。 /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。 /dev : dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。 ...

2018-12-11 11:14:04 102

转载 drop、truncate和delete的区别

(1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。   TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。(2)表和索引所占空间。   当表被TRUNCATE 后,这个表和索引所占用...

2018-12-04 17:14:58 86

转载 Java文件切片 & 切片合并

文件分割器:package com; import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.RandomAccessFile;import java.nio.MappedByteBuffer;import java.nio.channels.Fil...

2018-12-04 11:03:18 3979 1

转载 Java并发编程:volatile关键字解析-原子性,可见性,有序性

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。  volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来...

2018-11-30 10:43:24 402

转载 八大排序

 直接插入排序在要排序的一组数中,假设前面(n-1)[n&gt;=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这 n个数也是排好顺序的。如此反复循环,直到全部排好顺序。希尔排序(最小增量排序)算法先将要排序的一组数按某个增量 d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差 d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量...

2018-11-29 16:56:29 123

转载 深入hibernate的三种状态

学过hibernate的人都可能都知道hibernate有三种状态,transient(瞬时状态),persistent(持久化状态)以及detached(离线状态),大家伙也许也知道这三者之间的区别,比如瞬时状态就是刚new出来一个对象,还没有被保存到数据库中,持久化状态就是已经被保存到数据库中,离线状态就是数据库中有,但是session中不存在该对象。但是大家又是否对hibernate的ses...

2018-11-29 15:32:07 92

原创 Redis 客户端-Jedis

一、编码实战    1&gt; 简单使用package org.jedisDomo;import redis.clients.jedis.Jedis;public class JedisDemo { public static void main(String[] args) { // TODO Auto-generated method stub ...

2018-11-04 14:01:02 72

原创 Redis 快速上手

下载RedisLinux版本 2.8.11 :http://download.redis.io/releases/redis-2.8.11.tar.gzWindows(64位)版本 2.8.9 :https://github.com/MSOpenTech/redis/blob/2.8/bin/release/redis-2.8.9.zip?raw=trueWindows(32位)...

2018-11-04 13:03:41 168

原创 疯狂编码-HTTPClient

1、导入jar包  maven导入&lt;dependency&gt; &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt; &lt;artifactId&gt;httpclient&lt;/artifactId&gt; &lt;version&gt;4.3.5&lt;/version&gt; &a

2018-11-03 18:43:24 257

原创 全面了解-Nginx

nginx 下载地址:点击下载SwitchHosts 下载地址:点击下载(用于快速切换 hosts 文件的小程序)一、nginx入门1.1什么是nginx?nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行...

2018-11-03 11:05:35 195

cglib 和asm jar包

jdk动态代理是由Java内部的反射机制来实现的,cglib动态代理底层则是借助asm来实现的。总的来说,反射机制在生成类的过程中比较高效,而asm在生成类之后的相关执行过程中比较高效(可以通过将asm生成的类进行缓存,这样解决asm生成类过程低效问题)。还有一点必须注意:jdk动态代理的应用前提,必须是目标类基于统一的接口。如果没有上述前提,jdk动态代理不能应用。 注:asm其实就是java字节码控制.

2019-04-03

SwitchHosts

SwitchHosts工具是一个用于快速切换 hosts 文件的小程序

2018-11-03

nginx-1.5.17

nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器

2018-11-03

MongoDB可视化工具

MongoDB可视化工具 两款 nosqlbooster4mongo-4.7.4.exe mongodbmanagerpro_inst.exe

2018-09-27

Tomcat7优化

Tomcat7优化

2018-09-22

Redis集群部署

Redis集群部署

2018-09-22

MySQL性能优化

MySQL性能优化

2018-09-22

springloaded-1.2.4.RELEAS

springloaded-1.2.4.RELEAS

2018-09-02

Redis-x64-3.0.504

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的数据备份。

2018-05-12

kindeditor富文本编辑器

kindeditor富文本编辑器及其demo kindeditor富文本编辑器及其demo

2018-05-04

jacob语音朗读(包含API)

jacob-1.17-M2 语音朗读jar 包和开发文档 jacob-1.17-M2 语音朗读jar 包和开发文档

2018-05-04

空空如也

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

TA关注的人

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