自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 资源 (3)
  • 收藏
  • 关注

原创 ActiveMQ消息多线程并发处理

activeMQ发送方和接收方有多个线程发布消息和多个线程接收消息的情况

2017-03-16 15:32:48 25446 16

原创 分布式解决方案---基于可靠消息的最终一致性方案

基于可靠消息最终一致性的方案1 .主动方(订单服务)在业务事务提交前,向实时消息服务请求发送消息,实时消息服务只记 录消息数据,而不真正发送。只将消息保存到DB,状态status为等待确认(WATING_CONFORM)。[步骤①,步驟a发送到mq的步骤还未执行,目前只是预发送(保存消息到DB)]2 .主动方执行具体的业务(比如操作订单相关的逻辑,步驟②),如果没有问题,调用消息服务,发...

2018-08-22 11:37:34 2559 1

原创 分布式解决方案 --基于最大努力通知型方案

基于最大努力通知型1 主动方(比如电商系统的交易微服务模块)调用消息服务将消息发送到mq(消息存在丢失情况)[a,b步骤]2 消息服务端监听MQ消息,将获取的消息解析,将需要通知的内容(notify_record)保存到DB,并将消息发送到延时队列DelayQueue服务任务中[c,d步骤],此时是第一次通知3 通知服务运行时,将延迟队列中满足当前运行时刻的任务执行,将通知的任务发送给...

2018-08-22 11:36:35 1593

转载 学习分布式不得不会的CAP理论

转载至http://t.jinritoutiao.js.cn/enAjhJ/ 头条作者:HollisChuang无论你是一个系统架构师,还是一个普通开发,当你开发或者设计一个分布式系统的时候,CAP理论是无论如何也绕不过去的。本文就来介绍一下到底什么是CAP理论,如何证明CAP理论,以及CAP的权衡问题。CAP理论概述CAP理论:一个分布式系统最多只能同时满足一致性(Cons...

2018-08-14 10:49:04 412

原创 spring IOC记录

