自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Donny的专栏

分享知识,共同进步!

  • 博客(838)
  • 资源 (20)
  • 收藏
  • 关注

原创 最后一篇文章

各位朋友,此博客后续不再更新!后续转战到头条,我的头条号:IT技术大杂烩,欢迎各位关注1

2020-03-12 13:46:49 535

原创 ActiveMQ集群搭建

简述activemq提供了多种方式来保证activemq的可靠性。包括:纯Master/SlaveShared File System Master SlaveJDBC Master SlaveBroker clusters-静态Broker clusters-动态(基于组播,动态发现brokers)但单纯的使用上面的一种没法既达到高可用,同时有具有负载均衡的能力。生产环境集...

2019-08-19 09:41:43 1174

原创 ActiveMQ静态网络连接

前言使用静态网络连接(static networkConnector)可以将多个broker连接起来,作为一个集群对外提供服务。我们假定有amq1和amq2配置了静态网络连接,那么当一个消费者连接到amq2,当生产者发送消息到amq1时,amq2将会作为amq1的一个消费者,将消息转移到amq2,然后投递给连接到amq2的消费者;反之亦然。对于queue,由于一条消息只能被一个消费者消费,所以...

2019-08-19 09:38:46 724

原创 ActiveMQ目的地特性之组合目的地

从ActiveMQ1.1开始,支持一种被称为组合目标的技术。这允许使用单个虚拟的JMS目的地来表示一个JMS目的地的集合。例如,你可以使用组合目的地在一个操作中将消息发送到12个物理队列。或再一次操作中将消息发送到一个主题和一个队列。可以在创建目的地或将目的地注册到JNDI时,使用逗号分隔将多个目的地组合起来。比如:FOO.A,FOO.B,FOO.C表示3个不同的目的地。这可以与队列或...

2019-05-11 15:02:44 654

原创 ActiveMQ之消息分发策略

分发策略queue的分发策略可插拔的分发策略只适用于topic。queue的分发策略比较固定:轮询(默认)或按照严格顺序。同时我们也应该了解prefect的意义。ActiveMQ的prefetch缺省参数是针对处理大量消息时的高性能和高吞吐量而设置的,因此默认的prefect值很大,默认的分发策略会尽快尝试将预取缓冲区填满(prefetch buffers)。然而在有些情况下,例如只有少量...

2019-05-11 15:00:13 3320

原创 ActiveMQ处理积压的消息

如果消费者变为慢速消费者,那么后面可能会导致消息积压,导致生产者速度也变慢,甚至停止。我们可以配置消息的过期时间,并设置消息过期丢弃策略,以及使用死信队列来处理消息的积压。为持久化消息设置过期时间ActiveMQ提供了一个timeStampingBrokerPlugin插件,通过此插件,我们可以为持久化消息设置过期时间。参考:http://activemq.apache.org/timesta...

2019-05-11 14:58:01 6095 1

原创 ActiveMQ之订阅恢复策略

简介生产者在某个topic发送了多条消息后,这个时候非持久订阅者才订阅,那么它是不能获取之前生产者发送的信息的。或者,由于网络问题,非持久类型的消费者处于非活跃状态,无法接收到生产者发送的消息。使用消息恢复策略,可以解决上面的问题。ActiveMQ目前支持一个定时或固定大小的恢复缓冲区,在你连接到broker后,在一段时间内的消息会重新发送给订阅者。ActiveMQ提供的恢复策略Fixed...

2019-05-11 14:56:11 1973

原创 ActiveMQ之Prefect机制

简介ActiveMQ的设计目标是成为一个高性能的消息总线。这意味着使用SEDA架构可以异步执行尽可能多的工作。 为了有效利用网络资源,Broker利用“推送”模型向消费者发送消息。 这可确保消费者始终拥有准备处理的消息的本地缓冲区。 替代方案是让消费者明确地从Broker那里提取消息。 单独提取消息不是非常有效,并且会增加每个消息的延迟。但是,在不限制推送给消费者的消息数量的情况下,客户端的资...

2019-05-08 12:21:53 356

原创 ActiveMQ之慢消费者处理

