原创 跟葉子學把妹系列彙總貼

  《跟葉子學把妹》系列已經完結,《跟葉子學把妹》原名其實是《天方葉談》,博主擅自給改成《跟葉子學把妹》目的是爲了和之前的教程統一,。《天方葉談》在每週三晚發佈在公司內部的微信公衆號《咚咚小報》上,對程序員來說,不管是真的把妹或者娛樂還

原创 第四章 Lua模塊開發

在實際開發中,不可能把所有代碼寫到一個大而全的lua文件中,需要進行分模塊開發;而且模塊化是高性能Lua應用的關鍵。使用require第一次導入模塊後,所有Nginx 進程全局共享模塊的數據和代碼,每個Worker進程需要時會得到此模塊

原创 第七章 Web開發實戰2——商品詳情頁

本章以京東商品詳情頁爲例,京東商品詳情頁雖然僅是單個頁面,但是其數據聚合源是非常多的,除了一些實時性要求比較高的如價格、庫存、服務支持等通過AJAX異步加載加載之外,其他的數據都是在後端做數據聚合然後拼裝網頁模板的。 http://it

原创 錯誤的日期格式可能導致走nginx proxy cache時不能進行304響應

昨天在整合某些系統的nginx配置時,出現了當使用nginx cache時無法返回304響應的情況,出問題的響應頭: Content-Type:text/html; charset=gb2312 Date:Mon, 05 Jan 20

原创 第五章 常用Lua開發庫2-JSON庫、編碼轉換、字符串處理

  JSON庫   在進行數據傳輸時JSON格式目前應用廣泛,因此從Lua對象與JSON字符串之間相互轉換是一個非常常見的功能;目前Lua也有幾個JSON庫,本人用過cjson、dkjson。其中cjson的語法嚴格(比如unicod

原创 我是如何構建一個持續發展的項目

說起項目,每個程序員都應該搭建過自己的項目,而我也搭建過數十個企業級或互聯網級項目;在做企業級項目時也抽象了一套通過的開發腳手架ES方便開發,也做過一些通用的代碼生成工具來生成通用項目架子或一些CRUD的代碼。做這些平臺或項目的時候或多

原创 第一章 安裝OpenResty(Nginx+Lua)開發環境

首先我們選擇使用OpenResty,其是由Nginx核心加很多第三方模塊組成,其最大的亮點是默認集成了Lua開發環境,使得Nginx可以作爲一個Web Server使用。藉助於Nginx的事件驅動模型和非阻塞IO,可以實現高性能的Web

原创 開啓nginx cache後導致內存幾乎100%問題

1、前些日子某服務被刷,每分鐘達到上幾百萬請求;當時採用了nginx cache來解決的;但是因爲某服務不能緩存太久,當時設置了5s,那麼帶來的問題就是產生大量小文件,而且很快就刪除了。   2、通過free -m      會發現u

原创 第五章 常用Lua開發庫3-模板渲染

動態web網頁開發是Web開發中一個常見的場景,比如像京東商品詳情頁,其頁面邏輯是非常複雜的,需要使用模板技術來實現。而Lua中也有許多模板引擎,如目前我在使用的lua-resty-template,可以渲染很複雜的頁面,藉助LuaJI

原创 第二章 OpenResty(Nginx+Lua)開發入門

Nginx入門 本文目的是學習Nginx+Lua開發,對於Nginx基本知識可以參考如下文章: nginx啓動、關閉、重啓 http://www.cnblogs.com/derekchen/archive/2011/02/17/1957

原创 第五章 常用Lua開發庫1-redis、mysql、http客戶端

對於開發來說需要有好的生態開發庫來輔助我們快速開發,而Lua中也有大多數我們需要的第三方開發庫如Redis、Memcached、Mysql、Http客戶端、JSON、模板引擎等。 一些常見的Lua庫可以在github上搜索,https:

原创 跟我學OpenResty(Nginx+Lua)開發目錄貼

掃一掃,關注我的公衆號    購買地址   使用Nginx+Lua開發近一年的時間,學習和實踐了一些Nginx+Lua開發的架構,爲了讓更多人使用Nginx+Lua架構開發,利用春節期間總結了一份基本的學習教程,希望對大家有用。也歡

原创 構建需求響應式億級商品詳情頁

該文章是根據velocity 2015技術大會的演講《京東網站單品頁618實戰》細化而來,希望對大家有用。   商品詳情頁是什麼 商品詳情頁是展示商品詳細信息的一個頁面,承載在網站的大部分流量和訂單的入口。京東商城目前有通用版、全球購、

原创 第六章 Web開發實戰1——HTTP服務

此處我說的HTTP服務主要指如訪問京東網站時我們看到的熱門搜索、用戶登錄、實時價格、實時庫存、服務支持、廣告語等這種非Web頁面,而是在Web頁面中異步加載的相關數據。這些服務有個特點即訪問量巨大、邏輯比較單一;但是如實時庫存邏輯其實是

原创 第八章 流量複製/AB測試/協程

流量複製 在實際開發中經常涉及到項目的升級,而該升級不能簡單的上線就完事了,需要驗證該升級是否兼容老的上線,因此可能需要並行運行兩個項目一段時間進行數據比對和校驗,待沒問題後再進行上線。這其實就需要進行流量複製,把流量複製到其他服務器上