调用FileSystemApplicationContext等时,会执行初始化方法: public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { // Prepare this co...

2018-07-26 09:22:45 173

原创 zookeeper的选举模式在工作中的尝试使用

学习了一些zookeeper常用使用场景,在工作中正好将其应用。这里介绍一下项目背景: 该项目在有两台服务器跑定时任务,但希望每次只有其中一台服务器在跑任务,另一台服务器作为备机,且两台任何一台服务器down掉后,另一台会接替运行这个定时任务。我当时正好学习了运用zookeeper进行选举的案例,就打算在本项目中运用一下,通过选举只有master服务器才有资格跑任务。具体算法步骤: 1...

2018-06-25 16:22:55 466 1

原创 zookeeper学习(二)-实现命名服务

使用zookeeper实现命名服务,生成系统唯一id. 算法流程图: 算法步骤比较简单: 1.创建持久的顺序节点 2.获取返回的节点名称,提取ID 3.按需删除节点(防止创建大量的持久节点)代码:package com.zk.nameservice;import java.util.concurrent.ExecutorService;import java.util....

2018-06-25 15:16:18 621

原创 zookeeper的学习(一):实现分布式队列queue

算法流程图: 核心方法的简要概述:1.offer方法 在zookeeper下创建临时顺序节点。2 poll方法 由于队列的先进先出特性,所以poll方法,就是读取zookeeper队列节点下所有子节点最小number的那个节点,读到数据, 则返回且删除该节点代码:package com.zk.queue;import java.util.Collecti...

2018-06-25 15:05:27 1028 1

原创 工作中常用的分布式锁实现方案

1.基于redis的setnx()、expire()方法: a. setnx(lockkey, 1) 如果返回0,则说明设置失败,当前key已存在,有其他任务设置了该key;如果返回1,说明设置成功,获取了锁 b. expire()命令对lockkey设置超时时间(setnx不能设置key的过期时间),避免死锁问题。2.基于数据库资源表做乐观锁 通过为数据库表添加一...

2018-06-25 10:22:42 209

原创 springmvc自定义异常处理器

这里就总结工作中用到的自定义异常处理器两类方式: 1 、实现HandlerExceptionResolver定义两个异常类:业务异常(BusException)、空指针异常(NullException)继承自RuntimeExceptionpackage com.demo.exception;/** * 业务异常 * @author Administrator * */pu...

2018-06-21 15:22:14 1094

原创 获取spring容器中管理的bean的方法

方式一:实现ServletContextListener 定义BeanContants,该类定义一个static变量,保存ApplicationContext的对象 public class BeanConstants { public static ApplicationContext context;}在项目启动时,配置listener,将获取web工程当前的上下文...

2018-06-15 15:55:40 739

原创 jstack分析cpu负载过高原因

1、用ps -ef | grep tomcat-查出tomcat运行的进程id 2、用top -H -p pid 查询tomcat进程下所有线程的运行情况(shift+p 按cpu排序,shift+m 按内存排序) 3、导出java线程dump文件到某目录 4.打印CPU消耗较多的线程id jstack打印的线程堆栈中线程id是十六进制的,所以需要将十进制的线程id转换为十六...

2018-04-25 15:44:16 2058

原创 solr集群安装使用

本文内容来自入云龙老师课堂笔记什么是SolrCloudSolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,这时需要使用SolrCloud来满足这些需求。 SolrCloud是基于Solr和Zookee...

2018-04-16 14:41:27 215

原创 Solr单机版安装使用

本文内容来自入云龙老师课堂笔记什么是Solr Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。 Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用 POST 方...

2018-04-16 14:26:44 287

原创 线程池ThreadPool工作中的再次思考

ThreadPoolExecutor类实现了ExecutorService接口和Executor接口,可以设置线程池corePoolSize,最大线程池大小maximumPoolSize,拒绝策略。构造方法:ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,long keepAliveTime, TimeUnit unit,...

2018-04-15 18:36:10 619

原创 nginx实现负载均衡

什么是负载均衡 负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。nginx实现负载均衡 ...

2018-04-15 18:08:10 222

原创 nginx的反向代理

什么是反向代理 通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中由代理服务器向Internet上的web服务器发起请求,最终达到客户机上网的目的。 而反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上...

2018-04-15 18:04:09 192

原创 (三) nginx实现虚拟主机

什么是虚拟主机 虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供www服务,这样就可以实现一台主机对外提供多个web服务,每个虚拟主机之间是独立的,互不影响的。 通过nginx可以实现虚拟主机的配置,nginx支持三种类型的虚拟主机配置,1、基于ip的虚拟主机, 2、基于域名的虚拟主机 3、基于端口的虚拟主机ng...

2018-04-15 14:19:46 263

原创 (一) linux下nginx的安装和使用

准备工作: nginx安装需要安装以下环境: gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc-c++ PCRE PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用p...

2018-04-15 13:45:17 185

原创 spring整合activemq设置prefetchSize

最近在工作中使用到了activemq,由于消费者这边涉及大量计算,比较耗时,发送方数据也是源源不断的过来,目前的配置是有两个消费客户端在监听,为了让消息更均衡的分配到这两个消费者端,需要设置prefetchSize小点,activemq默认的是1000。 在网上看的都是按照下面的配置设置prefetchSize,我尝试过都不管用,不知道是哪个步骤设置的不对。按照下面的配置是可以正确设置p...

2018-03-10 13:20:14 2989

原创 solr:IK分词方法

下面两种方法是我在实际工作项目中用到的分词,需要引入IKAnalyzer-3.2.8.jar包。 /** * @author: kxl * 分词 */ public String analyse(String word) { try { Analyzer analyzer = new IKAnalyzer(false);

2017-11-22 15:31:04 348

原创 Solr:schema版本号区别(引发IK分词错误)

在我工作的项目中,使用的是solr3.5版本,配置文件schema.xml的version正常应该是1.4,而我们项目中这个配置文件的version版本却被写成了1.2。 导致我在实际使用中比如查询“米林地震”时没有任何结果,因为它是按照整个“米林地震”去查询的,并没有做分词,实际情况是分词成“米林”“林地”“地震”去查询的。 所以将schema.xml文件的这个版本号改为1.4以上就可以了。

2017-11-22 15:15:08 331

原创 Spring源码分析的几篇博客

http://blog.csdn.net/column/details/lovespring.html http://www.cnblogs.com/ITtangtang/p/3978349.html

2017-10-18 15:02:01 540

原创 敏感词查询过滤DFA算法

在实际项目中我们经常将敏感词库保存在某个文件中,或者保存在数据库中,当我们需要判断某个字符串是否属于这些敏感词或者查询某个文本包含哪些敏感词。我们的方案或许是下面的几种。 1.将数据库或者敏感词库文件中的敏感词拼接成一个字符串,然后使用indexOf方法判断,或者将敏感词放到一个Set中,利用contains方法,判断某个字符串是不在这个敏感词的set集合中。 2.将敏感词入数据库后通过SQL查

2017-09-20 15:47:32 1909

转载 根据文件头判断文件格式

转载自:http://www.educity.cn/wenda/148707.htmlJava根据文件头获取文件类型 文件头是位于文件开头的一段承担一定任务的数据,一般都在开头的部分。头文件作为一种包含功能函数、数据接口声明的载体文件,用于保存程序的声明(declaration),而定义文件用于保存程序的实现 (implementation)。 为了解决在用户上传文件的时候在

2017-07-31 17:33:18 1385

原创 虚拟机安装tomcat

http://www.jb51.net/article/102226.htm 虚拟机安装tomcat

2017-07-26 14:49:01 1351

原创 java解压7z格式的压缩包

在我的前面博客中总结了一个压缩,解压缩的工具栏,http://blog.csdn.net/u010248330/article/details/74178100。但是针对.7z格式的压缩包,我们用的这两个开源包:<dependency> <groupId>net.sf.sevenzipjbinding</groupId> <artifactId>sev

2017-07-19 15:29:11 10476 3

原创 自己动手实现集合框架类(四)之LinkedHashMap

linkedHashMap跟和HashMap结构,只是加了两个属性,也就是为了记录前一个插入的元素(before)和记录后一个插入的元素(next)。 LinkedHashMap定义的Entry结构如下:next和after可能会指向同一个Entry,next也可能指向null。整个结构如下:(图片来http://www.cnblogs.com/chenpi/p/5294077.html) 从上

2017-07-14 15:25:26 320

原创 自己动手实现集合框架类(三)之HashMap

HashMap的底层实现主要是基于数组和链表来实现的,HashMap中通过key的hashCode来计算hash值的, 由这个hash值计算在数组中的位置,将新插入的元素放到数组的这个位置,如果新插入的元素的hash值跟这个位置上已有元素的hash值相同,就会出现hash冲突,这时候,就在该位置通过链表来插入新的元素。这里懒的画图了,借鉴http://www.cnblogs.com/chengxi

2017-07-14 15:24:08 1212 3

原创 自己动手实现集合框架类(二)之LinkedList

LinkedList相比于ArrayList的底层实现区别是,Linkedlist的底层为一个双向链表,而不是数组了。画个丑图表示下: 在linkedList的底层实现中,存储一个表头first节点指向链表的第一个节点,存储一个last节点,指向链表的最后一个节点,而每个节点又存储了一个指向其前一个节点(previous)和后一个节点(next)的指针。package com.java.myuti

2017-07-14 15:21:10 309

原创 自己动手实现集合框架类(一)之ArrayList

Arraylist的底层实现,数组结构

2017-07-14 15:18:05 255

转载 JDK1.6集合框架bug:c.toArray might (incorrectly) not return Object[] (see 6260652)

转载自:http://blog.csdn.net/aitangyong/article/details/30274749最近在看JDK的源码:CopyOnWriteArrayList.java和ArrayList.java,这2个类的构造函数,注释中有一句话看不懂。public ArrayList(Collection

2017-07-12 08:44:10 334

原创 Cookies与Session的总结

常用的会话跟踪技术是Cookie与Session,区别是Cookie存储在客户端,而Session存储在服务器端来确定用户身份。 1、 CookieCookie为一小段文本信息,当客户端浏览器访问服务器时,服务器向客户端写入一个Cookie。客户端把Cookie保存起来。下一次再访问服务器时,客户端浏览器把请求的网址连同该Cookie一同提交给服务器,服务器验证该Cookie,就能辨别该用户。作

2017-07-07 15:35:49 445

原创 压缩、解压缩.zip,.rar,.7z格式java工具类

最近工作中需要将压缩的图片上传,最后解压。这里结合网上的资源,写了一个解压的工具类,解压常见的.zip,.rar,.7z格式。新建一个maven工程吧,方便添加管理相应的jar包。 pom文件:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance

2017-07-03 10:57:57 3458 1

原创 c3p0参数的说明以及整合spring使用

准备需要的jar包,如下:这些jar包,我已经放到后面贴的源码里了,可自行下载。列出常用的c3p0参数的配置:<!-- c3p0连接池配置 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <!-- 用户名--> <property name="u

2017-06-12 11:32:29 1069

原创 solr联合多个字段进行检索(multivalued和copyfield的使用)

在实际工作中不仅仅对索引中的单个字段进行搜索。 比如book表中有id,name(标题),price,summary(摘要),content(内容),我们要找一本书的时候,查询关键字“平凡的世界”,需要从标题或者摘要或者内容里包含这个关键字时就算找到了。这就需要使用copyField和multiValue标签了。在schema.xml中将需要检索的字段,使用copyField拷贝到一个新的sear

2017-06-09 15:52:03 10246 5

原创 Solr对数据库中的CLOB字段建立索引的问题

对于oracl中的clob字段,solr建立索引时,如果没有作处理,否则会展示成这样。content>oracle.sql.CLOB@1723c20>      <dataSource type="JdbcDataSource" name="jdbc" driver="oracle.jdbc.driver.OracleDriver"

2017-06-09 15:10:39 3048 1

原创 Ehcache学习(二)整合spring

下面结合spring使用ehcache

2017-05-10 17:25:57 228

原创 Ehcache学习(一)基本使用

对于一个数据对象,我们首先存储在数据库中,如果有需要我们还可以存在缓存中,比如memcached,redis等缓存技术,当然还可以结合Ehcache使用,在我工作中接触的项目中就是这样使用的,对获取一个数据对象,先从Ehcache获取,如果没有获取到,再从memcache获取。 所以有必要对Ehcache的使用有一个认识: 使用Ehcache当然要引入Ehcache相关的jar包:(工程

2017-05-10 17:19:20 549

原创 二维码生成技术

常用的二维码生成的方法中有日本人写的QR和谷歌提供的zxing,生成的常见的方形的二维码 。 项目中用到的jar包,在博文下面的分析的项目源码中的lib目录下。可自行下载。 1.google提供的zxingimport java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import jav

2017-05-09 17:05:33 2381

arthas-boot.jar

alibaba开源jvm监控工具

2021-09-25

DCT下采样算法

超分辨率重建算法中 视频每帧图像的下采样

2014-08-20

hevc帧间预测

hevc 的帧间预测 里面的一些重要函数的代码

2014-04-26

空空如也

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

TA关注的人

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