apisix 最详细源码分析以及手撸一个 apisix

2021-11-15
阅读 21 分钟
9.5k
寻找 juajit 路径 运行 /usr/local/Cellar/openresty/1.19.9.1_2/luajit/bin/luajit ./apisix/cli/apisix.lua start
封面图

【重磅!进 BAT 必读,大厂对分布式线上问题真实拷问连环炮!(已更新一波)】

2019-10-29
阅读 25 分钟
5.4k
大厂要求 技术广度 项目经验 生产经验 技术深度 系统设计 Dubbo vs Spring Cloud Eureka: 服务注册Feign:服务调用Ribbon:负载均衡Zuul/Spring Cloud Gateway: 网关,灰度发布、统一限流(每秒 1W 个请求)、统一熔断、统一降级、统一缓存、统一授权认证Hystrix:链路追踪Stream: Dubbo 底层运行原理 消费者 动态代理:Pro...

【深入浅出-JVM】(序)

2019-07-15
阅读 1 分钟
2.9k
本系列主要是让一个刚入门的 java 开发者,也能愉快的从零开始成为一个真正的 jvm 大神。 大纲 java 虚拟机的定义、总体架构、常用配置 垃圾回收算法、各类垃圾回收器 java 虚拟机对多线程的支持 java 虚拟机的 class 文件结构 java 虚拟机的执行系统 待定 感谢您的耐心阅读,如果您发现文章中有一些没表述清楚的,或者...

SF 2016 Hackathon之旅

2016-06-17
阅读 4 分钟
4.6k
第一次参加sf的hackathon活动,以前一直也是有听说过这个活动,但是迟迟的觉得自己老了,不知道参加这种活动合不合适,但又抵抗不住活动内容的诱惑,所以忽悠了几个同事来坚定我内心的想法。= =|

索引那点事

2016-02-22
阅读 3 分钟
2.3k
每一张表只能建一个聚簇索引(一个目录只能按照一种排序方式哈),并且所占空间为该表120%的附加空间(包含该表的副本和索引中间页,其中InnoDB是B+树索引和数据行),设置什么为簇族索引对性能很关键。好比:字典查找你认识的字,“安”(ān),自然的翻开前几页,如果前几页没有,那么这本字典就是没有的,因为字典是按照A-Z顺...

数据库是如何使用锁

2016-02-22
阅读 1 分钟
2.2k
悲观锁数据库的锁通常都是页级锁,就是对同一张表里的数据采用串行化的更新插入机制,在任何时间同一张表只能插入一条数据,别的想插入的数据必须要等这条数据插完之后才能依次插入。结果是性能降低,频繁操作的时候,会假死,Oracle 是行级锁,oracle 悲观锁,分为:for update 和 for update nowait

Mysql 架构

2016-02-22
阅读 1 分钟
4.2k
MySQL由SQL接口,解释器,优化器,缓存,存储引擎构成 Connectors 不同语言与SQL交互。 Management Services &Utilities 系统管理和控制工具。 Connection Pool 连接池,管理缓冲用户连接,线程处理所需要的缓存。 SQL Interface 接受用户的SQL命令,返回用户查询结果,比如 select from 就是调用 sql interface Par...

SpringMvc请求详细步骤

2016-02-22
阅读 1 分钟
2.3k
1.用户向服务器发送请求,被Spring前端控制DispatcherServlet捕获,调用doService()方法2.doService()方法调用doDispatcher()方法3.遍历当前这个servlet所有注册的HandlerMapping,根据request获得此次请求的HandlerExecutionChain,如果没有找到,则返回4044.遍历当前这个servlet所有注册的HandlerAdapter,根据当前这个H...

API 客户端认证那些事.

2016-02-22
阅读 3 分钟
5.5k
1.设置key密钥。2.假设参数 appid:wx930ea5d5a258f4f much_id:10000100 device_info:1000 body:test nonce_str:iabuaiVckJ按照参数名ASCII字典排序。StringA="appid=wx930ea5d5a258f4f&body=test&device_info=1000&much_id=10000010&nonce_str=iabuaiVckJ";3.拼接API密钥。stringSignTemp="stringA&...

