自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 1|Java代码是怎么跑起来的?

我写的Java代码时怎样在机器上跑起来的?这篇文章就尝试把这个问题说一下✍。Java代码执行流程。

2024-01-28 09:29:13 306

原创 redis的那些事(二)——布隆过滤器

布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。

2023-12-24 23:04:44 92

原创 Redis相关的那些事(一)

通过预热的方式,把热点key打散,把压力分散到整个集群;通过减小value的size,压缩、修改缓存颗粒度;引入缓存过期时间对峰值尖刺进行削峰,减少并发量;

2023-12-24 22:37:28 130

原创 聊一下用户增长

互联网行业是一个讲究规模的行业,用户规模决定了公司的地位和发展动能,没有一家互联网公司能离开用增这个话题,怎么做好用户增长是互联网公司活下去且做大做强的关键。所谓的增长黑客,就是通过数据分析,发现挖掘用户增长点,达到增长的目标。

2023-12-10 22:49:23 665

原创 关于投放平台

投放平台其实是维护人-货-场关系的系统,而投放最终目的是为了转化,一个好的投放平台必定是能够帮助运营&客户更有效的利用流量进行转化。更精准的人群、更有吸引力的创意、更优的触达体验这些都是投放系统可以努力的方向。

2023-12-10 22:21:57 141

原创 20231116随笔

躺了两年,总结回顾一波

2023-12-03 22:48:33 27

原创 LVS nat模式操作系统配置总结

LVS nat模式操作系统配置总结

2021-04-07 23:26:19 143

原创 树莓派安装docker

操作系统版本:root@raspberrypi:/tmp# cat /proc/version Linux version 4.19.118-v7l+ (dom@buildbot) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #1311 SMP Mon Apr 27 14:26:42 BST 2020root@raspberrypi:/tmp# uname -aLinux raspberrypi 4.19.11

2021-03-29 23:46:04 415 1

原创 20210311阿里面经

投的阿里广州JAVA开发岗一面:打开邮箱的连接,使用阿里的伯乐面试平台进行视频面试:上来先自我介绍手写快排算法(有点紧张,排序逻辑写出来了,最后递归时入参写错了)讲一下工作中遇到的最大的难题?最终用的什么技术方案实现的?JAVA基础知识:a. 讲一下所知道的JAVA集合类型,简单介绍一下所知道的东西b. 引申问题a,讲一下HashMap的原理,java1.7 1.8有啥区别之类的?c. 讲一下JAVA异常处理?运行时异常和检出异常有啥区别?讲一下经常碰到的运行时异常和检出异常?d. J

2021-03-11 22:40:25 166

原创 Nacos笔记——配置中心与服务注册发现

NacosNacos是阿里云提供的一个配置中心与服务注册发现中心组件。官网:https://nacos.io/zh-cn/docs/what-is-nacos.html相关注解@RefreshScope@EnableDiscoveryClient@LoadBalanceSpringCloud结合Nacos的示例在官网中已经很清楚了,在这里我就只记录一下我自己在SpringCloud中使用Nacos遇到的问题和解答。1. @RefreshScope是如何工作?总结:RefreshScope其实

2021-02-22 23:58:37 232

原创 Zookeeper下载及基本操作

镜像地址:http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.6.2/下载后直接解压即可使用准备配置文件默认使用/opt/apache-zookeeper-3.6.2-bin/conf/zoo.cfgcp /opt/apache-zookeeper-3.6.2-bin/conf/zoo_sample.cfg /opt/apache-zookeeper-3.6.2-bin/conf/zoo.cfg配置项:属性key值含义

2021-02-18 23:36:40 150

原创 DispatcherServlet源码剖析

DispatcherServlet源码剖析(一)使用Spring MVC时,会在tomcat的上下文配置文件加入类似以下配置:<web-app> <servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServl

2021-02-04 23:18:21 124

原创 事务隔离级别——未提交读、已提交读、可重复读、串行

事务隔离级别——未提交读、已提交读、可重复读、串行事务隔离级别是指多个事务之间,不同事务中涉及的读写操作互相影响的隔离。其中多个事务中同时对同一条数据或者表进行写操作(insert、update、delete),必定会导致事务间数据的相互影响,导致不可预知问题发生。主要的问题可以归为以下几种:脏读——A事务读取B事务尚未提交的数据,此时如果B事务发生错误并执行回滚操作,那么A事务读取到的数据就是脏数据。不可重复读——事务A在执行读取操作,由整个事务A比较大,前后读取同一条数据需要经历很长的时间 。而

2021-02-01 23:23:47 2762

原创 Shiro框架入门(二)——shiro+springboot

Shiro框架入门(二)——shiro+springboot这篇文章围绕参考shiro源码中的例子,剖析一下项目结构。文件结构一个典型的SpringBoot应用,入口类为WebAppPom需要引入shiro-spring-boot-web-starter <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-sprin

2021-01-29 22:51:18 203

原创 面试复习资料

一、Zookeeper总结二、SpringIoC总结

2021-01-28 23:32:07 68

