前言 前面分析了Redisson可重入锁的原理,主要是通过lua脚本加锁及设置过期时间来保证锁执行的原子性,然后每个线程获取锁会将获取锁的次数+1,释放锁会将当前锁次数-1,如果为0则表示释放锁成功。 可重入原理和JDK中的可重入锁都是一致的。 Redisson公平锁原理 JDK中也有公平锁和非公平 ...
分类:
其他好文 时间:
2020-03-20 12:31:11
阅读次数:
68
前言前段时间写了一篇对协程的一些理解,里面提到了不管是协程还是callback,本质上其实提供的是一种异步无阻塞的编程模式;并且介绍了java中对异步无阻赛这种编程模式的支持,主要提到了Future和CompletableFuture;之后有同学在下面留言提到了RxJava,刚好最近在看微服务设计这 ...
分类:
编程语言 时间:
2020-03-20 10:36:27
阅读次数:
58
1Kong基本介绍Kong基于Nginx和lua实现的APIGateWay,用于管控Restful接口:使用修改过的Nginx作为代理服务器,即Openrestry,该服务器负责处理Api请求。Cassandra或者postgresql用作数据存储(Datastore)服务器,存储来自kong操作的数据。数据持久化建议采用Cassandra,原因如下:1)易于构建分布式2)易于扩展。基于Apach
分类:
其他好文 时间:
2020-03-20 09:14:18
阅读次数:
1117
工作流程: 1.开发时使用c#进行开发,所有需要热补丁的脚本可以通过白名单进行配置HotfixCfg 2.需要热补丁的地方可以通过lua脚本进行修复xlua.hotfix(class, [method_name], fix) xlua.hotfix(CS.BaseTest, 'Foo', funct ...
分类:
其他好文 时间:
2020-03-17 19:24:44
阅读次数:
56
什么是限流?为什么要限流 通俗的来讲,一根管子往池塘注水,池塘底部有一个口子往外出水,当注水的速度过快时,池塘的水会溢出,此时,我们的做法换根小管子注水或者把注水管子的口堵住一半,这就是限流,限流的目的就是为了防止池塘的水溢出,放在软件开发中,一台硬件的CPU和内存总归是有限的,能处理的请求量是有一 ...
分类:
其他好文 时间:
2020-03-16 15:11:17
阅读次数:
59
等了大半年,松鼠脚本终于释出了3.0稳定版本 松鼠脚本可以说是Lua的超级增强版,作者在Crysis项目使用Lua多年,深知Lua的优缺点.之后自己编写了松鼠脚本来解决诸如class,attribute,delegation,更强大的thread,exception等等功能. 松鼠脚本本身对Wind ...
分类:
其他好文 时间:
2020-03-14 22:11:53
阅读次数:
96
第40条:考虑用协程来并发地运行多个函数 线程有三个显著的缺点: 为了确保数据安全,我们必须使用特殊的工具来协调这些线程。这使得多线程的代码,要比单线程的过程式代码更加难懂。这种复杂的多线程代码,会逐渐另程序变得难于扩展和维护。 线程需要占用大量内存,每个正在执行的线程,大约占据8MB内存。 线程启 ...
分类:
编程语言 时间:
2020-03-14 21:40:13
阅读次数:
75
0 预备知识: 至少对Lua手册C API有简单的了解。lua5.3手册中文 1 Lua虚拟机的栈,如图: 假设虚拟机的栈有n个数据: 解释: 两种解释方式: A,栈顶开始, -1 ...-n B,栈底开始,1 ...n 二、运行原理和调用栈机制实例 创建main.lua 1 function Lu ...
分类:
其他好文 时间:
2020-03-13 12:55:41
阅读次数:
38
几个概念 协程代码块: 一个入口点和下一个入口点(或者退出点)中的代码。 协程模块: 由n个入口点代码,和n个协程代码块组成。第一个入口点通常是一个函 数入口点。其组织形式如:函数入口点 协程代码块 入口点 协程代码块…,入口点和代码块相间。 线性模块:一个同步函数的函数体是线性执行的。也就是说一个 ...
分类:
其他好文 时间:
2020-03-10 22:14:45
阅读次数:
71
cartographer 调参(1) lua文件配置参考文档 https://blog.csdn.net/SimileciWH/article/details/84861718 Lua configuration reference documentation 请注意,Cartographer的RO ...
分类:
其他好文 时间:
2020-03-10 22:14:04
阅读次数:
77