博客 / 列表

京東雲開發者 - HTTP請求:requests的進階使用方法淺析 | 京東雲技術團隊

1 背景 上篇文章講解了requests模塊的基礎使用,其中有get、put、post等多種請求方式,使用data、json等格式做為請求參數,在請求體中添加請求頭部信息的常見信息,如:headers、cookies,以及對請求響應的處理方法。接下來講解一下requests的高級用法。 2 進階方法舉例 2.1 requests.request() method:提交方式(get|post); u

HTTP , requests , 爬蟲 , Python

京東雲開發者 - HTTP請求:requests模塊基礎使用必知必會 | 京東雲技術團隊

1 背景 http請求是常見的一種網頁協議,我們看到的各種網頁,其實都是發送了http請求得到了服務器的響應,從而將數據庫中複雜的數據以簡單、直觀的方式呈現出來,方便大眾閲讀、使用。而如何發送http請求呢?今天來探討一下使用requests模塊,達到高效、簡單的http請求操作。 2 什麼是requests requests是用python語言基於urllib編寫的,採用的是Apache2 Li

HTTP , requests , Python

京東雲開發者 - iOS 單元測試之常用框架 OCMock 詳解 | 京東雲技術團隊

一、單元測試 1.1 單元測試的必要性 測試驅動開發並不是一個很新鮮的概念了。在日常開發中,很多時候需要測試,但是這種輸出是必須在點擊一系列按鈕之後才能在屏幕上顯示出來的東西。測試的時候,往往是用模擬器一次一次的從頭開始啓動 app,然後定位到自己所在模塊的程序,做一系列的點擊操作,然後查看結果是否符合自己預期。 這種行為無疑是對時間的巨大浪費。於是有很多資深工程師們發現,我們是可以在代碼中構造一

mock , 測試 , 單元測試 , ios

京東雲開發者 - 消失的死鎖:從 JSF 線程池滿到 JVM 初始化原理剖析 | 京東雲技術團隊

一、問題描述 在一次上線時,按照正常流程上線後,觀察了線上報文、接口可用率十分鐘以上,未出現異常情況,結果在上線一小時後突然收到jsf線程池耗盡的報警,並且該應用一共有30台機器,只有一台機器出現該問題,迅速下線該機器的jsf接口,恢復線上。然後開始排查問題。 報錯日誌信息: [WARN]2023-04-10 18:03:34.847 [ - ][] |[JSF-23002]Task:java.

線程池 , jvm , , jsf

京東雲開發者 - 定時任務原理方案綜述 | 京東雲技術團隊

本文主要介紹目前存在的定時任務處理解決方案。業務系統中存在眾多的任務需要定時或定期執行,並且針對不同的系統架構也需要提供不同的解決方案。京東內部也提供了眾多定時任務中間件來支持,總結當前各種定時任務原理,從定時任務基礎原理、單機定時任務(單線程、多線程)、分佈式定時任務介紹目前主流的定時任務的基本原理組成、優缺點等。希望能幫助讀者深入理解定時任務具體的算法和實現方案。 一、背景概述 定時任務,顧名

定時器 , 定時任務 , 定時發佈 , 線程 , 分佈式

京東雲開發者 - jvm中類和對象定義存儲基礎知識 | 京東雲技術團隊

