自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (6)
  • 收藏
  • 关注

原创 010_JMS消息选择器

1. 表达式定义的一些重要的规则1.1. 表达式的操作符不区分大小写, 但通常约定为大写。1.2. 表达式的变量名跟普通Java变量名的命名规则一致, 区分大小写, 如articleType和articletype是两个不同的变量。1.3. 表达式的变量名必须是标准的消息头名或者已存在的属性名, 否则对应的值会为NULL。1.4. 表达式的值不会进行类型转化, 即假设有message.setStringProperty("version","1"); 那么表达式"version=1"对于m.

2021-03-29 16:17:07 109

原创 009_JMS中的事务

1. 本地事务 1.1. 在一个JMS客户端, 可以使用本地事务来组合消息的发送和接收。JMS Session接口提供了commit和rollback方法。事务提交意味着生产的所有消息被发送, 消费的所有消息被确认; 事务回滚意味着生产的所有消息被销毁, 消费的所有消息被恢复并重新提交, 除非它们已经过期。 1.2. 事务性的会话总是牵涉到事务处理中, commit或rollback方法一旦被调用, 一个事务就结束了, 而另一个事务被开始。关闭事务性会话将回滚其中的事务。 ...

2021-03-29 16:14:48 316

原创 008_Queue消息模式发送映射消息

1. 新建一个名为JMSActiveMQMapMessage的Java项目, 同时拷入相关jar包2. 编辑QueueMapMessageProducer.javapackage com.jms.activemq.qmm;import javax.jms.JMSException;import javax.jms.MapMessage;import javax.jms.Queue;import javax.jms.QueueConnection;import javax.jms.Q

2021-03-28 22:33:36 136

原创 007_JMS中的持久订阅

1. 持久订阅时, 客户端需要首先向JMS提供者注册一个表面自己身份的id(clientId)。这样当咱们这个客户端处于离线时, JMS提供者会为这个客户端保存所有发送到主题的消息。当客户端再次连接到JMS提供者时, JMS提供者根据这个客户端id, 把消息发送给它。2. 创建持久订阅必须设置一个客户端id, 不然会报如下错误3. 设置客户端id3.1. 设置客户端id要紧跟在创建连接之后// 1. 创建一个连接工厂TopicConnectionFactory cf = new Ac

2021-03-28 22:31:14 465

原创 006_Topic消息模式发送对象消息

