上一页 1 2 3 4 5 6 7 ··· 24 下一页
摘要: RabbitMQ使用的端口: 5672 amqp协议 15672 后台管理界面 25672 当搭建rabbitMQ集群时使用 virtual host 相当于mysql里的数据库db1,db2等,使用RabbitMQ之前先创建建用户和virtual host 然后给virtual host指定用户, 阅读全文
posted @ 2020-02-06 12:21 踏月而来 阅读(179) 评论(0) 推荐(0) 编辑
摘要: git属于分布式版本控制系统,每个人电脑上都有一个完整的版本库,称为本地仓库,在本地就可以进行版本控制。另外在其他服务器上还有一个版本库,称为中央仓库,中央仓库的作用是进行版本交换,每个开发人员要保持代码一致只需要和中央仓库进行交互就可以了。 git的工作流程 git安装文件(2.20版本) 安装g 阅读全文
posted @ 2020-02-05 14:14 踏月而来 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 最常见的缓存策略有,FIFO,LRU,LFU,他们也是ehcache可以配置的缓存策略 FIFO , 先进先出原则,最先进来的缓存元素将被清空出缓存 LRU,最近最少使用原则,每个缓存元素都有一个时间戳,现有的缓存元素中时间戳离当前时间最远的元素将被清空出缓存,强调的是缓存元素的访问时间 LFU,最 阅读全文
posted @ 2020-02-03 11:20 踏月而来 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 事件驱动架构的几个要素 一,事件源 二,事件收集器 三,事件队列 四,事件转发器 五,事件处理器 事件驱动流程: 首先,各种不同的事件处理器都注册到事件转发器中 然后,事件源触发(比如一个秒杀请求进来) 》 事件收集器收集事件(将请求封装为秒杀事件),将事件扔到事件队列中 》单独的线程从事件队列中取 阅读全文
posted @ 2020-01-29 10:07 踏月而来 阅读(1143) 评论(0) 推荐(0) 编辑
摘要: 一,环境搭建 技术选型,该秒杀项目是采用springboot2.0和springCloud来开发的 1首先搭建父项目,所有的模块都是依赖该父项目 2搭建服务注册中心模块(Eureka) 3秒杀用户模块(集成mybatis,web,thymeleaf等),相当于买家 4公共模块,对应的是数据库表对应的 阅读全文
posted @ 2020-01-26 21:06 踏月而来 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 第一步:全部马分8组,各跑一次,然后淘汰掉每组的后四名(8次); 第二步:取每组第一名进行一次比赛,然后淘汰最后四名所在组的所有马(1次): 第三步: 其实这时候红色区域的马也可以淘汰了,红色区域的马不可能进入前4名。A1可以直接晋级,因为他是跑的最快的 在以上的两次比赛过后可以得出,A1 直接晋级 阅读全文
posted @ 2020-01-02 16:53 踏月而来 阅读(839) 评论(0) 推荐(0) 编辑
摘要: Reactor线程模型分为单线程模型,多线程模型,主从线程模型 netty线程模型一般采用Reactor主从线程模型 EventLoopGroup表示线程池,EventLoop表示线程,channel表示客户端和服务端的连接通道 EventLoopGroup包含EventLoop,一个EventLo 阅读全文
posted @ 2019-12-28 22:42 踏月而来 阅读(388) 评论(1) 推荐(0) 编辑
摘要: /** * ConcurrentHashMap效率最高 */ public class MapTest { public static void main(String[] args) throws InterruptedException { pressureTest(new Hashtable< 阅读全文
posted @ 2019-12-20 01:20 踏月而来 阅读(247) 评论(0) 推荐(0) 编辑
摘要: /** * LinkedBlockingDeque 有链表组成的可选容量的双端阻塞队列 * 他比LinkedBlockingQueue的优点是可以两端向队列中添加元素 */ /** * 考虑下面这样一种场景:有多个消费者,每个消费者有自己的一个消息队列, * 生产者不断的生产数据扔到队列中,消费者消 阅读全文
posted @ 2019-12-18 14:29 踏月而来 阅读(286) 评论(0) 推荐(0) 编辑
摘要: /** *LinkedTransferQueue是有容量的, * 当第一个生产者线程调用transfer时,如果没有消费者,会阻塞。 * 第二个生产者线程调用transfer时,如果没有消费者,会添加到队列的末尾。 * 直到有消费者进行消费时调用take方法,被阻塞的生产者线程才继续运行 */ /* 阅读全文
posted @ 2019-12-18 11:56 踏月而来 阅读(225) 评论(0) 推荐(0) 编辑
摘要: /** * 字符串只包含0和1,将字符串翻转到单调递增 */ public class Test { /** * 两种方法计算的值是一致的 * @param args */ public static void main(String[] args) { String str = "00000011 阅读全文
posted @ 2019-12-17 15:44 踏月而来 阅读(304) 评论(0) 推荐(0) 编辑
摘要: /** * 当向SynchronousQueue插入元素时,必须同时有个线程往外取 * SynchronousQueue是没有容量的,这是与其他的阻塞队列不同的地方 */ public class SynchronusQueueTest { static SynchronousQueue<Strin 阅读全文
posted @ 2019-12-16 21:02 踏月而来 阅读(503) 评论(0) 推荐(0) 编辑
摘要: /** * DelayQueue 底层包含一个PriorityQueue。 * 向DelayQueue插入的元素必须实现delay接口,DelayQueue是不边界的 * 只有当队列中的元素过期了,即getDalay方法返回值小于0,元素才可以取出来 * 当元素过期了不取出来,不会被删除,元素仍然在 阅读全文
posted @ 2019-12-16 21:01 踏月而来 阅读(381) 评论(0) 推荐(0) 编辑
摘要: /** * LinkedBlockingQueue的方法同ArrayBlockingQueue, * 区别在于LinkedBlockingQueue既可以指定大小,不指定大小默认是Interger.Max * 而ArrayBlockingQueue 必须指定大小 */ public class Li 阅读全文
posted @ 2019-12-16 21:00 踏月而来 阅读(87) 评论(0) 推荐(0) 编辑
摘要: public class PriorityBlockingQueueTest { /** * 有优先级顺序的阻塞队列,底层实现是数组,无边界。默认是11. * 构造方法可以传入一个比较器,不传的话,默认是按照字典排序比较大小 * 向队列中插入元素用 add offer , put 三个方法效果是等同 阅读全文
posted @ 2019-12-15 22:59 踏月而来 阅读(125) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 24 下一页