摘要:
Disruptor框架简介: 并发框架,基于事件驱动,使用观察者模式 底层采用环形数组,取模算法 简单使用: 工厂: 消费者: 生产者: 启动: 打印如下: 阅读全文
摘要:
可重入锁: 简单来说,支持重复加锁,有可重用性 特征:锁可以传递,方法递归传递 目的:避免了死锁现象 代码: 打印: 分析:如果锁不能重用,那么这里将会出现死锁问题 使用ReentrantLock锁: 读写锁: 高并发的时候,写操作的同时应当不允许读操作 (多线程中:读-读共存;读-写、写-写都不可 阅读全文
摘要:
Future模式: 其实相当于是前端的Ajax 比如我们使用多线程下载文件时候,每一个线程都会发送HTTP请求资源。而我如何知道,文件下载完毕呢? 也就是说,主线程如何获得子线程的执行结果呢? 创建多线程中的实现runnable接口方式和继承thread类,然后start方法都是直接执行代码的,无法 阅读全文
摘要:
线程池的特点: 降低资源:通过重复利用已创建的线程降低线程创建和销毁的损耗 提高效率:当任务到底时,不需要等待,立即执行 方便管理:统一分配,调优和监控等 线程池的创建方式: 1.CachedThreadPool:创建一个可缓存线程池,灵活回收空闲线程 打印后可以发现:同一个线程有被再次利用,线程池 阅读全文
摘要:
并发队列: 在并发队列中,JDK有两套实现: ConcurrentLinkedQueue:非阻塞式队列 BlockingQueue:阻塞式队列 阻塞式队列非阻塞式队列的区别: 阻塞式队列入列操作的时候,如果超出队列总数,这个时候会进行等待;在出列的时候,如果队列为空,也会等待 非阻塞无论如何都不等待 阅读全文
摘要:
多线程目的:在同一时刻有多条不同路径执行程序,提高程序运行效率 多线程应用:数据库连接池,多线程文件下载等 注意:在文件下载中使用多线程,无法提高速度 在一个进程中,一定会有主线程 从基础开始,多线程的使用方式: 1.继承Thread类:(不推荐) 注意:threadDemo调用的是start方法; 阅读全文
摘要:
Config配置中心作用简单来讲:统一配置,方便管理 开源配置中心: 1.百度Disconf 2.阿里Diamand 3.Spring Cloud Config 搭建Config-Server 快速上手: 选择依赖:Eureka和Config 选取Eureka原因:保证高可用 启动类加入注解: 配置 阅读全文
摘要:
场景: 某大型电商网站基于微服务架构,服务模块有几十个。 某天,测试人员报告该网站响应速度过慢。排除了网络问题之后,发现很难进一步去排除故障。 那么:如何对微服务的链路进行监控呢? Sleuth: 一般的,一个分布式服务跟踪系统,主要有三部分:数据收集、数据存储和数据展示。 根据系统大小不同,每一部 阅读全文
摘要:
上文讲到了Zuul的基本使用: https://www.cnblogs.com/xuyiqing/p/10884860.html 自定义Zuul过滤器: 启动项目:Eureka Server->Product-Service->Order-Service->Api Gateway 这里对模拟的下单接 阅读全文
摘要:
网关:API Gateway 系统对外唯一入口,介于客户端和服务端之间,处理非业务功能 提供路由请求,鉴权,监控,缓存,限流等功能 简单理解:小区门卫,防止非法人员入内,居民也可以问路 实际理解:假设我部署完成一个电商网站,网关的作用如下 1.前端发起的请求都会发送到网关,比如URL是/api/us 阅读全文