ActiveMQ的简单介绍和Linux上的安装
https://www.cnblogs.com/life-for-test/p/6541689.html 底层是nio https://www.cnblogs.com/minisun/p/6809827.html 一、什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。 发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中
ActiveMQ的两种消息形式。
一、消息的传递类型 点对点:即一个生产者和一个消费者一一对应 PTP的过程好比是两个人打电话,这两个人独享这一条通信链路。一方发送消息,另外一方接收消息。在实际应用中因为有多个用户对使用PTP的链路,它的通信场景如下图所示: 发布/订阅:即一个生产者产生消息并进行发送后,可以由多个消费者进行接收。 发布订阅模式类似听广播,一个播音员广播,可以有很多听众同时收听。这种关系如下图所示: 二、消息的正文格式 JMS定义了五种不同的消息正文格式,以及调用的消息类型,允许你发送并接收以一些不同形式的数据
什么是MQ?什么时候使用MQ?为什么要使用MQ?
只是代码的搬运工~~~~~ 问题1:什么是MQ?什么时候使用MQ?为什么要使用MQ? MQ,是一种跨进程的通信机制,用于上下游传递消息。 在互联网架构中,MQ是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。 使用了MQ之后,消息发送上游只需要依赖MQ,不用依赖其他服务。 问题1:什么是MQ?什么时候使用MQ?为什么要使用MQ? MQ,是一种跨进程的通信机制,用于上下游传递消息。 在互联网架构中,MQ是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。 使用了MQ之后,消息发
System.arraycopy方法详解 深浅拷贝
System:System.arraycopy方法详解 java 4.5k 次阅读 · 读完需要 29 分钟 看 JDK 源码的时候,Java 开发设计者在对数组的复制时,通常都会使用 System.arraycopy() 方法。 其实对数组的复制,有四种方法: for clone System.arraycopy arrays.copyof 本文章主要分析 System.arraycopy() ,带着几个问题去看这个方法: 深复制,还是浅复制 String 的一维数组和二维数组复制是否有区别
Redis做为分布式锁理解
转自:https://www.cnblogs.com/0201zcr/p/5942748.html ; 一、使用分布式锁要满足的几个条件: 系统是一个分布式系统(关键是分布式,单机的可以使用ReentrantLock或者synchronized代码块来实现) 共享资源(各个系统访问同一个资源,资源的载体可能是传统关系型数据库或者NoSQL) 同步访问(即有很多个进程同事访问同一个共享资源。没有同步访问,谁管你资源竞争不竞争) 二、应用的场景例子 管理后台的部署架构(多台tomcat服务器+re
Servlet容器Tomcat中web.xml中url-pattern的配置详解[附带源码分析
转载 http://www.cnblogs.com/fangjian0423/p/servletContainer-tomcat-urlPattern.html#springmvc Servlet容器Tomcat中web.xml中url-pattern的配置详解[附带源码分析 目录 前言 现象 源码分析 实战例子 总结 参考资料 前言 今天研究了一下tomcat上web.xml配置文件中url-pattern的问题。 这个问题其实毕业前就困扰着我,当时忙于找工作。 找到工作之后一直忙,也就没时
30个精简代码的技巧
前言: 优化代码,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的, 改与不改对代码的运行效率有什么影响呢?这个问题我是真么考虑的,好比人吃饭,吃一粒米, 没用,但是一万,十万呢,这样的效率就很可观了。 代码优化的目标是: 1.减小代码体积; 2.提高代码运行效率。 具体方法: 1.尽量指定类,方法的final修饰符 带有final的修饰符的类是不可派生的。在java核心API中,有许多应用final的例子,例如: java.long.String,整个类都是final的。为
Redis几种集群模式
此文由转载 https://blog.csdn.net/wy0123/article/details/79583506 现在越来越多的项目都会利用到redis,多实例redis服务比单实例要复杂的多,这里面涉及到定位、容错、扩容等技术问题。我们常用sharding技术来对此进行管理,其集群模式主要有以下几种方式: 主从复制 哨兵模式 Redis官方 Cluster集群模式(服务端sharding) Jedis sharding集群(客户端sharding) 利用中间件代理 我们现看看主从复制、
Redis:缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级
转载:https://www.cnblogs.com/leeSmall/p/8594542.html 一、缓存雪崩 缓存雪崩我们可以简单的理解为:由于原有缓存失效,新缓存未到期间(例如:我们设置缓存时采用了相同的过期时间,在同一时刻出现大面积的缓存过期),所有原本应该访问缓存的请求都去查询数据库了,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机。从而形成一系列连锁反应,造成整个系统崩溃。 缓存正常从Redis中获取,示意图如下: 缓存失效瞬间示意图如下: 缓存雪崩的解决方案: (1
pip更换下载源(提升下载速度)
经常在使用Python的时候需要安装各种模块,而pip是很强大的模块安装工具,但是由于国外官方pypi经常被墙,导致不可用,或者下载速度很慢,所以我们最好是将自己使用的pip源更换一下,这样就能解决被墙导致的装不上库的烦恼。 网上有很多可用的源: 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 豆瓣(douban) http://pypi.douba
18.12.5 发现他,抓住他(并查集)&正方形(哈希表)
发现他,抓住他(10分) 题目内容: 一个城市中有两个犯罪团伙A和B,你需要帮助警察判断任意两起案件是否是同一个犯罪团伙所为,警察所获得的信息是有限的。假设现在有N起案件(N<=100000),编号为1到N,每起案件由团伙A或团伙B所为。你将按时间顺序获得M条信息(M<=100000),这些信息分为两类: 1. D [a] [b] 其中[a]和[b]表示两起案件的编号,这条信息表明它们属于不同的团伙所为 2. A [a] [b] 其中[a]和[b]表示两起案件的编号,这条信息需要你回答[a]和
Mac 文件或者目录软连接
把htdocs 目录软连接到根目录 ln -s /Applications/MAMP/htdocs /Users/yanruicheng 上述命令成功后,ls 查看,然后cd 便可以进入这个目录了。
mongodb与mysql命令详细对比
传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。MongoDB对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点。 MySQL MongoDB 说明 mysqld mongod 服务器守护进程 mysql mongo 客户端工具 mysqldump mongodump 逻辑备份工具 mysql
【JAVA】创建一维数组+创建二维数组
public static void main(String[] args) {
int[] One1 = new int[5];
int[] One2 = {1,2,3,4,5};
int[] One3 = new int [] {1,2,3,4,5};
int[][] Two1={{1,2,3},{4,5,6}};
int[][] Two2 = new int[2][3];
int[
Keycloak会话管理-refreshToken
Keycloak会话管理中,获取到accessToken和refreshToken后,基于accessToken交换用户数据或者参与KeycloakAPI的请求,当accessToken过期的时候,可使用refreshToken去交换新的accessToken和refreshToken。 我们可能会遇到这样一个情况:当refreshToken在请求的时候也过期了,这个时候,需要回到登录页面。如果按照这样的流程走,将带来较差的体验,需要用户重新登录,尤其在较多模块中,这种方案极不可取。 我们先从
今日推荐
周排行