1 類文件數據結構類型 Class文件結構主要有兩種數據結構:無符號數和表 •無符號數:用來表述數字,索引引用、數量值以及字符串等,比如 圖1中類型為u1,u2,u4,u8分別代表1個字節,2個字節,4個字節,8個字節的無符號數 •表:表是有由多個無符號數以及其它的表組成的複合結構,比如圖1中類型以_info結尾的項為表類型。 2 類結構定義 Class類文件是緊湊、順序、無空隙的,魔數(Magi

jvm , JAVA , class , 對象存儲

京東雲開發者 - 基於 prefetch 的 H5 離線包方案 | 京東雲技術團隊

前言 對於電商APP來講,使用H5技術開發的頁面佔比很高。由於H5加載速度非常依賴網絡環境,所以為了提高用户體驗,針對H5加載速度的優化非常重要。離線包是最常用的優化技術,通過提前下載H5渲染需要的HTML/JS/CSS資源,加載時直接使用本地緩存資源避免額外的網絡請求提高加載速度。本文主要是介紹團隊在離線包技術方案上的探索,以及基於prefetch的離線包實現方案如何減少維護成本和開發成本。 現

prefetch , 小程序 , Android , h5頁面 , ios

京東雲開發者 - 【618備戰巡禮】“三高”之第一高--如何打造高可用系統 | 京東雲技術團隊

前言 我們經常會説互聯網“三高”,那什麼是三高呢?我們常説的三高,高併發、高可用、高性能,這些技術是構建現代互聯網應用程序所必需的。對於京東618備戰來説,所有的中台系統服務,無疑都是圍繞着三高來展開的。對於一個程序員,或多或少都能説出一些跟三高系統有關的技術點,而我本篇文章的目的,就是幫大家系統的梳理一下三高系統中的第一高:高可用性。 首先來説,互聯網的業務特點決定了他必須保證“三高”, 同時,

系統設計 , 系統 , 高可用

京東雲開發者 - 記一次618軍演壓測TPS上不去排查及優化 | 京東雲技術團隊

本文內容主要介紹,618醫藥供應鏈質量組一次軍演壓測發現的問題及排查優化過程。旨在給大家借鑑參考。 背景 本次軍演壓測背景是,2B業務線及多個業務側共同和B中台聯合軍演。 現象 當壓測商品卡片接口的時候,cpu達到10%,TPS只有240不滿足預期指標,但是TP99已經達到了1422ms。 排查 對於這種TPS不滿足預期目標,但是TP99又超高,其實它的原因有很多中可能,通過之前寫過的文章對性能瓶

性能優化 , jvm , jvm調優 , 壓測 , cpu過高

京東雲開發者 - 輕量靈動: 革新輕量級服務開發 | 京東雲技術團隊

概念篇 1、從JDK8-JDK17 你需要知道的 從 JDK 8 升級到 JDK 17 可以讓你的應用程序受益於新的功能、性能改進和安全增強。下面是一些 JDK 8 升級到 JDK 17 的最佳實戰: 1.1、確定升級的必要性:首先,你需要評估你的應用程序是否需要升級到 JDK 17。查看 JDK 17 的新特性、改進和修復的 bug,以確定它們對你的應用程序是否有實際的好處。 1.2、瞭解 JD

jdk17 , jdk8 , graalvm , JAVA , 後端

京東雲開發者 - 玩轉服務器之應用篇:從零開始構建小型高可用環境

高可用環境介紹 搭建高可用環境,可以消除單點故障的影響,使系統在出現故障時自動地切換到其它節點,保障系統的平穩運行,提高系統的可靠性和可用性,同時保證數據的安全性,高可用環境已經是現代企業應用的標配。 本文介紹如何快速搭建一個小型的高可用環境,涉及的產品包括:2台雲主機(CenTOS 7.6系統)、數據庫和負載均衡。 二、前置準備 正式開始部署前,您需完成如下的準備工作: 開通京東雲賬户,若您

服務器配置 , 服務器 , 雲主機 , 高可用 , 後端

京東雲開發者 - 玩轉服務器之數據傳輸篇:如何快速搭建FTP文件共享服務器

FTP 文件共享服務器介紹 FTP服務(File Transfer Protocol,FTP)是最早應用於主機之間數據傳輸的基本服務之一,是目前使用最廣泛的文件傳送協議。FTP文件共享服務器在日常辦公中可以實現多人之間文件的傳遞和共享,極大提高協同辦公的效率。 Vsftpd是一款在Linux發行版中最受推崇的FTP服務器程序,小巧輕快,安全易用,支持虛擬用户,支持帶寬限制等功能,本文以輕量雲主機(

服務器配置 , 服務器 , ftp , 數據傳輸

京東雲開發者 - 玩轉服務器之網站篇:新手使用WordPress搭建博客和靜態網站部署

靜態網站部署和WordPress搭建博客都是網站運營中常見的工作。靜態網站是一種不需要服務器端腳本的網站形式,通常使用HTML、CSS和JavaScript等靜態資源進行構建和顯示。而WordPress是一款流行的博客系統,可以幫助用户快速搭建博客網站。 在之前的玩轉服務器系列文章裏,我們介紹瞭如何構建小型的高可用環境、PHP、Python、Java web、docker環境部署,以及Node.j

wordpress , 服務器 , 網站開發 , 靜態網站

京東雲開發者 - Iframe在Vue中的狀態保持技術 | 京東雲技術團隊

引言 Iframe是一個歷史悠久的HTML元素,根據MDN WEB DOCS官方介紹,Iframe定義為HTML內聯框架元素,表示嵌套的Browsing Context,它能夠將另一個HTML頁面嵌入到當前頁面中。Iframe可以廉價實現跨應用級的頁面共享,並且具有使用簡單、高兼容性、內容隔離等優點,因此以Iframe為核心形成了前端平台架構領域第1代技術。 眾所周知,當Iframe在DOM中初

iframe , vue.js , iframe跨域 , HTML , html5

京東雲開發者 - 線上問題處理案例:出乎意料的數據庫連接池 | 京東雲技術團隊

導讀 本文是線上問題處理案例系列之一,旨在通過真實案例向讀者介紹發現問題、定位問題、解決問題的方法。本文講述了從垃圾回收耗時過長的表象,逐步定位到數據庫連接池保活問題的全過程,並對其中用到的一些知識點進行了總結。 一、問題描述 大促期間,某接口超時次數增多,經排查直接原因是GC耗時過長,查看監控FullGC達500ms以上,接口超時時間與FullGC發生時間吻合。 圖1 FullGC耗時監控 二

MySQL , gc , 數據庫 , 連接池

京東雲開發者 - 關於接口可維護性的一些建議 | 京東雲技術團隊

作者:D瓜哥 在做新需求開發或者相關係統的維護更新時,尤其是涉及到不同系統的接口調用時,在可維護性方面,總感覺有很多地方差強人意。一些零星思考,拋磚引玉,希望引發更多的思考和討論。總結了大概有如下幾條建議: 在接口註釋中加入接口文檔鏈接 將調用接口處寫上被調用接口文檔鏈接 將接口源代碼發佈到私服倉庫 對於狀態值常量,優先在接口參數類或者返回值類中定義 如果使用 Map 對象作為傳輸載

map , rpc , 接口設計 , 後端

京東雲開發者 - 架構師日記-深入理解軟件設計模式 | 京東雲技術團隊

作者:京東零售 劉慧卿 一 設計模式與編程語言 1.1 什麼是設計模式 設計模式(Design pattern) :由軟件開發人員在軟件開發中面臨常見問題的解決方案,是經過長時間的試驗積累總結出來的,它使設計更加靈活和優雅,複用性更好。從實用的角度來看,它代表了某一類問題的最佳實踐。 設計模式到底解決了開發過程中的哪些難題呢,它又是如何來解決的呢? 其核心是:複用和解耦。使不穩定依賴於穩定、具體依

軟件設計 , 編程語言 , 編程範式 , 架構模式 , 架構師

京東雲開發者 - Netty服務端開發及性能優化 | 京東雲技術團隊

作者:京東物流 王奕龍 Netty是一個異步基於事件驅動的高性能網絡通信框架,可以看做是對NIO和BIO的封裝,並提供了簡單易用的API、Handler和工具類等,用以快速開發高性能、高可靠性的網絡服務端和客户端程序。 1. 創建服務端 服務端啓動需要創建ServerBootstrap對象,並完成初始化線程模型,配置IO模型和添加業務處理邏輯(Handler) 。在添加業務處理邏輯時,調用的是ch

服務端 , 性能優化 , netty入門 , netty

京東雲開發者 - Nginx常用配置及和基本功能講解 | 京東雲技術團隊

作者:京東物流殷世傑 Nginx已經廣泛應用於J-one和Jdos的環境部署上,本文對Nginx的常用的配置和基本功能進行講解,適合Nginx入門學習。 1 核心配置 找到Nginx安裝目錄下的conf目錄下nginx.conf文件,Nginx的基本功能配置是由它提供的。 Nginx的配置文件(conf/nginx.conf)整體上分為如下幾個部分: : 區域 職責

nginx-config , Nginx , 反向代理 , 後端

京東雲開發者 - 一些常見的字符串匹配算法

作者:京東零售李文濤 一、簡介 1.1 Background 字符串匹配在文本處理的廣泛領域中是一個非常重要的主題。字符串匹配包括在文本中找到一個,或者更一般地説,所有字符串(通常來講稱其為模式)的出現。該模式表示為p=p[0..m-1];它的長度等於m。文本表示為t=t[0..n-1],它的長度等於n。兩個字符串都建立在一個有限的字符集上。 一個比較常見的字符串匹配方法工作原理如下。在一個大小通

字符串 , 算法 , 匹配 , 字符串函數

京東雲開發者 - 從原理聊JVM(一):染色標記和垃圾回收算法

作者:京東科技康志興 1 JVM運行時內存劃分 1.1 運行時數據區域 • 方法區 屬於共享內存區域,存儲已被虛擬機加載的類信息、常量、靜態變量、即時編譯器編譯後的代碼等數據。運行時常量池,屬於方法區的一部分,用於存放編譯期生成的各種字面量和符號引用。 JDK1.8之前,Hotspot虛擬機對方法區的實現叫做永久代,1.8之後改為元空間。二者區別主要在於永久代是在JVM虛擬機中分配內存,而元空間

jvm , 垃圾回收機制 , 垃圾回收 , JAVA , 後端

京東雲開發者 - 我在京東做研發丨揭秘國產ARM服務器在京東的大規模生產實踐

產業數字化和國產化升級 已經進入深水區 漸進式完成國產化真替真用是大勢所趨 京東80%的應用已經完成國產化集羣適配 京東雲產品技術規劃總架構師 帶來京東雲自身和客户的國產化升級實踐 看國產化數字基礎設施 從可用向好用進化 嘉賓介紹 王碧波 京東雲產品技術規劃總架構師清華大學本科、碩士,近二十年雲計算和互聯網領域工作經驗。自2017年加入京東以來,先後負責多雲、

服務器開發 , 服務器 , arm , 程序員

京東雲開發者 - JDK8到JDK17有哪些吸引人的新特性?

作者:京東零售劉一達 前言 2006年之後SUN公司決定將JDK進行開源,從此成立了OpenJDK組織進行JDK代碼管理。任何人都可以獲取該源碼,並通過源碼構建一個發行版發佈到網絡上。但是需要一個組織審核來確保構建的發行版是有效的, 這個組織就是JCP(Java Community Process)。2009年,SUN公司被Oracle公司"白嫖"(參考2018年Google賠款),此時大家使用的

jdk17 , jdk8 , JAVA , 程序員

京東雲開發者 - 緩存空間優化實踐

作者:京東科技 董健 導讀 緩存Redis,是我們最常用的服務,其適用場景廣泛,被大量應用到各業務場景中。也正因如此,緩存成為了重要的硬件成本來源,我們有必要從空間上做一些優化,降低成本的同時也會提高性能。 下面以我們的案例説明,將緩存空間減少70%的做法。 場景設定 1、我們需要將POJO存儲到緩存中,該類定義如下 public class TestPOJO implements Seriali

redis , hash , 緩存 , 緩存設計