![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
随笔
文章平均质量分 65
阿瓦达啃小瓜
这个作者很懒,什么都没留下…
展开
-
记一次工作中使用spring-boot-activemq的排错经历
一. 问题描述最近在使用新版本的spring boot连接activeMQ时(2.1.1.RELEASE)遇到了一个问题:引入依赖后,<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.1.RELEASE</version原创 2020-07-16 17:58:14 · 3696 阅读 · 0 评论 -
HashMap 源码解析
1. HashMap的初始化static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16HashMap 中的 Node 数组的初始大小。实例化一个 HashMap 对象后,Node数组为null,只有在第一次往 HashMap 中put数据时,Node数组才会初始化,初始化的大小就是 DEFAULT_INITIAL_CAPACITY。transient Node<K,V>[] table; // Node原创 2021-04-12 16:00:49 · 159 阅读 · 0 评论 -
Java中的overflow-conscious code
1. 背景在jdk源码中,会有很多考虑了溢出而编写的代码,这些代码前会有注释:“overflow-conscious code”,说明下面这段代码是考虑了溢出的情况的。最经典的代码就是 ArrayList 里的 grow() 方法,如下所示:/** * The maximum size of array to allocate. * Some VMs reserve some header words in an array. * Attempts to allocate larger array原创 2021-04-02 11:55:54 · 4856 阅读 · 0 评论 -
Spring编程思想:二. Spring IoC依赖查找
1. 单一类型依赖查找单一类型依赖查找接口:BeanFactory根据Bean名称查找:getBean(String)根据Bean类型查找:Bean实时查找:getBean(Class)Spring 5.1 Bean延迟查找:getBeanProvider(Class)getBeanProvider(ResolvableType)根据Bean名称 + 类型查找:getBean(String, Class)2. 集合类型依赖查找集合类型依赖查找接口:List原创 2020-11-20 08:03:16 · 266 阅读 · 0 评论 -
Spring编程思想:一. Spring Bean基础
1. 定义Spring BeanBeanDefinition用来描述Spring中的Bean对象,包含:Bean的类名Bean配置元信息:作用域、自动绑定的模式、生命周期回调其他Bean引用,或依赖Bean属性2. BeanDefinition 元信息2.1 概述属性说明classBean 全类名,必须是具体类,不能用抽象类或接口NameBean 的名称或ID(Bean的识别符)ScopeBean 的作用域(如:singleton,prototype原创 2020-11-12 19:31:15 · 146 阅读 · 0 评论 -
亿级流量(二)redis的RDB持久化配置及数据恢复
1. 如何配置RDB持久化redis.conf文件中配置持久化save 60 1000每隔60s,如果有超过1000个key发生了变更,就会生成一个新的dump.rdb文件,就是当前redis内存中完整的数据快照,这个操作也被称之为snapshotting,快照也可以手动调用save或bgsave命令,同步或异步执行rdb快照生成。save可以设置多个,就是多个snapshotting检查点,每到一个检查点,就会区check一下,是否有指定的key数量发生了变更,如果有,就生成一个新的dump原创 2020-08-27 10:17:03 · 175 阅读 · 0 评论 -
亿级流量(一)Redis的RDB和AOF两种持久化机制
RDB持久化:每隔一段时间,将内存中的数据dump出来一份快照AOF持久化:对每条写入命令做日志,以append-only的模式写入一个日志文件中。在redis重启的时候,可以通过回放AOF日志中的写入指令来重新构建整个数据集。如果同时使用RDB和AOF两种持久化机制,那么在redis重启的时候,会使用AOF来钩心构建数据,因为AOF中的数据更加完整。RDB持久化机制的优点RDB会生成多个数据文件,每个数据文件代表了某个时刻中redis的数据。这种多个数据文件的方式,非常适合做冷备,可以将.原创 2020-08-27 10:15:07 · 136 阅读 · 0 评论 -
Zookeeper分布式锁实现原理
一、写在前面直接基于比较常用的Curator这个开源框架,聊一下这个框架对ZooKeeper(以下简称zk)分布式锁的实现。二、ZooKeeper分布式锁机制参见上图。zk里有一把锁,这个锁就是zk上的一个节点。然后呢,两个客户端都要来获取这个锁,具体是怎么来获取呢?假设客户端A抢先一步,对zk发起了加分布式锁的请求,这个加锁请求是用到了zk中的一个特殊的概念,叫做“临时顺序节点”。简单来说,就是直接在"my_lock"这个锁节点下,创建一个顺序节点,这个顺序节点有zk内部自行维护的一个节点序号原创 2020-08-17 19:25:57 · 147 阅读 · 0 评论 -
lua中的面向对象
lua实现面向对象编程是基于元表 metatable,元方法 __index 来实现的。lua中的语法糖lua的table中可以定义函数,如下图:local a = { x = 1, print = function(obj) print("x=" .. obj.x) end}如上图,定义了一个名叫 a 的table,可以通过调用 a.print(a) 来打印table a 中的 x key对应的value值。像是 a.print(a) 这种形式,在.原创 2020-08-17 18:47:39 · 303 阅读 · 0 评论 -
lua-resty-core 和 lua-nginx-module
lua-nginx-module 模块在openresty中,lua-nginx-module 是一个基础的模块,这个模块中暴露出去了很多的API可以供我们来使用。但是 lua-nginx-module 这个模块存在一个问题:模块中调用C函数的API都是使用Lua C API来完成。对于那些能够被 Lua 调用的 C 函数来说,它的接口必须遵循 Lua 要求的形式:typedef int (*lua_CFunction)(lua_State* L)这个代表一个函数指针,参数为 lua_State原创 2020-08-17 18:36:36 · 1795 阅读 · 2 评论 -
post传参的方式及接收参数的方法
1. application/x-www-form-urlencoded发送这应该是最常见的 POST 提交数据的方式了。浏览器的原生 <form\> 表单,如果不设置 enctype 属性,那么默认就会以 application/x-www-form-urlencoded 方式提交数据。在postman中对应的就是post方式下的 x-www-form-urlencoded。在jQuery中,ajax请求,Content-Type的默认值就是application/x-www-for原创 2020-07-16 18:08:27 · 19762 阅读 · 0 评论