摘要:
若线程池中的核心线程数被用完且阻塞队列己排满,则此时线程池的线程资源已耗尽,线程池将没有足够的线程资源执行新的任务。为了保证操作系统的安全,线程池将通过拒绝策略处理新添加的线程任务。 JDK 内置的拒绝策略有A b ortPo li cy 、Ca ll erRunsPo li cy 、Discard 阅读全文
摘要:
在并发编程领域,有两个关键问题:线程之间的通信和同步。 线程之间的通信 并发工具类 1、CountDownLatch 2、CyclicBarrier 3、Semaphore 4、Exchanger 5 CountdownLatch的加强版 phaser 线程的通信是指线程之间以何种机制来交换信息。在 阅读全文
摘要:
常见的注册中心: 1.Eureka(原生,2.0遇到性能瓶颈,停止维护)2.Zookeeper(支持,专业的独立产品。例如:dubbo)3.Consul(原生,GO语言开发)4.Nacos Nacos是以服务为主要服务对象的中间件,Nacos支持所有主流的服务发现、配置和管理。Nacos主要提供以下 阅读全文
摘要:
Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。它可以在修改代码的同时同步修改接口文档,一个最大的优点是能实时同步api与文档 一些注解说明 对这些常用的注解及元素说明,具体的其他元素可以查看源码。 @Api:用在类上- tags:描述类的用 阅读全文
摘要:
1. 直接用limit start, count分页语句, 也是我程序中用的方法: select * from product limit start, count当起始页较小时,查询没有性能问题,我们分别看下从10, 100, 1000, 10000开始分页的执行时间(每页取20条), 如下: s 阅读全文
摘要:
VM 内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法区】、线程共享区域【JAVA 堆、方法区】、直接内存 1 线程私有 程序计数器,虚拟机栈,本地方法栈 2 线程共享 堆,方法区 阅读全文
摘要:
分布式系统中,实现分布式事务的解决方案: a. 两阶段提交 2PC b. 补偿事务 TCC c. 本地消息表(异步确保) d. MQ 事务消息 e. Sagas 事务模型 阅读全文
摘要:
1幂等性是开发当中很常见也很重要的一个需求,尤其是支付、订单等与金钱挂钩的服务,保证接口幂等性尤其重要。在实际开发中,我们需要针对不同的业务场景我们需要灵活的选择幂等性的实现方式: 对于下单等存在唯一主键的,可以使用“唯一主键方案”的方式实现。 对于更新订单状态等相关的更新场景操作,使用“乐观锁方案 阅读全文
摘要:
1 读未提交。能读到其他事务还未提交的数据,这种现象叫做脏读 2 读已提交。只会读取其他事务已经提交的数据,所以不会产生RC的脏读问题。 所以又带来一个问题叫做不可重复读,一个事务中两次一样的SQL查询可能查到的结果不一样 3 可重复读Repeatable Read:RR是Mysql的默认隔离级别, 阅读全文
摘要:
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分 阅读全文