摘要: 一、背景 业务开发中常常有这样的场景, 好几个人在同一个项目中,负责不同的业务模块,比如在一个商城系统中,老王负责会员(member)和返现(rebate)模块;老李负责商品(item)和促销(promotion)模块;老吕负责活动(campaign)模块。 业务刚起步,团队很小,没那么多预算去搞微 阅读全文
posted @ 2020-03-08 10:42 lvyahui 阅读(1134) 评论(1) 推荐(0) 编辑
摘要: 分析淘宝PDP 让我们先看个图, Taobao的PDP(Product Detail Page)页. 打开Chrome Network面板, 让我们来看taobao是怎么加载这个页面数据的. 根据经验, 一般是异步加载的, 要么是XHR,要么就是js(jsonp), 你应该很快可以找到 还能看到这个 阅读全文
posted @ 2020-01-08 22:49 lvyahui 阅读(748) 评论(0) 推荐(0) 编辑
摘要: 项目地址和示例代码: https://github.com/lvyahui8/spring boot data aggregator 背景 接口开发是后端开发中最常见的场景, 可能是RESTFul接口, 也可能是RPC接口. 接口开发往往是从各处捞出数据, 然后组装成结果, 特别是那些偏业务的接口. 阅读全文
posted @ 2019-06-12 09:09 lvyahui 阅读(1272) 评论(0) 推荐(4) 编辑
摘要: 为什么要做代理平台 微服务架构越来越流行,在一个上百号人开发的项目中,使用微服务的方式,大量模块之间通过接口调用,随之也带来了许多问题: 接口不能及时提供造成阻塞:往往客户端需要等待后台接口进入测试阶段,才能开始进行开发。一些刚入门的客户端开发(如web前端开发),并没有自行伪造接口数据的能力。 通 阅读全文
posted @ 2017-11-11 12:42 lvyahui 阅读(2253) 评论(1) 推荐(1) 编辑
摘要: 前段时间帮忙定位个问题。docker容器故障恢复后,其中的keepalived进程始终无法启动,也看不到Keepalived的日志。 strace 查看系统调用之后,发现了原因所在 1 socket(PF_LOCAL, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 3 2 connec 阅读全文
posted @ 2017-08-18 15:02 lvyahui 阅读(21653) 评论(3) 推荐(6) 编辑
摘要: 源码位于github:https://github.com/lvyahui8/dbuilder.git 。文中图片如果太小看不清楚,请右键点击“在新标签页中打开”即可看到原图 有兴趣还可以加QQ群交流:146103720 DBuilder交流群 第一章 引言 1.1 研究背景及意义 计算机软件技术发 阅读全文
posted @ 2016-06-29 15:59 lvyahui 阅读(4027) 评论(2) 推荐(8) 编辑
摘要: 最近想回过头来看看以前写的一些代码,可叹为何刚进大学的时候不知道要养成写博客的好习惯。现在好多东西都没有做记录,后面也没再遇到相同的问题,忘的都差不多了。只能勉强整理了下面写的一些代码,这些代码有的有参考别人的代码,但都是自己曾经一点点敲的,挂出来,虽然很基础,但希望能对别人有帮助。 链表 链表是一 阅读全文
posted @ 2015-08-01 23:37 lvyahui 阅读(4031) 评论(3) 推荐(9) 编辑
摘要: 文中所讲基本都是以非阻塞IO、异步IO为基础。对于阻塞式IO,下面的编程模型几乎都不适用 Reactor三种线程模型 单线程模型 单个线程以非阻塞IO或事件IO处理所有IO事件,包括连接、读、写、异常、关闭等等。单线程Reactor模型基于同步事件分离器来分发事件,这个同步事件分离器,可以看做是一个 阅读全文
posted @ 2018-05-12 22:30 lvyahui 阅读(3202) 评论(0) 推荐(2) 编辑
摘要: 网络IO的本质 任何IO事件处理可以分为两个过程:等待就绪(缺数据或DMA Copy)、数据拷贝(CPU Copy),与之相对的是阻塞与非阻塞、同步与异步是两组不同的概念。 是否阻塞体现在socket 属性 O_NONBLOCK 同步/异步体现在 IO读写api的区别上 另外需要注意下面几点: IO 阅读全文
posted @ 2018-05-11 18:11 lvyahui 阅读(984) 评论(0) 推荐(2) 编辑
摘要: 这里列出一些个人在工作中常使用的各种linux命令,每一个不详细讲参数,只写经常用的参数。希望快速获得在linux命令行工作的能力的朋友可以看看。本人一直觉的,不使用linux 图形界面,以xshell等ssh客户端使用基础版linux才是学习linux命令的正确姿势。如果想深入每一个命令学习,可以 阅读全文
posted @ 2017-07-21 20:41 lvyahui 阅读(494) 评论(0) 推荐(0) 编辑
摘要: 时下SPA单页应用如火如荼,对前端乃至后端开发都带来不小的冲击和变革。笔者整理了下笔记,决定写一下以前基于iframe做单页博客的一些经验方法。 对于单页应用,笔者没有找到最官方的定义。在笔者看来,在用户操作过程中,浏览器始终不会重载整个页面的web应用,便可以称为单页应用。这里不包括https:/ 阅读全文
posted @ 2017-07-14 21:27 lvyahui 阅读(2486) 评论(7) 推荐(2) 编辑
摘要: 此文为指针系列第二篇: C语言精要总结-指针系列(一) C语言精要总结-指针系列(二) 指针运算 前面提到过指针的解引用运算,除此之外,指针还能进行部分算数运算、关系运算 指针能进行的有意义的算术运算包括加减法运算,但不包括乘除运算。并且运算存在诸多限制。 加法运算 指针加法运算只适合指针与整数,不 阅读全文
posted @ 2017-06-30 14:37 lvyahui 阅读(599) 评论(0) 推荐(1) 编辑
摘要: 考虑到指针内容繁多,这里将指针作为一个系列,从简入繁,带着没有研究过指针的朋友,一点一点深挖并掌握这C语言的精华。初步计划如下 此文为指针系列第一篇: C语言精要总结-指针系列(一) 内存与地址 我们可以把内存看做一排连续的房间,每个房间(字节空间)都有一个房间号,房间号就是这个房间的地址,而且每个 阅读全文
posted @ 2017-05-03 00:17 lvyahui 阅读(1450) 评论(3) 推荐(3) 编辑
摘要: 计算机读取或者写入存储器地址时,一般以字(因系统而异,32位系统为4个字节)大小(N)的块来执行操作。数据对齐就是将数据存储区的首地址对齐字大小(N)的某个整数倍地址。为了对齐数据,有时需要在物理上相邻的两个数据之间保留或者插入一些无意义的字节。内存对齐本事编译器考虑是事情,但在C、C++语言中,可以人为修改对齐方式。 阅读全文
posted @ 2017-04-29 15:08 lvyahui 阅读(1501) 评论(0) 推荐(2) 编辑
摘要: 预请求 参考:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS#预请求 简而言之,在跨域并且尝试添加一些特殊头及自定义头的情况下,由于浏览器的安全机制,会加多一次OPTIONS预请求(询问请求),与跨域服务器协 阅读全文
posted @ 2017-03-10 15:40 lvyahui 阅读(2909) 评论(0) 推荐(1) 编辑
摘要: Laravel 4.2 鉴权使用加盐密码 刚开始接触laravel,发现laravel默认的鉴权模块密码并未加盐处理(密码由password_hash方法创建)。所以自己琢磨着对密码加盐。像下面这样校验密码(密码在最初创建时,也以md5(salt . password .salt)的形式存储) 但一 阅读全文
posted @ 2017-03-03 15:33 lvyahui 阅读(657) 评论(0) 推荐(0) 编辑
摘要: 去年做过一个项目,需要每日对上千个Android内存泄漏(OOM)时core dump出的hprof文件进行分析,希望借助海量数据来快速定位内存泄漏的原因。最终的分析结果是一个类森林,因为时隔较远,只找到下面这个截图了。 点击打开折叠的项目,会看到该类的每个属性,类有多少个实例,占用的大小等等信息, 阅读全文
posted @ 2017-02-24 17:06 lvyahui 阅读(4292) 评论(1) 推荐(2) 编辑