简介慢消费者在非持久性主题上会出现问题,因为它们会强制broker为它们在内存保留旧消息。一旦填满,就会导致broker放慢生产者的速度,导致快的消费者也会变慢。目前,有一个策略可以让你配置broker除了prefect bufer之外还将为消费者保留的最大匹配的消息数。在达到此最大值后,当新消息进入时,旧消息将被丢弃。这将允许你在内存中保留当前消息并继续向慢消费者发送消息,但会丢弃旧消息。...

2019-05-08 12:18:26 3852

原创 ActiveMQ之定期清理离线的持久订阅者

概述通常,我们不希望系统中存在长时间离线的持久订阅者,因为Broker需要为它们保留它们订阅的topic的所有消息。而且随着时间的推移,将会导致达到存储限制,从而导致系统变慢。当然,你可以通过JConsole或Web Console等管理工具来手动取消不活跃的持久订阅者。但显然可以采取更多措施来帮助管理。过期消息一些应用程序发送的消息有一定的过期时间。如果这些消息存储在Broker上供离线...

2019-05-08 12:16:45 2621

原创 ActiveMQ目的地之目的地选项

简介目的地选项(Destination Options)是一种向JMS使用者提供扩展配置选项的方法,而无需扩展JMS API。 使用创建使用者的目标名称中的URL查询语法对选项进行编码。Consumer Options选项名默认值描述consumer.dispatchAsynctruebroker是否应该异步的向Consumer发送消息consumer.exc...

2019-05-08 12:15:14 540

原创 ActiveMQ的消息重发与死信处理

概述在发生以下情形时,消息会给重发给客户端:使用了一个事务性的会话且调用了rollback()方法。在调用commit()方法前一个事务性的会话被关闭了。一个会话使用CLIENT_ACKNOWLEDGE的ACK模式,且调用了Session.recover()方法。一个客户端连接超时(可能正被执行的代码执行的时间超过配置的超时时间)。客户端可以通过ActiveMQConnection...

2019-04-09 17:54:26 1984

原创 ActiveMQ之消息选择器(Message Selectors)

JMS Selectors用在获取消息的时候,可以基于消息属性和Xpath语法对消息进行过滤。JMS Selectors由SQL92语义定义。以下是个Selectors的例子: consumer = session.createConsumer(destination, "JMSType = 'car' AND weight > 2500");1:JMS Selectors表达式中,...

2019-04-09 17:53:50 1428

原创 ActiveMQ顺序消费消息+消息分组

简介Queue中的消息是按照顺序发送给Consumers的。然而,当你有多个Consumer同时从相同的Queue提取消息时,顺序将不能得到保证。因为这些消息时被多个线程并发的处理。但是,有时候保证消息的顺序是很重要的。例如,你可能不希望插入订单操作结束之前执行更新订单的操作。那么我们可以通过Exclusive Consumer和Message Groups来实现这一目的。独有消费者从Act...

2019-04-09 17:53:07 5968 7

原创 Memcached缓存介绍

Memcached简介Memcached是一个高性能的服务器内存缓存软件。在早期版本的Memcached使用的是alloc来分配内存,存在内存碎片,在新版本的Memcached采用了Slab Allocator来分配内存。在MC启动时会要求制定一块内存区域,然后会划分为多个Slab,每个Slab默认大小为1M,可以指定。每个Slab又包含多个truck,每个Slab的truck大小不同,但同一个...

2019-04-02 10:11:39 2477

原创 maven私服(nexus)搭建

一、为何要搭建maven私服1.有的公司开发电脑没法直接连外网,下载不了依赖;可以通过私服(私服服务器可以连接),开发电脑连接私服服务器下载依赖。2.项目协作。某个项目包含多个模块,开发人员A将模块打包提交到私服,其他人从私服获取该模块的依赖。二、使用私服与不使用的区别1.不使用私服2.使用私服.三、下载和安装nexus1.从https://www.sonatype.com/d...

2019-04-02 10:05:45 596

原创 Chrome系浏览器显示完整地址

在浏览器输入chrome://flags/回车,找到Omnibox UI Hide Steady-State URL Scheme and Trivial Subdomains,设置为Disabled,然后重启浏览器。如果回车之后变成了搜索,则复制,然后在浏览器输入栏鼠标右键,选择粘贴并转到即可。...

2018-09-25 09:31:39 7544 1

原创 解决idea卡顿问题

