#后端
共 24 篇文章
DI&IOC基本概念
DI 和 IOC 的关系 DI(依赖注入)和 IOC(控制反转)是两个相关但不完全相同的概念。 控制反转(IOC)是一种设计原则,它强调将控制权从应用程序代码中转移到外部容器或框架中。根据 IOC 原则,应用程序的组件不应该负责自己的依赖关系的解析和管理,而是将这些责任交给外部的容器。通过 IOC,应用程序的组件变得…
高性能文件网关:OpenResty 鉴权后直通 Swift
云盘合入大象 IM 后,用 OpenResty 的 Lua 完成权限校验与文件寻址,再由 Nginx 直接代理 Swift S3 对象,避免 Java 中转文件流。
高可用的四件兵器:超时、重试、限流与降级
系列目录 从单线程到线程池:云盘转 Java 后的第一堂并发课 线程池参数、队列与快慢接口隔离 数据库连接池与 Spring 声明式事务:把 Node.js 的坑填上 ConcurrentHashMap 与锁:文件元数据的并发读写 Future 与 CountDownLatch:一个接口聚合一堆下游 用 Kafka …
分布式锁与唯一 ID:多实例部署后的新问题
系列目录 从单线程到线程池:云盘转 Java 后的第一堂并发课 线程池不是 new 出来就完事:参数、队列与快慢接口隔离 数据库连接池与 Spring 声明式事务:把 Node.js 的坑填上 ConcurrentHashMap 与锁:文件元数据的并发读写 Future 与 CountDownLatch:一个接口聚合…
Tair 缓存的穿透、雪崩与可用性
系列目录 从单线程到线程池:云盘转 Java 后的第一堂并发课 线程池不是 new 出来就完事:参数、队列与快慢接口隔离 数据库连接池与 Spring 声明式事务:把 Node.js 的坑填上 ConcurrentHashMap 与锁:文件元数据的并发读写 Future 与 CountDownLatch:一个接口聚合…
压测与容量评估:IM 融合前要扛多少流量?
系列目录 从单线程到线程池:云盘转 Java 后的第一堂并发课 线程池不是 new 出来就完事:参数、队列与快慢接口隔离 数据库连接池与 Spring 声明式事务:把 Node.js 的坑填上 ConcurrentHashMap 与锁:文件元数据的并发读写 Future 与 CountDownLatch:一个接口聚合…
高性能 IO:流对流的失败率、NIO 与零拷贝
系列目录 从单线程到线程池:云盘转 Java 后的第一堂并发课 线程池不是 new 出来就完事:参数、队列与快慢接口隔离 数据库连接池与 Spring 声明式事务:把 Node.js 的坑填上 ConcurrentHashMap 与锁:文件元数据的并发读写 Future 与 CountDownLatch:一个接口聚合…
日志不是越多越好:logback 实践与线上问题定位
系列目录 从单线程到线程池:云盘转 Java 后的第一堂并发课 线程池不是 new 出来就完事:参数、队列与快慢接口隔离 数据库连接池与 Spring 声明式事务:把 Node.js 的坑填上 ConcurrentHashMap 与锁:文件元数据的并发读写 Future 与 CountDownLatch:一个接口聚合…
JVM 内存与 GC:一次线上 Full GC 排查记录
系列目录 从单线程到线程池:云盘转 Java 后的第一堂并发课 线程池不是 new 出来就完事:参数、队列与快慢接口隔离 数据库连接池与 Spring 声明式事务:把 Node.js 的坑填上 ConcurrentHashMap 与锁:文件元数据的并发读写 Future 与 CountDownLatch:一个接口聚合…
用 Kafka 做异步化与削峰:从热点上报到全局事务
系列目录 从单线程到线程池:云盘转 Java 后的第一堂并发课 线程池不是 new 出来就完事:参数、队列与快慢接口隔离 数据库连接池与 Spring 声明式事务:把 Node.js 的坑填上 ConcurrentHashMap 与锁:文件元数据的并发读写 Future 与 CountDownLatch:一个接口聚合…
Future 与 CountDownLatch:一个接口聚合一堆下游
系列目录 从单线程到线程池:云盘转 Java 后的第一堂并发课 线程池不是 new 出来就完事:参数、队列与快慢接口隔离 数据库连接池与 Spring 声明式事务:把 Node.js 的坑填上 ConcurrentHashMap 与锁:文件元数据的并发读写 Future 与 CountDownLatch:一个接口聚合…
ConcurrentHashMap 与锁:文件元数据的并发读写
系列目录 从单线程到线程池:云盘转 Java 后的第一堂并发课 线程池不是 new 出来就完事:参数、队列与快慢接口隔离 数据库连接池与 Spring 声明式事务:把 Node.js 的坑填上 ConcurrentHashMap 与锁:文件元数据的并 发读写(本篇) 项目开始前需要确认的并发边界 第 1 篇排查 Spr…
数据库连接池与 Spring 声明式事务:把 Node.js 的坑填上
系列目录 从单线程到线程池:云盘转 Java 后的第一堂并发课 线程池不是 new 出来就完事:参数、队列与快慢接口隔离 数据库连接池与 Spring 声明式事务:把 Node.js 的坑填上(本篇) 从 Node.js 的事务写法开始准备 做 Java 版云盘前,我已有 Node.js、C# 等后端开发经验。Nod…
nodejs addon 结合 libuv 使用经验
最近在基于 electron 做客户端相关工作,需要写 nodejs 的 addon 以便拓展 electron 相关功能,涉及到一些高级东西,写下相关经验。 一:asynchronous addons 在开发过程中,我们一定会遇到需要在 c++中处理一些耗时的任务,这个时候,必须使用异步 addon,如果使用同步的…
线程池参数、队列与快慢接口隔离
系列目录 从单线程到线程池:云盘转 Java 后的第一堂并发课 线程池参数、队列与快慢接口隔离(本篇) 数据库连接池与 Spring 声明式事务:把 Node.js 的坑填上 上一篇讨论了 Node.js 单事件循环与 Java 请求线程池的差异。此前写过 Node.js、C# 等后端服务,我知道语言和框架改变后,阻…
从单线程到线程池:云盘转 Java 后的第一堂并发课
2015 年 9 月,云盘服务端从 Node.js 整体转向 Java,背景在之前的云盘服务端从nodejs 专项 java 相关复盘里写过。此前我做过 Node.js 和 C# 的后端开发,知道 Java 项目的请求处理会涉及多线程、共享对象和线程池。这些问题如果等到线上出现再补,很难判断范围,因此在迁移前后先集中…
云盘服务端从nodejs 专项 java 相关复盘
说明 这里是对云盘 node.js 转向 java 做的一个客观总结,个人平时也会经常使用 nodejs,go,python,C#,java 进行开发,比较熟悉各个工具链,所以也并没有语言,框架上面的歧视。 云盘 web 前后端,服务端开发是我在5月份接手的,当时所有端是基础终端来负责,服务化的事情是云计算组负责,5…
spring aop 权限拦截
在云盘服务端 java 化的进程中,我们选择使用了在 header 中添加认证头信息的方式进行权限校验,这样就触发了一个问题,spring mvc 中如何完成这个认证过程。里面有一个难点就是如果请求 body 有业务内容,我们需要获取到里面的内容进行签名,最开始我们直接实现了一个 Interceptor 类,然后通过…
使用v8与js做交互,理解node基本原理
前阶段刚说到全栈的问题,到底要多深,多后期才能算是全栈每个人心中都有自己的看法,我自己感觉多学一些总不是坏事。 最近用 node 遇到了一些障碍,在看 node 的源码了解一下,然后想到网上现在还没有相关的分析,大多数都是开发 addons,而且中途 v8 进行了一次大升级,很多能查到的资料都是错得,所以就在这里简单…
