- 博客(838)
- 资源 (20)
- 收藏
- 关注
原创 ActiveMQ集群搭建
简述activemq提供了多种方式来保证activemq的可靠性。包括:纯Master/SlaveShared File System Master SlaveJDBC Master SlaveBroker clusters-静态Broker clusters-动态(基于组播,动态发现brokers)但单纯的使用上面的一种没法既达到高可用,同时有具有负载均衡的能力。生产环境集...
2019-08-19 09:41:43
1267
原创 ActiveMQ静态网络连接
前言使用静态网络连接(static networkConnector)可以将多个broker连接起来,作为一个集群对外提供服务。我们假定有amq1和amq2配置了静态网络连接,那么当一个消费者连接到amq2,当生产者发送消息到amq1时,amq2将会作为amq1的一个消费者,将消息转移到amq2,然后投递给连接到amq2的消费者;反之亦然。对于queue,由于一条消息只能被一个消费者消费,所以...
2019-08-19 09:38:46
805
原创 ActiveMQ目的地特性之组合目的地
从ActiveMQ1.1开始,支持一种被称为组合目标的技术。这允许使用单个虚拟的JMS目的地来表示一个JMS目的地的集合。例如,你可以使用组合目的地在一个操作中将消息发送到12个物理队列。或再一次操作中将消息发送到一个主题和一个队列。可以在创建目的地或将目的地注册到JNDI时,使用逗号分隔将多个目的地组合起来。比如:FOO.A,FOO.B,FOO.C表示3个不同的目的地。这可以与队列或...
2019-05-11 15:02:44
701
原创 ActiveMQ之消息分发策略
分发策略queue的分发策略可插拔的分发策略只适用于topic。queue的分发策略比较固定:轮询(默认)或按照严格顺序。同时我们也应该了解prefect的意义。ActiveMQ的prefetch缺省参数是针对处理大量消息时的高性能和高吞吐量而设置的,因此默认的prefect值很大,默认的分发策略会尽快尝试将预取缓冲区填满(prefetch buffers)。然而在有些情况下,例如只有少量...
2019-05-11 15:00:13
3406
原创 ActiveMQ处理积压的消息
如果消费者变为慢速消费者,那么后面可能会导致消息积压,导致生产者速度也变慢,甚至停止。我们可以配置消息的过期时间,并设置消息过期丢弃策略,以及使用死信队列来处理消息的积压。为持久化消息设置过期时间ActiveMQ提供了一个timeStampingBrokerPlugin插件,通过此插件,我们可以为持久化消息设置过期时间。参考:http://activemq.apache.org/timesta...
2019-05-11 14:58:01
6341
1
原创 ActiveMQ之订阅恢复策略
简介生产者在某个topic发送了多条消息后,这个时候非持久订阅者才订阅,那么它是不能获取之前生产者发送的信息的。或者,由于网络问题,非持久类型的消费者处于非活跃状态,无法接收到生产者发送的消息。使用消息恢复策略,可以解决上面的问题。ActiveMQ目前支持一个定时或固定大小的恢复缓冲区,在你连接到broker后,在一段时间内的消息会重新发送给订阅者。ActiveMQ提供的恢复策略Fixed...
2019-05-11 14:56:11
2052
原创 ActiveMQ之Prefect机制
简介ActiveMQ的设计目标是成为一个高性能的消息总线。这意味着使用SEDA架构可以异步执行尽可能多的工作。 为了有效利用网络资源,Broker利用“推送”模型向消费者发送消息。 这可确保消费者始终拥有准备处理的消息的本地缓冲区。 替代方案是让消费者明确地从Broker那里提取消息。 单独提取消息不是非常有效,并且会增加每个消息的延迟。但是,在不限制推送给消费者的消息数量的情况下,客户端的资...
2019-05-08 12:21:53
398
原创 ActiveMQ之慢消费者处理
简介慢消费者在非持久性主题上会出现问题,因为它们会强制broker为它们在内存保留旧消息。一旦填满,就会导致broker放慢生产者的速度,导致快的消费者也会变慢。目前,有一个策略可以让你配置broker除了prefect bufer之外还将为消费者保留的最大匹配的消息数。在达到此最大值后,当新消息进入时,旧消息将被丢弃。这将允许你在内存中保留当前消息并继续向慢消费者发送消息,但会丢弃旧消息。...
2019-05-08 12:18:26
4035
原创 ActiveMQ之定期清理离线的持久订阅者
概述通常,我们不希望系统中存在长时间离线的持久订阅者,因为Broker需要为它们保留它们订阅的topic的所有消息。而且随着时间的推移,将会导致达到存储限制,从而导致系统变慢。当然,你可以通过JConsole或Web Console等管理工具来手动取消不活跃的持久订阅者。但显然可以采取更多措施来帮助管理。过期消息一些应用程序发送的消息有一定的过期时间。如果这些消息存储在Broker上供离线...
2019-05-08 12:16:45
2767
原创 ActiveMQ目的地之目的地选项
简介目的地选项(Destination Options)是一种向JMS使用者提供扩展配置选项的方法,而无需扩展JMS API。 使用创建使用者的目标名称中的URL查询语法对选项进行编码。Consumer Options选项名默认值描述consumer.dispatchAsynctruebroker是否应该异步的向Consumer发送消息consumer.exc...
2019-05-08 12:15:14
590
原创 ActiveMQ的消息重发与死信处理
概述在发生以下情形时,消息会给重发给客户端:使用了一个事务性的会话且调用了rollback()方法。在调用commit()方法前一个事务性的会话被关闭了。一个会话使用CLIENT_ACKNOWLEDGE的ACK模式,且调用了Session.recover()方法。一个客户端连接超时(可能正被执行的代码执行的时间超过配置的超时时间)。客户端可以通过ActiveMQConnection...
2019-04-09 17:54:26
2074
原创 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
1540
原创 ActiveMQ顺序消费消息+消息分组
简介Queue中的消息是按照顺序发送给Consumers的。然而,当你有多个Consumer同时从相同的Queue提取消息时,顺序将不能得到保证。因为这些消息时被多个线程并发的处理。但是,有时候保证消息的顺序是很重要的。例如,你可能不希望插入订单操作结束之前执行更新订单的操作。那么我们可以通过Exclusive Consumer和Message Groups来实现这一目的。独有消费者从Act...
2019-04-09 17:53:07
6077
7
原创 Memcached缓存介绍
Memcached简介Memcached是一个高性能的服务器内存缓存软件。在早期版本的Memcached使用的是alloc来分配内存,存在内存碎片,在新版本的Memcached采用了Slab Allocator来分配内存。在MC启动时会要求制定一块内存区域,然后会划分为多个Slab,每个Slab默认大小为1M,可以指定。每个Slab又包含多个truck,每个Slab的truck大小不同,但同一个...
2019-04-02 10:11:39
2653
原创 maven私服(nexus)搭建
一、为何要搭建maven私服1.有的公司开发电脑没法直接连外网,下载不了依赖;可以通过私服(私服服务器可以连接),开发电脑连接私服服务器下载依赖。2.项目协作。某个项目包含多个模块,开发人员A将模块打包提交到私服,其他人从私服获取该模块的依赖。二、使用私服与不使用的区别1.不使用私服2.使用私服.三、下载和安装nexus1.从https://www.sonatype.com/d...
2019-04-02 10:05:45
646
原创 Chrome系浏览器显示完整地址
在浏览器输入chrome://flags/回车,找到Omnibox UI Hide Steady-State URL Scheme and Trivial Subdomains,设置为Disabled,然后重启浏览器。如果回车之后变成了搜索,则复制,然后在浏览器输入栏鼠标右键,选择粘贴并转到即可。...
2018-09-25 09:31:39
7653
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
10545
原创 zookeeper客户端curator使用
curator简介curator是Netflix开源的一个zookeeper客户端,在原生API接口上进行了包装,解决了很多ZooKeeper客户端非常底层的细节开发。同时内部实现了诸如Session超时重连,Watcher反复注册、分布式计数器、分布式锁等功能,实现了Fluent风格的API接口,是使用最广泛的zookeeper客户端之一。Curator使用的链式编程风格。如果只需要zooke...
2018-09-21 16:30:53
2466
原创 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
493
原创 zookeeper客户端api操作
这里记录zookeeper java客户端api的使用。客户端创建Zookeeper实例,然后调用这个类提供的方法与zookeeper服务器进行交互。Zookeeper的构造函数有如下4种:ZooKeeper(connectString, sessionTimeout, watcher);ZooKeeper(connectString, sessionTimeout, watcher,ca...
2018-09-21 16:29:38
455
原创 xshell评估过期或免费使用
xshell出现下面的评估过期的错误解决办法:进入https://www.netsarang.com/download/free_license.html页面,点击“Download”,这个页面是Free License的。然后填入下面的个人信息(邮箱要正确)然后会给你发送一封邮件,进入邮件点击链接下载软件,进行安装。安装的即为Free for Home/School版本,就可以...
2018-09-21 16:27:34
1602
原创 通过java反射实现简易的springmvc
通过java反射实现的简易的spring ioc和springmvc的一部分功能,很多东西没有考虑进去,只是提供一种思路。简易实现spring的ioc和springmvc.思路:模仿SpringMVC定义如下几个注解。@Service:Service层注解;@Controller:Controller注解;@Autowired:自动注入依赖;@RequestMapping:定义请求的...
2018-09-21 16:27:00
623
原创 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
3017
原创 Windows开启FTP服务
1.开启FTP服务“控制面板”-》“程序和功能”-》“打开或关闭Windows功能”,在弹出的窗口中选择“Internet信息服务”,然后“确定”,如图:“计算机”-》右键-》“管理”2.FTP共享文件夹然后点“完成”。ftp://你的IP即可访问。如图:...
2018-09-21 16:25:27
7065
原创 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
1141
原创 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
704
原创 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
345
原创 web工程非Spring管理的Bean使用Spring管理的Bean
某个类的属性在每次构建对象时传入,且属性不是固定的,就没法使用spring管理它。但这个类有可能应用其他被spring管理的类。那么既然是web工程,我们可以创建一个ServletContextListener,然后在web.xml中配置该监听器即可。public class InitDataListener implements ServletContextListener { ...
2018-09-20 09:55:02
883
原创 VMware虚拟机安装
准备VMWare14和CentOS系统镜像文件。安装VMWare一路next直到完成,可能花费时间较长。安装虚拟机1.选择“文件”->"新建虚拟机“->“典型”->“稍后安装操作系统”->”Linux“->”CentOS 6 64位“(这里根据你准备的CentOS版本选择)->虚拟机的名字(随便填)->最大磁盘大小(就默认20G即可)->”...
2018-09-20 09:52:50
282
原创 对视频播放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
9470
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
839
原创 使用NIO提升性能
Buffer简介在JDK1.4之前,我们进行文件/流的读写都是通过java.io包的相关类来进行操作,虽然操作简便,但是性能较差。在JDK1.4引入了java.nio包,提供了相关的通道(Channel)和缓冲(Buffer)来操作,极大的提升了读写性能。通道是双向的,既可用于读也可用于写数据。它从缓冲读取或写入数据到缓冲区。基本每个java的基本类型都有一个对应的Buffer,比如byte...
2018-09-20 09:48:27
329
原创 使用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
5219
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
556
原创 使用jstack排查系统问题
jstack介绍jstack是java虚拟机自带的一种堆栈跟踪工具,用于生成java虚拟机当前时刻的线程快照。生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。 线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。 如果java程序崩溃生成core文件,jstack...
2018-09-20 09:39:27
1283
原创 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
2754
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
3079
原创 Sublime-Text3使用
Sublime Text是一款神奇的编辑器,号称程序员必备神器!。以下简称ST。ST是一款收费软件,但可以免费无限制无限期的使用,只是偶尔会提示你。ST的一些说明:http://www.iplaysoft.com/sublimetext.html.下载与安装首先,从Sublime Text官网下载ST3。下载后直接双击安装即可。字体设置点击“Preferences->Settin...
2018-09-19 10:13:33
474
原创 spring单元测试
环境搭建参考《SpringDataJpa基本使用》。DAO测试新建一个测试基类,后续所有的测试类继承该类@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = "classpath:spring.xml")@TransactionConfiguration(transactionManager =...
2018-09-19 10:10:56
1284
使用数字签名验证文件是否被修改
2013-05-03
java socket多人聊天(文字+图片+文件传输)
2013-01-19
spring3.0 mvc demo
2011-09-17
displayTag的小例子
2011-09-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人