作者:京東物流趙勇萍 前言 上個月我負責的系統SSO升級,對接京東ERP系統,這也讓我想起了之前我做過一個單點登錄的項目。想來單點登錄有很多實現方案,不過最主流的還是基於CAS的方案,所以我也就分享一下我的CAS實踐之路。 什麼是單點登錄 單點登錄的英文名叫做:Single Sign On(簡稱SSO)。SSO的定義是在多個應用系統中,用户只需要登錄一次就可以訪問所有相互信任的應用系統。之前我做的
作者:京東零售 王雷 1、Redis集羣方案比較 • 哨兵模式 在redis3.0以前的版本要實現集羣一般是藉助哨兵sentinel工具來監控master節點的狀態,如果master節點異常,則會做主從切換,將某一台slave作為master,哨兵的配置略微複雜,並且性能和高可用性等各方面表現一般。 特別是在主從切換的瞬間存在訪問瞬斷的情況,而且哨兵模式只有一個主節點對外提供服務,沒法支持很
作者:京東零售 鄧立兵 隨着Swift的日漸成熟和給開發過程帶來的便利性及安全性,京喜App中的原生業務模塊和基礎模塊使用Swift開發佔比逐漸增高。本次討論的是struct對比Class的一些優劣勢,重點分析對包體積帶來的影響及規避措施。 一、基礎知識 1、類型對比 引用類型:將一個對象賦值給另一個對象時,系統不會對此對象進行拷貝,而會將指向這個對象的指針賦值給另一個對象,當修改其中一個對象的
作者:京東物流 嚴孝男 一、問題 去年年中時候,我有個好朋友(可以叫他華哥)頂着當時還很嚴重的疫情形式激情創業,斥巨資承包了他原公司食堂的幾個攤位,搖身一變成了老闆。當了老闆的華哥沒有絲毫懈怠,不但做了充足的市場調研,還結合他自己以前就餐時的痛點做了創新,比如以前食堂除了最常規的面,餃子,米線一類的之外就是一份份的賣炒菜,差不多一份葷菜十幾塊,一份素菜近十塊的樣子,這就導致一個問題,一般男生花了幾
作者:京東零售 李臣臣 閲讀本文,或許能夠了解關於以下的幾個問題: 1、編譯器是什麼?為什麼會有編譯器這樣一個東西? 2、編譯器做了哪些工作?整個編譯過程又是什麼? 3、Apple的編譯器發展歷程以及為什麼會拋棄GCC換成自研的LLVM? 4、從編譯器角度看Swift與OC能夠實現混編的底層邏輯 一、找個翻譯官,説點計算機能懂的語言 説點常識,眾所周知,作為開發者我們能看懂這樣的代碼: int a
作者:京東科技 孫亮 微電平台 微電平台是集電銷、企業微信等於一體的綜合智能SCRM SAAS化系統,涵蓋多渠道管理、全客户生命週期管理、私域營銷運營等主要功能,目前已經有60+京東各業務線入駐,專注於為業務提供職場外包式的一站式客户管理及一體化私域運營服務。 導讀 本文介紹電銷系統在遇到【客户名單離線打標】問題時,從排查、反覆驗證到最終解決問題並額外提升50%吞吐的過程,適合所有服務端研
作者:京東零售 付偉 1. 前言 大家好,當你點開這篇文章的時候也許心想是哪個 XX 小編混到這裏,先不要着急扔臭雞蛋,本文是一篇標準(正經)的問題覆盤文章。好了,一行MD5居然讓小夥伴下不了班,到底是什麼問題呢,讓我們一起來看看吧。 2. 正文 2.1 需求是什麼 這裏不再介紹具體的業務。簡而言之,有兩個接口(查詢、確認)對前端頁面提供服務。 查詢接口返回的數據依賴於本地數據與外部接口計算後的結
作者:京東零售 鄭炳懿 前言 React Hooks是React16.8 引入的一個新特性,它允許函數組件中使用state和其他 React 特性,而不必使用類組件。Hooks是一個非常重要的概念,因為它們提供了更簡單、更易於理解的React開發體驗。 React Hooks的核心源碼主要包括兩個部分:React內部的Hook管理器和一系列預置的Hook函數。 首先,讓我們看一下React內部的H
作者:京東零售 吳靜 自從Vue發佈以來,就受到了廣大開發人員的青睞,提到Vue,我們首先想到的就是Vue的響應式系統,那響應式系統到底是怎麼回事呢?接下來我就給大家簡單介紹一下Vue中的響應式原理。 vue2的響應式原理 儘管Vue2將於2023年12月31日停止維護,但是我們依然有很多項目是基於Vue2.X進行開發的,那麼我們先簡單看一看Vue2.X是基於什麼實現的吧~ Object.defi
本文參與了SegmentFault 思否寫作挑戰賽,歡迎正在閲讀的你也加入。 作者:京東零售 姜欣 關於服務器端渲染方案,之前只接觸了基於react的Next.js,最近業務開發vue用的比較多,所以調研了一下vue的服務器端渲染方案。 首先:長文預警,下文包括了兩種方案的實踐,沒有耐心的小夥伴可以直接跳到方案標題下,down代碼體驗一下。 前置知識: 1、什麼是服務器端渲染(ssr)? 簡單來説
作者:京東物流 張弓言 一、背景 Netty 是一款優秀的高性能網絡框架,內部通過 NIO 的方式來處理網絡請求,在高負載下也能可靠和高效地處理 I/O 操作 作為較底層的網絡通信框架,其被廣泛應用在各種中間件的開發中,比如 RPC框架、MQ、Elasticsearch等,這些中間件框架的底層網絡通信模塊大都利用到了 Netty 強大的網絡抽象 下面這篇文章將主要對 Netty 中的各個組件進行分
作者:京東零售 劉樂 1. ParallelGCThreads參數含義 在講這個參數之前,先談談JVM垃圾回收(GC)算法的兩個優化標的:吞吐量和停頓時長。JVM會使用特定的GC收集線程,當GC開始的時候,GC線程會和業務線程搶佔CPU時間,吞吐量定義為CPU用於業務線程的時間與CPU總消耗時間的比值。為了承接更大的流量,吞吐量越大越好。 為了安全的垃圾回收,在GC或者GC某個階段,所有業務線程都
作者:京東科技 韓國凱 前言 Go語言定義 Go(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發的一種靜態、強類型、編譯型語言。Go 語言語法與 C 相近,但功能上有:內存安全,GC,結構形態及 CSP-style 併發計算。 適用範圍 本篇文章適用於學習過其他面嚮對象語言(Java、Php),但沒有學過Go語言的初
作者:京東科技 雷自海 一、概述 任務平台是科技內各業務方開展互動玩法的中心化平台,支撐科技內拉新、促活、交易等業務場景,包含基礎任務、基於任務的通用活動玩法和業務投放能力。提供了任務玩法的創建、投放、曝光、完成等全生命週期的精細化管理,打造了基於任務的裂變、時間軸等通用活動玩法的規則化運營,致力於提升在多場景、多玩法、多頻次的業務投放能力。任務中心主要戰場是金融APP,目前日均500W的完成量,
作者:京東物流 楊攀 分頁是 web application 開發最常見的功能。在使用不同的框架和工具過程中,發現初始行/頁的定義不同,特意整理記錄。從這個技術點去看不同層的實現。以及不同語言實現的對比。 文章會從正常的web 結構分層的角度去梳理不同層的處理。 分為數據庫分頁、服務端分頁、前端分頁 數據庫分頁 這裏用mysql 舉例整理。我們常用的數據庫例如 Oracle/
作者:京東物流 劉作龍 前言: 學習底層原理有的時候不一定你是要用到他,而是學習他的設計思想和思路。再或者,當你在日常工作中遇到棘手的問題時候,可以多一條解決問題的方式 分享大綱: 本次分享主要由io與nio讀取文件速度差異的情況,去了解nio為什麼讀取大文件的時候效率較高,查看nio是如何使用直接內存的,再深入到如何使用直接內存 1 nio與io讀寫文件的效率比對 首先上代碼,有興
作者:京東零售 周凱 一.前言 Rust 語言由 Mozilla 開發,最早發佈於 2014 年 9 月,是一種高效、可靠的通用高級語言。其高效不僅限於開發效率,它的執行效率也是令人稱讚的,是一種少有的兼顧開發效率和執行效率的語言。Rust語言具備如下特性: •高性能 - Rust 速度驚人且內存利用率極高。由於沒有運行時和垃圾回收,它能夠勝任對性能要求特別高的服務,可以在嵌入式設備上運行,還能輕
京東科技 姚永健 一、術語表: 1.對稱算法 加密解密密鑰是相同的。這些算法也叫秘密密鑰算法或單密鑰算法,它要求發送者和接收者在安全通信之前,商定一個密鑰。對稱算法的安全性依賴於密鑰,泄漏密鑰就意味着任何人都能對消息進行加密解密。只要通信需要保密,密鑰就必須保密。 對稱算法可分為兩類。一次只對明文中的單個位(有時對字節)運算的算法稱為序列算法或序列密碼。另一類算法是對明文的一組位進行運算,這些位組
作者:京東科技 王晨 Redis異步客户端選型及落地實踐 可視化服務編排系統是能夠通過線上可視化拖拽、配置的方式完成對接口的編排,可在線完成服務的調試、測試,實現業務需求的交付,詳細內容可參考:https://mp.weixin.qq.com/s/5oN9JqWN7n-4Zv6B9K8kWQ。 為了支持更加廣泛的業務場景,可視化編排系統近期需要支持對緩存的操作功能,為保證編排系統的性能,服務的執行
作者:京東科技 張天賜 前言 JDK 8 是一次重大的版本升級,新增了非常多的特性,其中之一便是CompletableFuture。自此從 JDK 層面真正意義上的支持了基於事件的異步編程範式,彌補了Future的缺陷。 在我們的日常優化中,最常用手段便是多線程並行執行。這時候就會涉及到CompletableFuture的使用。 常見使用方式 下面舉例一個常見場景。 假如我們有兩個 RPC 遠程調
作者:京東科技 文濤 前言 本文所有介紹僅限於HotSpot虛擬機, 本文先介紹了垃圾回收的必要手段,基於這些手段講解了歷代垃圾回收算法是如何工作的, 每一種算法不會講的特別詳細,只為讀者從算法角度理解工作原理,從而引出ZGC,方便讀者循序漸進地瞭解。 GC 是 Garbage Collection 的縮寫,顧名思義垃圾回收機制,即當需要分配的內存空間不再使用的時候,JVM 將調用垃圾回收機制來回
作者: 京東零售 肖夢圓 前序 某一日晚上上線,測試同學在迴歸項目黃金流程時,有一個工單項目接口報JSF序列化錯誤,馬上升級對應的client包版本,編譯部署後錯誤消失。 線上問題是解決了,但是作為程序員要了解問題發生的原因和本質。但這都是為什麼呢? 第一個問題:為什麼測試的時候沒有發現問題呢? 首先預發環境中,所有項目中的JSF別名和client包都是beta,每天都有項目進行編譯部署,
作者:京東物流 趙帥 姚再毅 王旭東 孟偉傑 孔祥東 1 前言 物流合約中心是京東物流合同管理的唯一入口。為商家提供合同的創建,蓋章等能力,為不同業務條線提供合同的定製,歸檔,查詢等功能。由於各個業務條線眾多,為各個業務條線提供高可用查詢能力是物流合約中心重中之重。同時計費系統在每個物流單結算時,都需要查詢合約中心,確保商家簽署的合同內容來保證計費的準確性。 2 業務場景 1.查詢維度分析 從業務
作者:京東科技 文濤 背景 金融社區優惠文章是基於京東商城優惠商品批量化自動生成的,每日通過不同的渠道獲取到待生成的SKU列表,並根據條件生成優惠文章。 但是,生成優惠文章之後續衍生問題: 該商品無優惠了,對應文章需要做取消推薦或下架處理,怎樣能更快的知道該商品無優惠了呢? 方案介紹 方案對比 方案1 承接該商品所有變更信息的消息,發生變更後二編文章。 優點: 實時,一旦變更立刻知道並更新文章。