原创 Zookeeper是啥?

Zookeeper是啥?ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。ZooKeeper包含一个简单的原语集,提供Java和C的接口。ZooKeeper代码版本中,提供了分布式独享锁、选举、

2021-01-28 23:30:02 196

原创 用户管理系统

用户管理系统相关问题1、 粉丝系统如何设计?功能点系统架构图关键流程图界面原型数据库设计接口设计

2021-01-26 23:00:17 1584

原创 个人工作台项目

个人工作台项目最近打算做一个个人工作台项目,目的是把DevOps的一整套流程打通一遍,掌握整个web应用的生命周期,在这里记录开发的全流程目前按计划做以下几点功能: 用户管理 博客管理 个人事务跟踪 在线画图平台 。。。(功能有待细化)主要设计技术栈:SpringBoot、Dubbo、React、ZooKeeper、Shiro、Spring-session、Mybatis软件架构图...

2021-01-26 22:53:41 870

原创 粉丝关注系统如何设计?

粉丝关注系统如何设计?引用博客:https://blog.csdn.net/shenjian58/article/details/99793765总结:关系链业务是一个典型的多对多关系,又分为强好友与弱好友数据冗余是一个常见的多对多业务数据水平切分实践冗余数据的常见方案有三种 (1)服务同步冗余 (2)服务异步冗余 (3)线下异步冗余数据冗余会带来一致性问题,高吞吐互联网业务,要想完全保证事务一致性很难,常见的实践是最终一致性最终一致性的常见实践是,尽快找到

2021-01-26 22:44:51 1252

原创 Spring的ApplicationContext加载(四)——史上最详细流程图?

SpringApplicationContext加载详细流程图汇总了之前的几篇文章的流程图,其中Spring定义的通过BeanFactoryPostProcessor、BeanPostProcessor实现的各个扩展点用黄色标注出来。通过了这些PostProcessor,Spring在IOC的基础上实现了AOP、SpringBean、SpringMVC等等,一切都来源于这套Bean加载的流程。大家走过路过帮忙点个赞~...

2021-01-25 23:03:18 246

原创 汇总——三个图帮你搞懂spring的bean加载过程

