摘要: 前言 这一章节我们将讲解高并发解决方案中的应用拆分思路,也可以称之为系统拆分。单个服务器再优化,它的处理都是有上限的,因此我们采用扩容、缓存、消息队列等对程序进行优化,这些手段都可行,但还不是全部。随着项目的需求要求越来越多,应用自然会跟着越来越大,因此呢,架构师设计出了特别容易扩展的方案,从整体将 阅读全文
posted @ 2020-04-19 17:19 mcbbss 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 前言 这一章节我们将讲解高并发解决方案中的队列。消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。 主体概要 高并发の消息队列基本介绍 消息队列特性 主体内容 一、高并发の消息队列基本介绍 1.例子 在购 阅读全文
posted @ 2020-04-19 02:15 mcbbss 阅读(1031) 评论(0) 推荐(0) 编辑
摘要: ``` package cn.com.sparknet.AuthAPI.internal.v1.util; /** * 获取Web服务器 * @author chenxy * */ public class ServerDetector { private static ServerDetector instance = new ServerDetector(); private String s 阅读全文
posted @ 2020-04-17 10:38 mcbbss 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 前言 缓存是什么?缓存如何使用?何时该使用? 主体概要 高并发之缓存 特征、场景及组件介绍 高并发之缓存 redis的使用 高并发之缓存 高并发场景问题及实战 主体内容 一、高并发之缓存 特征、场景及组件介绍 1.以下是客户端请求数据的过程。 随着用户数量不断增加,服务器资源消耗增大,这时就需要引入 阅读全文
posted @ 2020-04-14 22:30 mcbbss 阅读(530) 评论(0) 推荐(0) 编辑
摘要: 问题概要 我在研究volatile关键字应用场景的时候,无意中发现了while在多线程情况下出现了“非正常输出“的情况。 问题分析 这段代码的意义是创建两个线程,分别执行test1()方法和test2()方法,其中标识全局变量(也就是两个线程共享的变量)flag初始化为false;为了使步骤更加清晰 阅读全文
posted @ 2020-04-14 10:09 mcbbss 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 前言 高并发场景特别多,本文章将对高并发处理的主要扩容方向作分析,讲解部分实现,但是,不包括所有的高并发场景。 主体概要 扩容 主体内容 一、扩容 1.了解Java 内存结构的应该都知道 , 每个线程都有自己的工作内存, 占用内存大小取决于工作内存里变量的多少与大小 , 单个线程占用内存通常不会很大 阅读全文
posted @ 2020-04-09 22:16 mcbbss 阅读(661) 评论(0) 推荐(0) 编辑
摘要: 前言 本章将阐述多线程并发的拓展及总结 主体概要 死锁 并发最佳实践 Spring与线程安全 HashMap与ConcurrentHashMap解析 多线程并发与线程安全总结 主体内容 一、死锁 1.首先,祭出一张熟悉的图,可以看到中间的四辆直行车辆互相在等待其他车让路,大家都动弹不得。如果没有人指 阅读全文
posted @ 2020-03-30 21:30 mcbbss 阅读(444) 评论(0) 推荐(0) 编辑
摘要: 前言 之前的例子中基本上都用到了线程池,一般我们都是把任务初始化好之后直接丢到线程池就可以了,使用起来非常简单方便。 主体概要 线程池与new Thread对比 线程池的几个类介绍 线程池的几种状态 ThreadPoolExecutor的几个方法 线程池的合理配置 主体内容 一、线程池与new Th 阅读全文
posted @ 2020-03-26 22:24 mcbbss 阅读(883) 评论(0) 推荐(0) 编辑
摘要: 前言 J.U.C的拓展组件有哪些?分别在什么场景下使用?如何使用? 主体概要 J.U.C-FutureTask J.U.C-ForkJoin J.U.C-BlockingQueue 主体内容 一、J.U.C-FutureTask 1.这里要介绍的第一个组件是FutureTask,这个组件是J.U.C 阅读全文
posted @ 2020-03-23 21:45 mcbbss 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 1.接口TestController import java.util.Random; import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.dysmsapi.model.v 阅读全文
posted @ 2020-02-24 13:43 mcbbss 阅读(779) 评论(2) 推荐(0) 编辑