04 2018 档案

摘要:一、消息的选择器 不管是在消息发送端设置消息过期时间还是在接收端设置等待时间,都是对不满足的消息有过滤的作用,那消息选择器就是为过滤消息而生的下面来看看消息选择器: ActiveMQ提供了一种机制,使用它,消息服务可根据消息选择器中的标准来执行消息过滤。生产者可在消息中放入应用程序特有的属性,而消费 阅读全文
posted @ 2018-04-30 23:59 南望孤笑 阅读(1108) 评论(0) 推荐(0)
摘要:下面我们来学习一下消息接受确认和发送持久化消息、消息的过期、消息的选择器和消息的优先级。 一、消息接收确认 1、jms消息只有在被确认之后才认为成功消费了这条消息。消息的成功消费通常包括三个步骤:(1)、client接收消息 (2)、client处理消息 (3)、消息被确认(也就是client给一个 阅读全文
posted @ 2018-04-30 23:02 南望孤笑 阅读(1555) 评论(0) 推荐(1)
摘要:下载安装ActiveMQ服务,下载地址当然可以去官网下载 http://activemq.apache.org/download-archives.html ActiveMQ安装很简单,下载解压后到bin目录就有win32 和win64两个目录按照自己的系统进入后就有activemq.bat来启动A 阅读全文
posted @ 2018-04-30 22:03 南望孤笑 阅读(487) 评论(0) 推荐(0)
摘要:一、JMS是个什么 1、JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JM 阅读全文
posted @ 2018-04-30 21:34 南望孤笑 阅读(633) 评论(0) 推荐(0)
摘要:Linux系统出现了性能问题,一般我们可以通过top、iostat、free、vmstat等命令来查看初步定位问题。其中iostat可以给我们提供丰富的IO状态数据。 1. 基本使用 iostat -d -k 1 10 参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制 阅读全文
posted @ 2018-04-30 17:01 南望孤笑 阅读(218) 评论(0) 推荐(0)
摘要:把旧项目提交到git上,但是会有一些历史记录,这些历史记录中可能会有项目密码等敏感信息。如何删除这些历史记录,形成一个全新的仓库,并且保持代码不变呢? 以下方法是在当前的分支下新建一个分支,然后把之前分支删除,接着把新建的分支重命名为原分支名称,最后把分支强制推送到远程 进入文件提交目录 git i 阅读全文
posted @ 2018-04-30 00:18 南望孤笑 阅读(1017) 评论(0) 推荐(0)
摘要:使用MySQL时,需要了解当前数据库的情况,例如当前的数据库大小、字符集、用户等等。下面总结了一些查看数据库相关信息的命令 1:查看显示所有数据库 2:查看当前使用的数据库 3:查看数据库使用端口 4:查看当前数据库大小 例如,我要查看INVOICE数据库的大小,那么可以通过下面SQL查看 查看数据 阅读全文
posted @ 2018-04-28 15:46 南望孤笑 阅读(277) 评论(0) 推荐(0)
摘要:基础篇 基本功 面向对象的特征 final, finally, finalize 的区别 int 和 Integer 有什么区别 重载和重写的区别 抽象类和接口有什么区别 说说反射的用途及实现 说说自定义注解的场景及实现 HTTP 请求的 GET 与 POST 方式的区别 session 与 coo 阅读全文
posted @ 2018-04-27 15:06 南望孤笑 阅读(258) 评论(0) 推荐(0)
摘要:1.了解Dubbo+Zookeeper面向服务SOA架构、SpringCloud+Eureka微服务架构、ActiveMQ消息通讯模式、RocketMQ分布式消息、Zookeeper集群、Redis缓存高可用、Nginx反向代理2.数据库设计、接口设计与文档编写、接口调用数据测试与文档编写3.了解分 阅读全文
posted @ 2018-04-25 01:25 南望孤笑 阅读(306) 评论(0) 推荐(0)
摘要:1.熟练掌握Java基础、语法规范、集合框架等,基础语法、Java关键字、内部类、泛型、集合类使用场景2.Java io/nio框架体系、文本文件、二进制文件读写、nio、buffer机制3.Jsp、Servlet规范、Servlet容器、Servlet、Filter、Lisnter作用与场景,To 阅读全文
posted @ 2018-04-24 23:26 南望孤笑 阅读(849) 评论(0) 推荐(0)
摘要:@NotEmpty 用在集合类上面 @NotBlank 用在String上面 @NotNull 用在基本类型上 只有简单的结果,但是再更具体一点的内容就搜不到了,所以去看了看源码,发现了如下的注释: 1. @NotEmpty /** * Asserts that the annotated stri 阅读全文
posted @ 2018-04-24 17:19 南望孤笑 阅读(226) 评论(0) 推荐(0)
摘要:由于 request中getReader()和getInputStream()只能调用一次 在项目中,可能会出现需要针对接口参数进行校验等问题。 因此,针对这问题,给出一下解决方案 实现方法:先将RequestBody保存为一个byte数组,然后通过Servlet自带的HttpServletRequ 阅读全文
posted @ 2018-04-23 16:22 南望孤笑 阅读(5944) 评论(0) 推荐(0)
摘要:消息总线AcitveMQ无法启动,总是提示端口被占用 提示如下: 2018-04-21 22:47:22,623 | ERROR | Failed to start Apache ActiveMQ ([localhost, ID:XXXX-1146-1524322042327-0:1], java. 阅读全文
posted @ 2018-04-21 22:54 南望孤笑 阅读(642) 评论(0) 推荐(0)
摘要:Controller层方法,进行统一异常处理 提供两种不同的方案,如下: 现在分别介绍 方案1: 使用@ControllerAdvice 和 @ExceptionHandler @ControllerAdvice 或 @RestControllerAdvice 使用@ControllerAdvice 阅读全文
posted @ 2018-04-20 14:31 南望孤笑 阅读(687) 评论(0) 推荐(0)
摘要:穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。 解决办法:①用一个bitmap和n个hash函数做布隆过滤器过滤没有在缓存的键。 ②持久层查询不到就缓存空结果,有效时间为数分钟 阅读全文
posted @ 2018-04-19 00:59 南望孤笑 阅读(500) 评论(0) 推荐(0)
摘要:基本配置 port 6379 # 监听端口号,默认为 6379,如果你设为 0 ,redis 将不在 socket 上监听任何客户端连接。 daemonize no #是否以后台进程启动 databases 16 #创建database的数量(默认选中的是database 0) save 900 1 阅读全文
posted @ 2018-04-19 00:56 南望孤笑 阅读(315) 评论(0) 推荐(0)
摘要:集群的概念早在 Redis 3.0 之前讨论了,3.0 才在源码中出现。Redis 集群要考虑的问题: 一个稳健的后台系统需要太多的考虑。 一致性哈希算法(consistent hashing) 背景 通常,业务量较大的时候,考虑到性能的问题(索引速度慢和访问量过大),不会把所有的数据存放在一个 R 阅读全文
posted @ 2018-04-19 00:53 南望孤笑 阅读(516) 评论(0) 推荐(0)
摘要:maven依赖 springboot整合jedisCluster相当简单,maven依赖如下: 加了这一个依赖之后就不要再加上jedis的这一个依赖了: 加这个可能在本身测试的时候,可能会导致jedisCluster对象正常,但是在测试的时候会发现set数据的时候会出现问题,我把jedis的依赖去掉 阅读全文
posted @ 2018-04-19 00:42 南望孤笑 阅读(571) 评论(0) 推荐(1)
摘要:jedis客户端操作redis主要三种模式:单台模式、分片模式(ShardedJedis)、集群模式(BinaryJedisCluster) ShardedJedis是通过一致性哈希来实现分布式缓存的,通过一定的策略把不同的key分配到不同的redis server上,达到横向扩展的目的。 一、简介 阅读全文
posted @ 2018-04-19 00:33 南望孤笑 阅读(7827) 评论(0) 推荐(1)
摘要:Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 Redis 客户端可以订阅任意数量的频道。 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系: 阅读全文
posted @ 2018-04-19 00:24 南望孤笑 阅读(223) 评论(0) 推荐(0)
摘要:事务 MULTI、EXEC、DISCARD和WATCH命令是Redis事务功能的基础。Redis事务允许在一次单独的步骤中执行一组命令,并且可以保证如下两个重要事项: >Redis会将一个事务中的所有命令序列化,然后按顺序执行。Redis不可能在一个Redis事务的执行过程中插入执行另一个客户端发出 阅读全文
posted @ 2018-04-19 00:12 南望孤笑 阅读(167) 评论(0) 推荐(0)
摘要:主从复制: Redis主从复制配置和使用都非常简单,通过主从复制可以允许多个Redis server拥有和master server相同的数据库副本 Redis主从复制特点:1.Master可以拥有多个slave2.多个slave可以连接同一个master外,还可以连接到其他slave3.主从复制不 阅读全文
posted @ 2018-04-19 00:11 南望孤笑 阅读(176) 评论(0) 推荐(0)
摘要:Sentinel 哨兵 redis2.6以后提供了一个"哨兵"的机制。顾名思义,哨兵的含义就是监控Redis系统的运行状态。 Redis 2.8版开始正式提供名为Sentinel的主从切换方案,Sentinel用于管理多个Redis服务器实例,主要负责三个方面的任务: 1. 监控(Monitorin 阅读全文
posted @ 2018-04-18 01:13 南望孤笑 阅读(237) 评论(0) 推荐(0)
摘要:Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。 由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了, 阅读全文
posted @ 2018-04-18 01:04 南望孤笑 阅读(207) 评论(0) 推荐(0)
摘要:高级命令 ​ keys * : 返回满足的所有键 ,可以模糊匹配 ​ exists :是否存在指定的key,存在返回1,不存在返回0 ​ exprie:设置某个key的过期时间 ​ ttl:查看剩余时间 ​ persisit:取消过去时间 ​ select : 选择数据库 数据库为0-15(默认一共 阅读全文
posted @ 2018-04-18 01:00 南望孤笑 阅读(377) 评论(0) 推荐(0)
摘要:Redis 的 KeyRedis 的 key 是字符串类型,但是 key 中不能包括边界字符,由于 key 不是 binary safe的字符串,所以像"my key"和"mykey\n"这样包含空格和换行的 key 是不允许的。 key 相关指令介绍 exits key 检测指定 key 是否存在 阅读全文
posted @ 2018-04-18 00:26 南望孤笑 阅读(164) 评论(0) 推荐(0)
摘要:安装上传下载命令rz和sz yum install lrzsz -y 首先需要安装gcc yum -y install gcc gcc-c++ libstdc++-devel yum install tcl -y 解压 tar -zxvf redis-3.0.0-rc2.tar.gz cd redi 阅读全文
posted @ 2018-04-17 23:57 南望孤笑 阅读(161) 评论(0) 推荐(0)
摘要:NoSQL是什么意思? NoSQL意味着不仅仅是SQL,还意味着在设计一个软件解决方案或产品时,可以根据需求有一个以上更多选择的存储机制,。 NoSQL是一个新数据库标签(# NoSQL)。 NoSQL崛起的最重要的结果是多种范式的持久机制出现。 NoSQL没有约定俗成的定义,常见观点如下: 不使用 阅读全文
posted @ 2018-04-17 23:41 南望孤笑 阅读(1257) 评论(0) 推荐(0)
摘要:zookeeper客户端和服务器会话的建立是一个异步的过程,也就是说在程序中,程序方法在处理完客户端初始化后立即返回(即程序继续往下执行代码,这样,在大多数情况下并没有真正的构建好一个可用会话,在会话的生命周期处于“CONNECTING”时才算真正的建立完毕,所以需要使用到多线程中的一个工具类Cou 阅读全文
posted @ 2018-04-17 20:11 南望孤笑 阅读(251) 评论(0) 推荐(0)
摘要:1 在init.d目录下新建脚本文件 进入到/etc/rc.d/init.d目录下,命令是: cd /etc/rc.d/init.d 新建一个名为zookeeper的文件,命令是: touch zookeeper 如图: 1.1文件内容的第一种方案(推荐) 使用vim命令修改文件内容,文件内容的写法 阅读全文
posted @ 2018-04-17 19:07 南望孤笑 阅读(6428) 评论(0) 推荐(0)
摘要:1.一共三个节点(zk服务器集群规模不小于3个节点),要求服务器之间系统时间保持一致。 2. 先去zookeeper官网下载zookeeper的安装包,并将zookeeper通过工具上传到服务器。上传zk 进行解压: tar -zxvf zookeeper-3.4.5.tar.gz 重命名: mv 阅读全文
posted @ 2018-04-17 17:43 南望孤笑 阅读(209) 评论(0) 推荐(0)
摘要:1.什么是Zookeeper? Zookeeper是一个高效的分布式协调服务,它暴露了一些公用服务,比如命名/配置管理/同步控制/群组服务等。我们可以使用Zookeeper来实现比如达成共识/集群管理/leader选举等。 Zookeeper是一个高可用的分布式管理与协调框架,基于ZAB算法(原子消 阅读全文
posted @ 2018-04-17 16:46 南望孤笑 阅读(292) 评论(0) 推荐(0)
摘要:ZooKeeper 是一个高可用的分布式数据管理不系统协调框架。基于对 Paxos 算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得 ZooKeeper 解决很多分布式问题。 ZK 并非天生就是为这些应用场景设计的,都是后来众多开发者根据其框架的特性,利用其提供的一系 阅读全文
posted @ 2018-04-17 14:51 南望孤笑 阅读(239) 评论(0) 推荐(0)