摘要:
在了解volatile的原理前,我们先来看个示例代码: public class Visualable { public static boolean initFlag=false; public static void main(String[] args) throws InterruptedE 阅读全文
摘要:
一. 啥是索引: 索引是排好序的数据结构。 这里关键是有序,数据结构 二.索引的结构 1. 索引为何不用二叉树结构 原因:当索引字段递增时,如主键索引,二叉树会退化成一个链表,如果是数据有几百上千万,那链表就会很长,查询数据如果在链表最末尾,那就相当于全表扫描了:如图: 2. 索引为何不用红黑树,红 阅读全文
摘要:
背景:我们如果要查询一个商品列表的信息,需要调用后台商品列表一个接口,类似: 但,如果我们要了解一个系统的状况信息呢,如健康状态,内存使用率,cpu占用率;此时我们还是一样需要调用一个接口,但这个接口是给运维人员使用的或者内部使用的, 并非给用户端调用的;为了区分这种场景,springboot新增了 阅读全文
摘要:
背景:很多商城,商品详情的链接格式:https://item.jd.com/100005786822.html,不同的商品详情的链接不一样的地方在于商品编号,如,我有个商品1002002,那么商品详情的链接为https://item.jd.com/1002002.html; 当我们访问商品详情链接时 阅读全文
摘要:
背景:我们在淘宝购物时,选择了某个地址,有时会提示可以选择放到附近的快递柜子,这种是如何实现的呢?用redis geo api可以简单的实现该功能 思路:1. 我们先将所有的快递柜子存到redis中,这些快递柜信息要包含经纬度 /** * * @param longitude 经度 * @param 阅读全文
摘要:
springcloud的注册中心都会跟ribbon进行整合进行负载均衡,既然要进行负载均衡,那么就需要进行服务列表的发现,而ribbon为了让每个注册中心进行整合,提供了一个抽象类:AbstractServerList 可以参考我的ribbon源码分析:Ribbon源码分析(二)-- 服务列表的获取 阅读全文
摘要:
一.如何入手源码过程:一般springcloud整合各大框架,基本都用到了springboot的自动装配机制,也就是在依赖包下,META-INF文件夹,spring.factories文件,包含了启动该框架的一些配置类 根据这个原则,我们查看: 由此我们发现了2个跟服务注册相关的类: ConsulA 阅读全文
摘要:
背景:consul注册中心,对已经下线的服务不会立刻剔除,过了很久才会剔除,这样会导致很多问题,例如a服务明明已经下线,但还在注册中心注册,这样其他服务可能就会访问到该服务 处理思路:我们可以监听spring的关闭事件,然后在该监听方法中剔除下线的服务即可: 注册中心已经有2个服务,第二个是我本地启 阅读全文
摘要:
在开发中,无意发现,rabbitMq有些队列监听会导致bean的属性为空,有些队列不会,如图所示: 解决方案非常简单,是因为监听方法私有了: 阅读全文
摘要:
一.背景:spring提供了@Async异步注解,使得方法的调用可以异步的进行,下面代码提供简单的演示: @Configuration @EnableAsync @ComponentScan("com.yang.xiao.hui.aop") public class App { public sta 阅读全文