【深入浅出事务】(3):事务的隔离级别(超详细)

2016-02-22
阅读 12 分钟
15k
隔离级别定义了数据库系统中一个操作产生的影响什么时候以哪种方式可以对其他并发操作可见,隔离性是事务的ACID中的一个重要属性,核心是对锁的操作。

【深入浅出事务】(2):Java的事务

2016-02-15
阅读 14 分钟
17.7k
利用JDBC定义的java.sql.Connection接口中setAutoCommit(boolean)来达到自动提交和手动提交,只能局限在同一个数据库连接,不能跨库。切记:MySQL只有InnoDB才有事务效果,其他引擎设置了autoCommit无效。

【深入浅出事务】(1):事务的本质

2016-02-15
阅读 1 分钟
3.6k
并发控制的单元,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位,说白了就是为了保证系统始终处于一个完整且正确的状态。

【VisualVM 简明教程】(6): 检测死锁

2016-02-15
阅读 3 分钟
5.6k
本地的话vvm会立刻提醒有死锁程序,远程的话,生成线程Dump文件即可,发现是线程DeadLock-0,DeadLock-1处于监控状态,很有可能是造成死锁的线程,点击线程Dump。

【VisualVM 简明教程】(5): 分析线程

2016-02-15
阅读 2 分钟
6.2k
VisualVM提供分析图形化监控线程的运行状态,有时候可能不是我们自己代码没写好造成资源的浪费,而是系统引入了很多第三方包(也包括容器)的时候,他们可能私自建立线程,如果逻辑处理不当,可能会造成资源的浪费。

【VisualVM 简明教程】(4): 分析CPU

2016-02-14
阅读 6 分钟
11k
有时候好好的程序放到生产服务器上一段时间后,就会发现服务器响应缓慢,进而进一步发现是cpu过高,于是就慌了,造成cpu过高的原因很多,不过大多是由于资源吃紧造成,例如:sql执行过慢,程序里存在死循环,数据库连接未释放,网络阻塞导致的第三方框架代码出现死循环,大量的操作导致死锁等

【VisualVM 简明教程】(3):分析PermGenOOM

2016-01-15
阅读 5 分钟
3.7k
PermGen Space是Oracle-Sun Hotspot才有的,同类产品Oralce JRockit, IBM J9, Taobao JVM 是没有的,在Java8中永久区(PermGen)已经变成元空间(Metaspace),这里怀旧一下。

【VisualVM 简明教程】(2):分析堆内存OOM

2016-01-15
阅读 4 分钟
17.3k
主要功能 概述 显示jvm运行时的参数,Java版本,以及系统属性。 监控 显示当前这个pid的cpu,堆,PermGen,类,线程的运行情况,可以主动进行垃圾回收,以及生成此时刻的dump文件。 线程 显示所有线程的“实时”状态(运行,休眠,等待,监视)以及时间,(调整好刷新时间),可以通过放大,放小,更细致的观察线程的状态,以及一...

【VisualVM 简明教程】(1):远程监控

2016-01-15
阅读 3 分钟
9.1k
VisualVM 是一款免费的性能分析工具。它通过 JvmStat、JMX、 SA(Serviceability Agent)以及 Attach API 等多种方式从程序运行时获得实时数据,从而进行动态的性能分析。同时,它 能自动选择更快更轻量级的技术尽量减少性能分析对应用程序造成的影响,提高性能分析的精度。

在ubuntu14.04上安装lamp环境

2015-11-25
阅读 4 分钟
3.3k
配置安装源 编辑sources.list文件,替换一下更新源,这里用阿里云的更新源vim /etc/apt/sources.list 阿里云更新源 {代码...} 中科大更新源 {代码...} 更新 apt-get update 安装Mysql apt-get install mysql-server mysql-client 查看Myql默认密码 vim /etc/mysql/debian.cnf 用默认密码进入mysql,修改Mysql默认密码 set...

wget: unable to resolve host address的解决方法

2015-10-20
阅读 1 分钟
15.7k
登入root(VPS)。进入/etc/resolv.conf。修改内容为下nameserver 8.8.8.8 #google域名服务器nameserver 8.8.4.4 #google域名服务器