idea非常好用,但比较吃内存。建议内存至少8G。通过下面的设置来提升idea的速度。vm参数设置设置idea.exe.vmoptions/idea64.exe.vmoptions的vm参数-Xms2000m-Xmx2000m-Xverify:none-Xverify:none 关闭Java字节码验证,从而加快了类装入的速度,并使得在仅为验证目的而启动的过程中无需装入类,缩短了启动时...

2018-09-21 16:31:19 10308

原创 zookeeper客户端curator使用

curator简介curator是Netflix开源的一个zookeeper客户端,在原生API接口上进行了包装,解决了很多ZooKeeper客户端非常底层的细节开发。同时内部实现了诸如Session超时重连,Watcher反复注册、分布式计数器、分布式锁等功能,实现了Fluent风格的API接口,是使用最广泛的zookeeper客户端之一。Curator使用的链式编程风格。如果只需要zooke...

2018-09-21 16:30:53 2331

原创 zookeeper安装与配置

介绍ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现。参考:http://blog.csdn.net/u013068377/article/details/52620647http://blog.csdn.net/xuxiuning/article/details/51218941zookeeper官方文档:https://zo...

2018-09-21 16:30:17 462

原创 zookeeper客户端api操作

这里记录zookeeper java客户端api的使用。客户端创建Zookeeper实例,然后调用这个类提供的方法与zookeeper服务器进行交互。Zookeeper的构造函数有如下4种:ZooKeeper(connectString, sessionTimeout, watcher);ZooKeeper(connectString, sessionTimeout, watcher,ca...

2018-09-21 16:29:38 402

原创 xshell评估过期或免费使用

xshell出现下面的评估过期的错误解决办法:进入https://www.netsarang.com/download/free_license.html页面,点击“Download”,这个页面是Free License的。然后填入下面的个人信息(邮箱要正确)然后会给你发送一封邮件,进入邮件点击链接下载软件,进行安装。安装的即为Free for Home/School版本,就可以...

2018-09-21 16:27:34 1420

原创 通过java反射实现简易的springmvc

通过java反射实现的简易的spring ioc和springmvc的一部分功能,很多东西没有考虑进去,只是提供一种思路。简易实现spring的ioc和springmvc.思路:模仿SpringMVC定义如下几个注解。@Service:Service层注解;@Controller:Controller注解;@Autowired:自动注入依赖;@RequestMapping:定义请求的...

2018-09-21 16:27:00 581

原创 windows上使用Nginx+tomcat做负载均衡

Nginx作为反向代理服务器,可以对Web服务器提供加速,并且具有负载均衡的功能。参考:http://blog.csdn.net/cclovett/article/details/26377269本例使用Nginx在2个Tomcat做负载均衡,并做了资源分离。即静态资源(js,css,图片)给nginx,JSP等请求分发给tomcat处理。1)Nginx的安装和启动这里使用的Nginx版本...

2018-09-21 16:26:08 2984

原创 Windows开启FTP服务

1.开启FTP服务“控制面板”-》“程序和功能”-》“打开或关闭Windows功能”,在弹出的窗口中选择“Internet信息服务”,然后“确定”,如图:“计算机”-》右键-》“管理”2.FTP共享文件夹然后点“完成”。ftp://你的IP即可访问。如图:...

2018-09-21 16:25:27 6715

原创 Win10使用360WIFI抓手机APP网络请求

下载Fiddlerhttps://www.telerik.com/download/fiddler/fiddler4操作步骤:1.打开Fiddler,Tools-Fiddler Options-Connections,勾选Allow remote computers to connect,端口为8888,保存选项后重启Fiddler;2.在电脑上查看360wifi无线网卡IP地址,运行命令...

2018-09-21 16:24:34 1071

原创 web安全通信之JWT简介

jwt简介JWT是JSON Web Token的简称,它是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。和Cookie-Session的模式不同,JWT使用Token替换了SessionID的资源访问和状态保持。jwt的组成1.Header: 标题包含了令牌的元数据,并且在最小包含签名和/或加密算法的类型2.Claims: Claims包含您想要签署...

2018-09-21 16:23:25 635

原创 Web推送技术之comet4j使用

Web推送技术之comet4j使用参考:[comet4j开发指南]、[comet4j使用Demo]、[“服务器推”技术之使用HTTP长轮询的Comet]JAR包为comet4j-tomcat7.jar,可以百度搜索,从CSDN下载。还有一个js文件comet4j.js,同样可以从CSDN下载。使用参考上面2篇文章就OK了,使用还比较简单。comet4j-tomcat7.jar适用tomc...

2018-09-20 09:56:48 281

原创 web工程非Spring管理的Bean使用Spring管理的Bean

某个类的属性在每次构建对象时传入,且属性不是固定的,就没法使用spring管理它。但这个类有可能应用其他被spring管理的类。那么既然是web工程,我们可以创建一个ServletContextListener,然后在web.xml中配置该监听器即可。public class InitDataListener implements ServletContextListener { ...

2018-09-20 09:55:02 822

原创 VMware虚拟机安装

准备VMWare14和CentOS系统镜像文件。安装VMWare一路next直到完成,可能花费时间较长。安装虚拟机1.选择“文件”->"新建虚拟机“->“典型”->“稍后安装操作系统”->”Linux“->”CentOS 6 64位“(这里根据你准备的CentOS版本选择)->虚拟机的名字(随便填)->最大磁盘大小(就默认20G即可)->”...

2018-09-20 09:52:50 246

原创 对视频播放url进行Blob加密

在知乎上看到一个视频,准备下载下来,结果下载不了,复制地址发现是blob://xxx。知乎帖子:https://www.zhihu.com/question/62753680/answer/382455062。百度发现是对视频地址进行了blob加密,文章地址:https://blog.csdn.net/qq_36688143/article/details/79162013。下面是使用Java...

2018-09-20 09:51:30 9291 1

原创 使用socket模拟tomcat实现静态资源处理

步骤:1.服务端使用ServerSocket,监听指定的端口。2.调用ServerSocket的accept方法接收客户端连接,得到Socket对象。3.根据Socket对象的getInputStream()方法得到输入流,从而拿到浏览器发送的http请求的基本信息。GET /htmlfiles/test2.jsp HTTP/1.1Host: localhost:9191Connect...

2018-09-20 09:49:57 698

原创 使用NIO提升性能

Buffer简介在JDK1.4之前,我们进行文件/流的读写都是通过java.io包的相关类来进行操作,虽然操作简便,但是性能较差。在JDK1.4引入了java.nio包,提供了相关的通道(Channel)和缓冲(Buffer)来操作,极大的提升了读写性能。通道是双向的,既可用于读也可用于写数据。它从缓冲读取或写入数据到缓冲区。基本每个java的基本类型都有一个对应的Buffer,比如byte...

2018-09-20 09:48:27 289

原创 使用Metrics+Influxdb+Grafana监控系统并图表展示

Metrics即度量的意思,我们对系统做监控、统计等就需要用到Metrics。metrics地址:https://github.com/dropwizard/metrics。文档地址:https://metrics.dropwizard.io/4.0.0/。本文使用的metrics-core和metrics-influxdb版本如下:metrics-core=4.0.0metrics-...

2018-09-20 09:46:19 4798 1

原创 使用Jenkins配置+Maven的自动化构建

jenkins的搭建参考前一篇文章:Linux下安装和配置jenkins.本篇文章介绍如何通过jenkins+maven自动化构建Web应用。git插件安装与配置如果git没有安装或配置不当,在新建任务时,会产生下面的问题。问题:1.jenkins Error performing command: git ls-remote -h解决:查看jenkins已经安装了git插件,但...

2018-09-20 09:41:40 514

原创 使用jstack排查系统问题

jstack介绍jstack是java虚拟机自带的一种堆栈跟踪工具,用于生成java虚拟机当前时刻的线程快照。生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。 线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。 如果java程序崩溃生成core文件,jstack...

2018-09-20 09:39:27 1234

原创 tess4j验证码识别

tess4j的安装和使用参考:https://www.cnblogs.com/cmyxn/p/6993422.htmltess4j提高识别率1.对称近邻均值滤波参考:http://blog.csdn.net/fangbinwei93/article/details/505624492.指定config为digits,并修改tessdata\configs\digits文件,将白名单中设置...

2018-09-20 09:31:28 2591 1

原创 将项目迁移到gitlab

1.在gitlab上建立project,得到一个git地址,如:http://192.168.74.90/xxx_sportSnatch/bt_receive.git。在gitlib上可以看到2种,一种是ssh,一种是http的。我们后面使用git bash操作,使用http方式。2.忽略不需要提交的文件这里以idea为例,忽略target目录和.iml文件。在bt_receive项目根目...

2018-09-19 10:14:55 3029

原创 Sublime-Text3使用

Sublime Text是一款神奇的编辑器,号称程序员必备神器!。以下简称ST。ST是一款收费软件,但可以免费无限制无限期的使用,只是偶尔会提示你。ST的一些说明:http://www.iplaysoft.com/sublimetext.html.下载与安装首先,从Sublime Text官网下载ST3。下载后直接双击安装即可。字体设置点击“Preferences->Settin...

2018-09-19 10:13:33 416

原创 spring单元测试

环境搭建参考《SpringDataJpa基本使用》。DAO测试新建一个测试基类,后续所有的测试类继承该类@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = "classpath:spring.xml")@TransactionConfiguration(transactionManager =...

2018-09-19 10:10:56 1206

java极速文件搜索工具

Java极速文件搜索工具,支持文件名及扩展名快速查找。比windows自带的快很多。

2013-06-13

Java读取大文件的处理

Java读取大文件的处理

2013-05-12

Java加密解密之非对称加密

Java加密解密之非对称加密

2013-05-12

Java设置打开或保存文件的对话框的文件类型选择

java打开或保存文件时,只显示相应文件类型的文件。

2013-05-12

Java几种常见的排序方法

Java中几种比较常见的排序方法,像冒泡、快速排序、插入排序登。

2013-05-12

使用数字签名验证文件是否被修改

使用数字签名验证文件是否被修改. 基本原理: 发送方: 1. 生成公钥和私钥并保存至文件public.key和private.key。 2. 根据要发送的文件内容生成签名并写入文件signature.dtx。 3. 将公钥文件、签名文件和要发送的文件一起发送给接受方。 接受方: 1. 读取发送方发送的公钥文件 2. 读取发送方发送的签名文件。 3. 读取发送方发送的文件。 4. 根据发送方发送的公钥对发送方发送的文件进行签名。 5. 对比生成的签名和发送方发送的签名是否一致。

2013-05-03

Java获取Oracle存储过程返回的Cursor

Java获取Oracle存储过程返回的Cursor,使用odbc6

2013-04-28

javamail发邮件(带附件)

javamail发送邮件,带附件。发邮件可以看看。

2013-04-28

Ibatis调用Oracle存储过程返回自定义类型

Ibatis调用Oracle存储过程,返回自定义的类型。

2013-04-28

Ext开发总结

Ext开发,基于Ext2.3,适合初学者。

2013-04-28

java socket多人聊天(文字+图片+文件传输)

可以实现群聊,私聊,文本,图片聊天。可以发送和接收文件。支持一次同时7个文件发送/接收。接收和发送文件显示发送和接收进度。

2013-01-19

结合struts2.3.4+jQuery+mysql+json

结合struts2.3.4+jQuery+mysql+json开发的一个小例子。

2012-12-09

ibatis+spring之Ajax应用-根据车牌查询所在省

ibatis+spring之Ajax应用-根据车牌查询所在省

2011-11-21

spring3.0 mvc demo

Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。

2011-09-17

spring security3.0 demo

Spring Security 的前身是 Acegi Security ,是 Spring 项目组中用来提供安全认证服务的框架。

2011-09-17

displayTag的小例子

Display Tag Lib是一个标签库,用来处理jsp网页上的Table,功能非常强,可以对的Table进行分页、数据导出、分组、对列排序等等,能够大大减少代码量。

2011-09-17

hsqldb demo

hsqldb 的小例子。当你的电脑上没有安装数据库,又需要使用数据库时很实用。

2011-09-14

BIRT报表开发指南

BIRT报表开发指南BIRT报表开发指南

2011-08-03

android开发的一些小例子

Anroid开发的一些小例子。初学者看看。

2011-08-03

dwr初步,DWR的简单实用。

dwr初步,DWR的简单实用。没什么好说的。

2011-08-03

空空如也

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

TA关注的人

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