- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 探索volatile可见性的本质
相信volatile关键字大家都不陌生,volatile实际解决两个问题,第一是保证线程之间共享变量的可见性问题,第二是解决指令重排序问题,可见性问题是怎么产生的?为什么指令会重排序?volatile为什么会解决这些问题?围绕这几个问题进行一下探讨。可见性的现象先来看一段代码,定义一个boolean flag为线程终止标记,启动线程3s之后,主线程将boolean flag更改为true。public class VolatileTest { private static volatile.
2020-11-10 21:06:10
222
原创 消息中间件之rabbitMQ实战-死信队列
该篇文章内容较多,包括有rabbitMq相关的一些简单理论介绍,集成spring Boot,provider消息推送实例,consumer消息消费实例,Direct(直连类型交换机)、Fanout(广播类型交换机)的使用、死信队列等。MQ使用场景1、异步:当一个服务调用链路过长时,而用户只关心前面的流程,例如下订单、减库存、增积分、发短信等等,而用户只关心我的订单是否创建成功,后面的流程可以放到MQ去通知下游系统。2、解耦:你一个订单流程,你扣积分,扣优惠券,发短信,扣库存。。。等等这么多业务要调
2020-10-25 17:48:39
984
3
原创 循环遍历法反转单向链表(附图)
最近有人聊到单向链表反转的相关问题,自己闲来无事研究一下。先画图了解一下单向链表看一下,一个链表有多个节点组成,每个节点指向下一个节点,最后一个的指向是null。思路:从头节点开始设置头节的nextNode为null,当前节点的nextNode指向头节点,如此一来还需要定义一个nextNode来记录下一个节点,然后指针统一向右移动一位。三个重要角色:firstNode、currentNode、nextNode。STEP 1设置first节的nextNode为nullSTEP 2cur.
2020-10-24 15:31:13
438
原创 spring-boot-starter之ElasticSearch RestHighLevelClient 7.9.2高级客户端(附源码)
Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。现已更新到7.9,现阶段网上相关教程相当有限,由于项目要支持客户360视图搜索,数据量20亿+,把最近的实战整理出来,如有欠缺欢迎下方评论。本文参考链接:Elasticsearch官方文档手写属于自己的elasticsearch-spring-boot-start1、pom文件<.
2020-10-17 11:51:58
1538
原创 设计模式与设计原则
设计原则1、开闭原则开闭原则(Open Closed Principle,OCP)由勃兰特·梅耶(Bertrand Meyer)提出,他在 1988 年的著作《面向对象软件构造》(Object Oriented Software Construction)中提出:软件实体应当对扩展开放,对修改关闭(Software entities should be open for extension,but closed for modification),这就是开闭原则的经典定义。2、里氏替换原则里氏替换原
2020-10-12 18:58:22
250
原创 手动实现Mybatis @Mapper
总所周知Mybatis的dao接口是没有接口实现的,那我们在调用的时候是什么样的过程呢?接下来一起看一下Mybatis是怎么实现的,以查询为例。创建所需要的注解@Mapperpackage ds.young.spring.ioc.annotation;import org.springframework.stereotype.Component;import java.lang.annotation.*;@Target({ElementType.TYPE})@Retention(Rete
2020-10-12 18:55:36
1102
原创 使用token、Redis、AOP实现接口幂等
接口的幂等性原则1、接口调用存在的问题现如今我们的系统大多拆分为分布式SOA,或者微服务,一套系统中包含了多个子系统服务,而一个子系统服务往往会去调用另一个服务,而服务调用服务无非就是使用RPC通信或者restful,既然是通信,那么就有可能在服务器处理完毕后返回结果的时候挂掉,这个时候用户端发现很久没有反应,那么就会多次点击按钮,这样请求有多次,那么处理数据的结果是否要统一呢?那是肯定的!尤其在支付场景。2、什么是接口幂等性接口幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不
2020-10-12 18:52:07
693
原创 Spring初体验
Spring初体验关键字java行业标准 万能胶 生态简化开发的四个策略基于POJO的轻量级和最小侵入性编程。通过依赖注入和面向接口松耦合。基于切面和惯性进行声明式编程。通过切面和模板减少样板式代码。Spring中的编程思想Spring思想应用场景(特点)概括OOPObject Oriented Programming(面向对象编程)用程序归纳总结生活中一切事务封装、继承、多态BOPBean Oriented Programming(
2020-10-11 16:51:46
492
4
gradle-4.4.1-bin.zip
2020-10-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人