一道面试题引发的思考:(1)

2015-09-24
阅读 8 分钟
9.5k
这是网易2015校招Java面试题,直接上题目。 题目 {代码...} 答案 {代码...} 考察点 static 相关知识 非静态代码块相关知识 类加载顺序 解析 存在父子关系,又有静态代码块,先执行父类静态代码块,再执行子类静态代码块,故打印static A static B 存在父子关系,又有非静态代码块,先执行父类非静态代码块,父类构造器,...

一道面试题引发的思考:(2)

2015-09-22
阅读 3 分钟
3k
Throwable 类包含了其线程创建时线程执行堆栈的快照,包含了给出有关错误更多的消息字符串,有颜色的代表运行时异常,非checked exception,可以不try catch ,则由jvm处理,白色的异常代表checked exceptions必须由try-catch捕获。

【系统架构师修炼之道】(19):操作系统基础知识——分页存储管理

2015-09-18
阅读 2 分钟
2.5k
分页系统中的页面其大小应适中。页面若太小,一方面虽然可使内存碎片减小,从而减少了内存碎片的总空间,有利于提高内存利用率,但另一方面也会使每个进程占用较多的页面,从而导致进程的页表过长,占用大量内存;此外,还会降低页面换进换出的效率。然而,如果选择的页面较大,虽然可以减少页表的长度,提高页面换进换...

【系统架构师修炼之道】(18):操作系统基础知识——分区存储管理

2015-09-16
阅读 2 分钟
2.4k
存储管理的概念 逻辑地址:用户程序经编译后,每个目标模块以0为基地址进行的顺序编址,它不是主存中的真实地址,是相对基地址而言的。 物理地址:主存中各存储单元的地址,从统一的基地址进行的顺序编制,是主存中的真实地址,可以寻址并实际存在,物理地址又称绝对地址 存储空间:是地址的集合。 分区存储管理 固定分...

【系统架构师修炼之道】(17):操作系统基础知识——寄存器、主存、缓存

2015-09-15
阅读 5 分钟
5.9k
中央处理器内的组成部分,有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,存器有累加器(ACC)。寄存器,是集成电路中非常重要的一种存储单元,通常由触发器组成,寄存器拥有非常高的读写速度,...

【系统架构师修炼之道】(16):操作系统基础知识——进程通信与线程

2015-09-14
阅读 3 分钟
3k
进程通信 进程间的信息交换,具体内容分为:控制信息交换和数据交换,控制信息的交换为低级通信,数据的交换为高级通信。 高级通信方式 共享存储系统 多台服务器访问同一个存储设备的同一分区 消息传递系统 进程与其它的进程进行通信而不必借助共享数据,通过互相发送和接收消息,建立一条通信链路。 管道通信 发送进程...

【系统架构师修炼之道】(15):操作系统基础知识——生产者消费者模型

2015-09-14
阅读 2 分钟
3k
生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题,主要解决的是两者速率不一致而产生的阻抗不匹配。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于...

【系统架构师修炼之道】(14):操作系统基础知识——同步和互斥

2015-09-14
阅读 2 分钟
2.6k
P原语 Passeren(占有),阻塞原语,负责把当前进程由运行状态转换为阻塞状态,操作为:申请一个空闲资源(把信号量减1),若成功,则退出;若失败,则该进程被阻塞;

【系统架构师修炼之道】(13):操作系统基础知识——进程基础知识

2015-09-08
阅读 4 分钟
2.9k
系统进程 windows常见的有 dllhost.exe(DCOM DLL Host进程支持基于COM对象支持DLL以运行Windows程序)

【系统架构师修炼之道】(11):绪论——系统架构师知识体系

2015-09-01
阅读 2 分钟
5.7k
系统架构师知识体系 战略规划能力 业务流程建模能力 信息数据架构能力 技术架构选择和实现能力 应用系统架构解决和实现能力 基础IT知识和技术设施,资源调配能力 信息安全技术与管理保障能力 IT审计,治理与基本需求分析,获取能力 面向软件系统可靠性与系统生命周期的资源保障服务能力 从开发人员到架构师 UC Irvine 在...