对于一个规模很大,访问量很高的Web系统,缓存总是一个不可缺少的重要组成部分。然而一个合适的,高效的缓存设计方案却并非易事。 本文将简单介绍一下缓存设计所要注意的方面,以便让有需求的系统设计者能够很快地了解缓存设计的相关…
谈谈秒杀系统的落地方案
昨天的文章给秒杀系列开了一个头,今天会集中讲一下实现一个秒杀系统的思路和方案,不代表这就是最好的方案或者最佳实践,而是希望通过这篇文章,能起到抛砖引玉的作用,希望有更佳的思路提供出来。 秒杀系统要解决的技术挑战 1.短时…
二叉堆与优先队列
一、优先队列 1.简单介绍 优先队列是一种抽象的数据结构,它与我们生活中的许多场景息息相关。比如我们的电脑或者手机,很多时候我们后台会运行多个程序,当程序过多导致内存急剧减少时,如果没有相关权限的设置,处理器会优先关闭挂…
入门神经网络:前馈
下一篇传送门 英文原文,虽然也是我写的 Chinglish,但是因为之前在加拿大某小村校上学导致中文术语可能会表述不准。 文章和代码都在这儿,用来骗 欢迎Star GitHub repo 准备工作 读懂这篇文章,需要你有…
Java数据结构(二):线性表之顺序表
顺序表采用数组实现,并且通过继承AbstractList类,下图为顺序表的存储结构图: 该图为顺序表的存储结构 具体代码如下:【详见 SequenceList.java】 package datastructure.li…
几种架构设计模式导论(中)
在上篇文章中,主要说了架构设计模式中的两种,既:单库单应用模式、内容分发模式,接下来介绍另外三种架构模式,分别为:查询分离、微服务、多级缓存。 1. 查询分离 这种主要解决的痛点是单机数据库压力过大,从而导致业务缓慢甚至…
JAVA RPC:从上手到爱不释手
文首,思考一个问题:为什么需要 RPC 服务? 在传统的开发模式中,我们通常将系统的各个服务部署在单台机器,随着服务的扩展,这种方式已经完全无法满足系统大规模的扩展需要,分布式系统由此诞生,在分布式系统中,最重要就是各个…
推酷《编程狂人》第一五八期
推酷诚意满满的技术周刊《编程狂人》, 下面是内容列表,干货多多,也可以移步到官网进一步阅读。 前端开发 2017值得一瞥的JavaScript相关技术趋势 原来 CSS 这样写是会让 app 崩溃的 手把手教你实现 Go…
LinkedList 源码之我见
接下来要开始手撕LinkedList public class LinkedList<E> extends AbstractSequentialList<E> implements List<…
构建你的西门子自动控制技术体系
自动化控制系统是集计算机技术、电子技术、通信技术等为一体的先进工业控制系统, 广泛应用于工业生产线自动化控制中,在大力推进工业4.0及智能制造的今天,有着广阔的应用及前景。 如果自动控制系统的控制器采用了西门子系列PLC…
iOS开发 | 代码组织之道
恩地 正确组织代码的意义: 方便他人同时也是方便自己快速定位代码、修改代码。 怎样组织才是正确的: 也许组织的方式有很多种,每个人的习惯和风格都有所不同,但无论怎样,清楚明了、一目了然才是真正的组织之道。 分享一下我个人…
Mac&iOS Socket
大纲 一.Socket简介 二.BSD Socket编程准备 1.地址 2.端口 3.网络字节序 4.半相关与全相关 5.网络编程模型 三.socket接口编程示例 四.使用select 五.使用kqueue 六.使用流…