汇总——三个图帮你搞懂spring的bean加载过程终于把Spring bean加载的流程图都搞出来了,这里搞个汇总文章方便大家浏览。个人感觉看这三个图可以大概把bean加载的流程都理清楚。建议可以一边看源码一边对照着流程图看。若有不正确的地方,欢迎指出~Spring的ApplicationContext加载(一)Spring的ApplicationContext加载(二)——AbstractBeanFactory.doGetBean方法流程图Spring的ApplicationContext加载(

2021-01-23 23:48:10 334

原创 Spring的ApplicationContext加载(三)——AbstractAutowireCapableBeanFactory.doCreateBean方法流程图

Spring的ApplicationContext加载(三)——AbstractAutowireCapableBeanFactory.doCreateBean方法流程图

2021-01-23 23:42:43 201

原创 笔记——分布式session解决方案

分布式Session会话解决方案使用容器扩展插件来实现,比如基于Tomcat的tomcat-redis-session-manager插件,基于Jetty的jetty-session-redis插件、memcached-session-manager插件;这个方案的好处是对项目来说是透明的,无需改动代码,但是由于过于依赖容器,一旦容器升级或者更换意味着又得重新配置;使用Nginx负载均衡的ip_hash策略实现用户每次访问都绑定到同一台具体的后台tomcat服务器实现session总是存在;

2021-01-21 23:40:10 140

原创 Spring的ApplicationContext加载(二)——AbstractBeanFactory.doGetBean方法流程图

Spring的ApplicationContext加载(二)——AbstractBeanFactory.doGetBean方法流程主要流程:1、调用getSingleton方法,从缓存中尝试获取bean实例,解决循环引用问题(具体解决方式可看博客:https://blog.csdn.net/weixin_42440637/article/details/112254141)2、检测是否存在循环依赖3、按照不同的作用域(scope)分别选取不同的委托类进行初始化(实际上就是缓存机制不一样)...

2021-01-19 23:12:41 227

原创 Tomcat类加载问题(一)

Tomcat类加载问题(一)最近有个同事在公司碰到了一个关于类加载的问题拉我一起看了一下,研究后发现挺经典的,写篇笔记记录一下。问题现象这个应用是一个框架型的应用,提供了一种插件机制,可以通过注册jar包插件进行一些定制化的数据分析入库操作。运行背景:1、定制了插件A,jar包为xxx_plugin.jar2、插件A中调用了CBB的jar包,xxxx_cbb.jar3、web应用创建任务过程中也同样调用了xxxx_cbb.jar4、任务由其他应用App_n调用此应用的接口,接口通过识别对应的字

2021-01-18 23:47:54 310

原创 shiro框架入门(一)

shiro框架入门(一)

2021-01-13 00:00:10 203

原创 2| Class文件是个啥?

Class文件是个啥?为啥需要编译?大家都知道Java是一门静态语言,java文件会通过编译生成class文件,运行时jvm直接加载运行class文件。jvm面向字节码而不是机器码,个人理解有以下几个好处:java虚拟机在机器和java程序之间抽象出来一个统一的接口,使得编译出来的同一份字节码文件可以在不同的平台上运行;提前把源码的校验、编译等耗时操作放到编译过程,加快程序执行效率;java可以认为是一种半解释性语言(jvm通过实时解释class文件生成机器码运行),即拥有解释性语言可移植的特性

2021-01-11 22:53:52 4589 5

原创 SpringApplication源码剖析(一)——构造方法

SpringApplication源码剖析(一)——构造方法之前通过看了AbstractApplicationContext.class、DefaultListableBeanFactory.class、AbstractBeanFactory.class几个类基本了解到了SpringIoC相关特性的原理具体代码实现。从这篇文章开始将打算了解以下SpringBoot应用的启动过程。SpringBoot应用入口是SpringApplication.run()方法,因此从这个方法为入口,看一下相关的源码。构造

2021-01-10 22:01:53 238

原创 ApplicationContext加载流程图(一)

SpringContext加载流程图

2021-01-08 13:24:01 369

原创 为什么Spring要使用三级缓存解决循环依赖?

为什么Spring要使用三级缓存解决循环依赖?按照理论分析,只需要二级缓存即可以解决循环依赖的问题。比如存在循环依赖关系:A->B->A只使用二级缓存,代码逻辑可能是这样:但是如果引入了AOP,A、B最终拿到的都是代理对象,那么逻辑将会变成这样:那这样会有啥问题呢?先看一下AbstractAutoProxyCreator这个InitializationAwareBeanPostProcessor的代码:关键方法:1、public Object getEarlyBeanRef

2021-01-06 13:15:48 2536

原创 一篇文章搞懂Spring单例循环依赖加载

搞懂Spring Context加载过程(二)上一篇文章搞懂Spring Context加载过程(一)主要讲了ApplicationContext中refresh()方法的源码,提到了在BeanFactory加载完的最后会调用DefaultListableBeanFactory.preInstantiateSingletons()方法预加载单例Bean。本篇文章继续看一下DefaultListableBeanFactory.preInstantiateSingletons()方法的源码,最终调用的是Abs

2021-01-05 23:22:29 208 1

原创 搞懂Spring ApplicationContext加载过程

一篇文章搞懂Spring Context加载过程在网上看到一篇文章,很详细的说明了Spring Bean的加载过程,https://www.cnblogs.com/zrtqsk/p/3735273.html。从我的上一篇博客:一个脑图搞懂Spring IoC配置,可以了解到,Spring IoC之所以可以灵活的扩展,是通过BeanPostProcessor、BeanFactoryPostProcessor、BeanAware接口实现的。本篇文章将结合源码,总结一下Spring Bean的加载过程。Spr

2021-01-04 23:36:07 586

原创 一个脑图搞懂Spring IoC配置

Spring笔记——IoC配置本文将总结spring框架IoC特性相关配置方式,主要参考spring官网的教程:https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans,将结合文章:Spring源码剖析——DefaultListableBeanFactory一起探索IoC相关特性及底层实现关联。总结脑图Bean相关属性...

2020-12-31 00:51:46 88

原创 Spring源码剖析——DefaultListableBeanFactory

SpringFramework源码剖析——DefaultListableBeanFactory大家都知道Spring框架主要提供了IoC与AOP两种能力,而IoC能力主要涉及到Bean的注册,AOP更多的是与上下文相关的配置。Bean的注册主要由BeanFactory负责,而ApplicationContext则负责程序完整上下文管理,从继承关系也可以看出来ApplicationContext是BeanFactory的超集,ApplicationContext是BeanFactory功能的拓展。publ

2020-12-29 23:30:18 304

原创 Swagger使用笔记

Swagger使用笔记使用Swagger Codegen生成接口代码参考github:https://github.com/swagger-api/swagger-codegen先在项目pom中增加依赖:<dependency> <groupId>io.swagger</groupId> <artifactId>swagger-codegen-maven-plugin</artifactId> <version

2020-12-27 11:01:37 421 2

原创 Spring Boot笔记

Spring Boot笔记官网介绍官网google直译结果总的来说关键点有几个:1、SpringBoot应用可直接通过java -jar启动2、提供默认的框架配置,开箱即用,快速开发使用Spring Boot参考官网:https://docs.spring.io/spring-boot/docs/current/reference/html/using-spring-boot.html#using-boot总结了几个关键点:pom中继承spring-boot-starter-paren

2020-12-24 23:53:41 79

原创 Mysql Explain命令笔记

Mysql Explain命令笔记用法EXPLAIN <SQL语句>EXPLAIN SELECT * FROM TBL_TEST WHERE ID=123;使用explain命令可以查看某个SQL语句的执行过程,查看该SQL是否有用到索引,使用索引的方式,有没有作全表扫描,排序的时候有没有使用临时表等,对于SQL优化点的排查有很好的帮助。输出±-----±------------±---------±-----±--------------±--------------±------

2020-12-22 23:26:39 55

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除