1. 新建一个名为JMSActiveMQObjectMessage的Java项目, 同时拷入相关jar包2. 编辑User.javapackage com.jms.activemq.tom;import java.io.Serializable;public class User implements Serializable { private static final long serialVersionUID = 1L; private String userName;

2021-03-28 22:26:45 142

原创 005_Queue消息模式发送字节消息

1. 新建一个名为JMSActiveMQBytesMessage的Java项目, 同时拷入相关jar包2. 编辑QueueBytesMessageProducer.javapackage com.jms.activemq.qbm;import javax.jms.BytesMessage;import javax.jms.JMSException;import javax.jms.Queue;import javax.jms.QueueConnection;import javax

2021-03-28 22:23:41 139

原创 004_Queue消息模式发送文本消息

1. 新建一个名为JMSActiveMQTextMessage的Java项目, 同时拷入相关jar包2. 编辑QueueTextMessageProducer.javapackage com.jmsapp.qtm;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.Destination;import javax.jms.JMSException;import javax.j

2021-03-28 22:18:58 182

原创 003_ActiveMQ管理后台

1. Apache ActiveMQ是最流行的开源、多协议、基于Java的消息传递服务。ActiveMQ是一个完全支持JMS1.1和J2EE1.4规范的JMS Provider实现, 它非常快速, 支持多种语言(C、C++、Python、.Net等)的客户端和协议, 而且可以非常容易的嵌入到企业的应用环境中, 并有许多高级功能。2. Apache ActiveMQ官方网址: http://activemq.apache.org/3. 目前Apache ActiveMQ有2个版本ActiveMQ

2021-03-28 22:15:12 1395

原创 002_JMS

1. JMS即Java消息服务(Java Message Service)应用程序接口, 是一个Java平台中关于面向消息中间件(Message Oriented Middleware)的API, 用于在两个应用程序之间或分布式系统中发送消息, 进行异步通信。2. JMS是一种与厂商无关的API, 用来访问收发系统消息, 它类似于JDBC(Java Database Connectivity)。这里JDBC是可以用来访问许多不同关系数据库的API, 而JMS则提供同样与厂商无关的访问方法, 以访问消息收

2021-03-26 21:56:01 143

原创 001_消息中间件

1. 消息中间件是基于队列与消息传递技术, 在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统。2. 消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流, 并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型, 它可以在分布式环境下扩展进程间的通信。3. 消息中间件适用于需要可靠的数据传送的分布式环境。采用消息中间件机制的系统中, 不同的对象之间通过传递消息来激活对方的事件, 完成相应的操作。发送者将消息发送给消息服务器, 消息服务器将消息存放在若干队列中,

2021-03-26 20:39:17 96

原创 012_logback中的DBAppender

1. DBAppender把记录事件写入数据库的三张表。三张表分别是logging_event、logging_event_property和logging_event_exception。在使用DBAppender之前, 这三张表必须已经被创建。Logback提供创建这些表的SQL脚本, 位于logback-classic/src/main/java/ch/qos/logback/classic/db/script目录, 对各个流行数据库分别有一个脚本。如果没有你想用的数据库的脚本, 那就按照现有的脚本自

2021-03-21 22:46:53 1091

原创 011_logback中的SMTPAppender

1. SMTPAppender在固定大小的缓冲里积累记录时间, 当用户指定的事件发生后, 就通过email发出这些事件。默认情况下, email发送是由级别为ERROR或更高级别的记录事件触发的。2. SMTPAppender的属性如下3. SMTPAppender依赖JavaMail API, 在JavaMail API 1.4版下通过测试(高版本的JavaMail暂时不支持)。4. 事件的触发4.1.如果未指定选项"Evaluator", 则SMTPAppender被默认分配一个..

2021-03-21 12:35:27 1293 3

原创 010_logback中的SocketAppender

1. SocketAppender被设计为通过序列化ILoggingEvent实例把记录输出到远程实体。被序列化的事件的真实类型是LoggingEventVO, 它实现了ILoggingEvent接口。尽管如此, 就记录事件而言, 远程记录仍然是无损的。在接收和反序列化后, 事件像是从本地产生的一样被记录。运行在不同机器上的多个SocketAppender实例可以把各自的记录输出到一个格式固定的中央记录服务器。2. SocketAppender不关联layout, 因为它把序列化的事件发送到远程服务器。

2021-03-21 11:50:22 1434 1

原创 009_logback本地Appender

一. Appender接口1. 什么是Appender?1.1. Appender是负责写记录事件的组件。Appender必须实现接口"ch.qos.logback.core.Appender"。2. Appender接口的重要方法3. Appender接口里的多数方法都是getter和setting。值得注意的是doAppend()方法, 它唯一的参数是类型E的对象。类型E的实际类型视logback模块的不同而不同。在logback-classic模块里, E可能是"ILoggingE

2021-03-21 11:27:38 427

原创 016_Spring中电子邮件

1. Spring提供了一个实用的发送电子邮件库, 它为使用者屏蔽了邮件系统的底层细节和客户端的底层资源处理。2. 依赖库: 使用Spring框架的邮件功能需要将JavaMail的Jar包添加到依赖中。3. Spring邮件相关功能在spring-context-support-4.2.4.RELEASE.jar下的org.springframework.mail包中4. 其中MailSender是发送邮件的核心接口, JavaMailSenderImpl是核心接口的重要实现类5.

2021-03-20 01:04:02 718 1

原创 015_JavaMail

1. 邮件服务器1.1. 类似于web服务器(如Tomcat)、数据库服务器(如MySql), 把一台邮件服务器端软件放在网络上, 即可供广大网络用户使用。1.2. 类似于邮局, 用户发邮件时, 邮件服务器处理, 再投递给相应的邮箱地址。1.3. 比如: 有sina、sohu、163、qq等等邮件服务器。2. 电子邮箱: 邮件服务器中的账户, 服务器会为每个邮箱账户分配地址和空间。3. 邮件收发协议3.1. SMTP(发送邮件协议, 默认端口25)。3.2. POP3(收取邮件协

2021-03-19 22:32:30 307

原创 016_logback中的Encoder

1. 什么是encoder?1.1. Encoder负责两件事, 一是把事件转换为字节数组, 二是把字节数组写入输出流。在logback 0.9.19版之前没有encoder。在之前的版本里, 多数appender依靠layout来把事件转换成字符串并用java.io.Writer把字符串输出。在之前的版本里, 用户需要在FileAppender里嵌入一个PatternLayout。而从0.9.19版开始, FileAppender和其子类使用encoder, 不接受layout。2. 为什么变了.

2021-03-19 22:22:04 1110

原创 007_logback配置

1. Logback采取下面的步骤进行自我配置1.1. 尝试在classpath下查找文件logback-test.xml;1.2. 尝试在classpath下查找文件logback.groovy;1.3. 如果文件不存在, 则查找文件logback.xml;1.4. 如果两个文件都不存在, logback用BasicConfigurator自动对自己进行配置, 这会导致记录输出到控制台。最后一步是为了在缺少配置文件时提供默认(但基本的)记录功能。2. 自动配置 2.1. 假设配置.

2021-03-18 10:21:05 213

原创 006_logback体系结构

1. 获取Logger1.1. 用同一名字调用LoggerFactory.getLogger方法所得到的永远都是同一个logger对象的引用。1.2. x和y指向同一个logger对象。Logger x = LoggerFactory.getLogger("wombat"); Logger y = LoggerFactory.getLogger("wombat"); 1.3. Logback简化了logger命名, 方法是在每个类里初始化logger, 以类的全限定名作为logger名。

2021-03-16 17:35:09 206

原创 005_logback介绍

1. 什么是logback 1.1. Logback由log4j的创立者创始人设计的又一个开源日志组件。以十多年设计工业级记录系统的经验为基础, 所创建的logback比现有任何记录系统更快、占用资源更少, 有时差距非常大。1.2. Logback提供独特而实用的特性, 比如: Marker、参数化记录语句、条件化堆栈跟踪和强大的事件过滤功能。以上列出的仅仅是logbook实用特性的一小部分。1.3. 对于自身的错误报告, logback依赖状态(Status)对象, 状态对象极大地简化了故障查

2021-03-11 22:40:32 252

原创 003_commons-logging与slf4j和log4j与logback

1. 日志接口常用的有commons-logging和slf4j, 日志实现常用的有log4j和logback。那么, 我们应该选取什么样的组合呢?2. Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块: logback-core, logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个改良版本。此外logback-classic完整实现slf4j api

2021-03-11 18:13:58 286

原创 016_Redis集群的删除和添加节点

1. 集群操作命令1.1. 查看集群命令1.2. create创建一个集群。1.3. add-node添加一个节点到集群。1.4. reshard分片。1.5. del-node移除一个节点。2. 创建集群2.1. 分别启动192.168.25.133、192.168.25.135、192.168.25.137、192.168.25.138、192.168.25.139和192.168.25.140这6台机器上的Redis服务。2.2. 创建集群2.3. 查看集群

2021-03-08 20:08:13 480

原创 015_Redis创建集群

1. 准备6台服务器, 都按照好了Redis和Ruby192.168.25.133:6379192.168.25.135:6379192.168.25.137:6379192.168.25.138:6379192.168.25.139:6379192.168.25.140:63792. 6台服务器上都安装ruby和redis的接口3. 6台服务器上都在redis.conf中开启集群模式4. 6台服务器上都在redis.conf中配置密码5. 分别启动自己6

2021-03-08 17:30:43 77

原创 025_Jedis集群

1. 创建集群节点2. 创建集群操作对象3. 关闭集群4. 例子4.1. 新建一个名为JedisCluster的Java项目, 拷入相关jar包, 并添加到build path4.2. 代码package com.redis.cluster;import java.util.HashSet;import java.util.Map;import java.util.Set;import java.util.TreeSet;import redis.cli

2021-03-08 13:42:39 213

原创 014_Redis的哨兵模式

1. 有了主从复制的实现以后, 我们如果想对主从服务器进行监控, 那么在Redis2.6以后提供了一个哨兵机制。顾名思义, 哨兵的含义就是监控Redis系统的运行状况。2. 哨兵机制的主要功能2.1. 监控主节点和从节点是否正常运行。2.2. 主数据库出现故障时, 可以自动将从节点转换为主节点, 实现自动切换。3. 启动哨兵程序(可以启动多个)3.1. 在任意一台从节点服务器上或者一台新的服务器上(安装了Redis)修改/usr/local/redis-6.2.0/sentinel.co

2021-03-07 13:55:31 106 1

原创 024_Jedis连接池

1. Jedis不是线程安全的, 故不应该在多线程环境中共用一个Jedis实例。但是, 也应该避免直接创建多个Jedis实例, 因为这种做法会导致创建过多的socket连接, 性能不高。2. 要保证线程安全且获得较好的性能, 可以使用JedisPool。JedisPool是一个连接池, 既可以保证线程安全, 又可以保证了较高的效率。3. 可以声明一个全局的JedisPool变量来保存JedisPool对象的引用, 然后在其他地方使用。要知道, JedisPool是一个线程安全的连接池。Jedi

2021-03-05 22:56:34 377

原创 013_Redis的主从模式

1. 主从复制1.1. 一个master可以拥有多个slave。1.2. 多个slave可以连接同一个master外, 还可以连接到其它的slave。1.3. 主从复制不会阻塞master在同步数据时继续处理client请求。1.4. 提供系统的伸缩性。2. 主从复制过程2.1. slave与master建立连接, 发送sync同步命令。2.2. master会开启一个后台进程, 将数据库快照保存到文件中, 同时master主进程会开启收集新的写命令并缓存。2.3. 后台完成

2021-03-05 22:04:51 113 1

原创 012_Redis的aof持久化方式

1. appendonly file(缩写aof)的持久化方式,使用aof时, Redis会将每次更新操作后进行日志记录, 当Redis重新启动时会重新执行文件中保存的写命令来在内存中重建这个数据库的内容。2. 编辑redis.conf如下: vim /usr/local/redis-6.2.0/redis.conf3. aof配置信息 3.1. appendonly no默认aof持久化方式是关闭的, 启动aof更改为: appendonly yes。3.2. appendfsync.

2021-03-05 10:52:13 159 1

原创 011_Redis的快照持久化

1. snapshotting(快照)默认持久化方式, 将内存中以快照的方式写入到二进制文件中, 默认是dump.rdb。2. dump.rdb文件的位置2.1.在Redis客户端使用config的get命令, dir是数据库存放目录, dbfilename是数据库文件名。2.2.进入root目录查看dump.rdb3. snapshotting持久化方式设置3.1. 在Redis客户端使用config的get命令, save指定在多长时间内, 有多少次更新操作, 就将数据同..

2021-03-05 10:24:46 110 1

原创 010_Redis的发布和订阅

1. subscribe命令1.1. 语法: subscribe channel [channel ...]。1.2. subscribe命令用于订阅给定的一个或多个频道的信息。1.3. 在Redis客户端, 运行该命令会阻塞, 用于接收信息。1.4. 实例2. publish命令2.1. 语法: publish channel message。2.2. publish命令用于将信息发送到指定的频道。2.3. 返回接收到信息的订阅者数量。2.4. 实例2.4.1.

2021-03-04 16:59:32 97 1

原创 023_Jedis的发布和订阅

1.Redis为我们提供了publish/subscribe(发布/订阅)功能。我们可以对某个channel(频道)进行subscribe(订阅),当有人在这个channel上publish(发布)消息时, Redis就会通知我们, 这样我们可以收到别人发布的消息。2. 作为Java的Redis客户端, Jedis提供了publish/subscribe的接口。本文讲述如何使用Jedis来实现Redis的publish/subscribe。3. Jedis定义了抽象类JedisPubSub, 在这.

2021-03-04 16:53:08 384 1

原创 022_Jedis的事物

1. 新建一个名为JedisTransaction的Java项目, 拷入相关jar包, 并添加到build path2. 编辑JedisTransaction.javapackage com.redis.transaction;import java.util.List;import redis.clients.jedis.Jedis;import redis.clients.jedis.Transaction;/** * Jedis事物 */public class Jed

2021-03-04 00:04:59 111 1

原创 009_Redis的事物

1. Redis事务可以一次执行多个命令, 并且带有以下三个重要的保证:1.1. 批量操作在发送exec命令前被放入队列缓存。1.2. 收到exec命令后进入事务执行, 事务中任意命令执行失败, 其余的命令依然被执行。1.3. 在事务执行过程, 其他客户端提交的命令请求不会插入到事务执行命令序列中。2. 一个事务从开始到执行会经历以下三个阶段:2.1. 开始事务。2.2. 命令入队。2.3. 执行事务。3. 单个Redis命令的执行是原子性的, 但Redis没有在事务上增加任

2021-03-03 23:52:59 74 1

原创 021_Jedis的ZSet数据类型

16. 完整代码16.1. RedisZSet.javapackage com.redis.zset;import java.util.HashMap;import java.util.Map;import redis.clients.jedis.Jedis;/** * zset有序集合 */public class RedisZSet { public static void main(String[] args) { jedisZremrangeByScore(); }

2021-03-03 01:09:19 526 4

原创 020_Jedis的Set数据类型

1. 新建一个名为JedisSet的Java项目, 拷入相关jar包, 并添加到build path1. 新建一个名为JedisSet的Java项目, 拷入相关jar包, 并添加到build path2. Jedis向集合添加一个或多个成员2.1. 代码2.2. 运行效果3. Jedis返回集合中的所有成员3.1. 代码3.2. 运行效果4. Jedis获取集合的成员数4.1. 代码4.2. 运行效果5. Jedis判断成员元素是否是集合的

2021-03-02 23:41:09 242

原创 008_Redis的ZSet数据类型

1. zset和set一样也是string类型元素的集合, 且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的, 但分数(score)却可以重复。集合是通过哈希表实现的, 所以添加、删除、查找的复杂度都是O(1)。集合中最大的成员数为232- 1 (4294967295, 每个集合可存储40多亿个成员)。2. 向有序集合添加一个或多个成员2.1. 语法: zadd key score1 membe.

2021-03-02 17:26:17 345

原创 007_Redis的Set数据类型

1. Set集合是String类型的无序集合。集合成员是唯一的, 这就意味着集合中不能出现重复的数据, 根据集合内元素的唯一性, 第二次插入的元素将被忽略。Set是通过哈希表实现的, 所以添加、删除、查找的复杂度都是O(1)。集合中最大的成员数为232- 1(4294967295, 每个集合可存储40多亿个成员)。2. 向集合添加一个或多个成员2.1. 语法: sadd key member1 [member2]。2.2. sadd命令将一个或多个成员元素加入到集合中, 已经存在于集合的成员元.

2021-03-02 12:31:03 132

原创 019_Jedis的List数据类型

1. 新建一个名为JedisList的Java项目, 拷入相关jar包, 并添加到build path2. Jedis将一个或多个值插入到列表头部2.1. 代码2.2. 运行结果3. Jedis将一个或多个值插入到列表尾部3.1. 代码3.2. 运行结果4. Jedis移出并获取列表的头部元素4.1. 代码4.2. 运行结果5. Jedis移除并获取列表的尾部元素5.1. 代码5.2. 运行结果6. Jedis在列表的元

2021-03-01 20:18:55 437

原创 006_Redis的List数据类型

1. List类型是一个链表结构的集合, 主要功能有push, pop, 获取元素等。List类型是一个双端链表的结构, 我们可以通过相关操作进行集合的头部或者尾部添加删除元素, List的设计非常简单精巧, 既可以做为栈, 又可以作为队列。2. 将一个或多个值插入到列表头部2.1. 语法: lpush key value1 [value2]。2.2. lpush命令将一个或多个值插入到列表头部(栈的功能, 先进后出)。如果key不存在, 一个空列表会被创建并执行lpush操作。当key存在但不

2021-03-01 19:42:07 152

原创 018_Jedis的Hash数据类型

1. 新建一个名为JedisHash的Java项目, 拷入相关jar包, 并添加到build path2. Jedis设置和获取哈希表字段值2.1. 代码2.2. 运行结果3. Jedis同时设置和获取多个哈希表字段值3.1. 代码3.2. 运行结果4. Jedis获取哈希表中所有字段4.1. 代码4.2. 运行结果5. Jedis获取哈希表中所有值5.1. 代码5.2. 运行结果6. Jedis获取哈希表中字段的数量

2021-03-01 12:04:48 171

AutoLogin.rar

jsp使用过滤器自动登录

2021-01-31

StudentManager.rar

jsp学生管理系统

2021-01-31

Unity3d开心消消乐

Unity3d开心消消乐项目,本人开发使用Unity5.6.5、分辨率480*800完美运行。设置界面有交流群号,看不懂的可以进群交流。

2019-01-02

麻将消除源码

这是一款休闲类的以我们平时玩的麻将为主题元素的对对碰小游戏。游戏里面有音乐的设置界面,分背景音乐和背景音效的两种设置,简单易于操作。游戏里面还有帮助页面,里面详细介绍了该款游戏的玩法,玩家看后非常明朗。游戏分东、南、西、北从易到难四种难度,供初级玩家、中级玩家、疯狂玩家、骨灰级玩家选择挑战。四种难度里面还各有50个小关卡,本款游戏一共200关。游戏主题比较简单、易操作,就是玩家分先、后两次选择相同的可消除的麻将即可,直到消玩本关所有麻将为止。这款休闲益智类的小游戏一定会受到广大游戏玩家、尤其是女性玩家的追捧......

2016-09-10

Lua程序设计_第二版_中文

lua程序设计中文第二版。

2016-08-13

超酷的登录界面

一个非常好的登录界面和一个前台界面,非常值得下载。

2012-11-01

空空如也

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

TA关注的人

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