Elasticsearch 架构以及源码概览
设计高并发下的读服务?一个电商老兵的10条经验
Java最佳实践
Java Top 100热门问答(Stackoverflow)

Elasticsearch 架构以及源码概览

Elasticsearch 是最近两年异军突起的一个兼有搜索引擎和NoSQL数据库功能的开源系统,基于Java/Lucene构建。最近研究了一下,感觉 Elasticsearch 的架构以及其开源的生态构建都有许多可借鉴之处,所以整理成文章分享下。本文的代码以及架构分析主要基于 Elasticsearch 2.X 最新稳定版。 Elasticsearch 看名字就能大概了解……

设计高并发下的读服务?一个电商老兵的10条经验

本文作者是一个一线的电商老兵,任职于京东商城。在本文中,他将会分享他在构建以读为主的系统时总结的经验和教训,内容包括使用HTTP协议对外通讯、使用短连接、数据异构、巧用缓存、流量控制、防刷、降级、多域名等,作者老马不带遮掩的,把自己总结的经验,包括代码都放到这里了,欢迎各位检阅! 几乎所有的互联网系统……

Java最佳实践

Java 是在世界各地最流行的编程语言之一, 但是看起来没人喜欢使用它。而 Java 事实上还算是一门不错的语言,随着 Java 8 最近的问世,我决定编制一个库,实践和工具的清单,汇集 Java 的一些最佳实践。 本文被放到了 Github 上。你可以随意地提交贡献,并加入自己的有关 Java 方面的建议和最佳实践。 本文概览: 风格 ……

Java Top 100热门问答(Stackoverflow)

目录 基础语法 Java += 操作符实质 将InputStream转换为String 将数组转换为List 如何遍历map对象 public,protected,private,不加修饰符。有什么区别呢? 如何测试一个数组是否包含指定的值? 重写(Override)equlas和hashCode方法时应考虑的问题 从一个多层嵌套循环中直接跳出 如何将String转换为Int 如何分割(s……


  • code123
    创业者应该知道的SAAS服务

    创业者应该知道的SAAS服务

    创业成立之初,无论从系统建设到企业办公,还是人力、财务服务等,都需要使用各种服务,尽管目前有各种平台提供快速开办企业服务,但在企……
  • code123
    Redis和Memcached的区别

    Redis和Memcached的区别

    Redis的作者Salvatore Sanfilippo曾经对这两种基于内存的数据存储系统进行过比较: Redis支持服务器端的数据操作:Redis相比Memcached来……
  • Python性能优化的20条建议

    1、优化算法时间复杂度 算法的时间复杂度对程序的执行效率影响最大,在Python中可以通过选择合适的数据结构来优化时间复杂度,如list和set查找某一个元素的时间复杂度分别是O(n)和O(1)。不同的场景有不同的优化方式,总得来说,一般有分治,分支界限,贪心,动态规划等思想。 2、减少冗余数据 如用上三角或下三角的方式去保存一个大的对称矩阵。在0元素占大多数的矩阵里使用稀疏矩阵表示。 3、合理使用copy与deepcopy 对于dict和list等数据结构的对象,直接赋值使用的是引用的方式。而有些情况下需要复制整个对象,这时可以使用copy包里……
  • 开源数据库的现状:方案、设计思想及适用场景

    开源RDBMS与互联网的崛起很长时间以来,关系型数据库一直是大公司的专利,市场被 Oracle / DB2 等企业数据库牢牢把持。但是随着互联网的崛起、开源社区的发展,上世纪九十年代 MySQL 1.0 的发布,标志着关系型数据库的领域社区终于有可选择的方案。 MySQL 第一个介绍的单机 RDBMS 就是 MySQL。相信大多数朋友都已经对 MySQL 非常熟悉,基本上 MySQL 的成长史就是互联网的成长史。我接触的第一个 MySQL 版本是 MySQL 4.0,到后来的 MySQL 5.5 更是经典——基本所有的互联网公司都在使用。MySQL 也普及了「可插拔」引擎这一概念,针……
  • 消息队列设计精要

    消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。 当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发的Notify、MetaQ、RocketMQ等。 本文不会一一介绍这些消息队列的所有特性,而是探讨一下自主开发设计一个消息队列时,你需要思考和设计的重要方面。过程中我们会参考这些成熟消息队列的很多重要思想。 本文首先会阐述什么时候你需要一个消息队列,然后以Push模型为主,从零开始分析……
  • Shell脚本编程总结及速查手册

    Shell是一种编程语言, 它像其它编程语言如: C, Java, Python等一样也有变量/函数/运算符/if语句/循环控制/… 但在开始之前, 我想先理清Shell语言与Shell之间的关系. Shell与Shell语言 上面说了Shell是一种编程语言但你可能也听说过:sh/bash/csh/zsh/…它们也叫Shell, 实际上这里所说的Shell是一种应用程序, 它负责解释执行你编写的Shell脚本, Mac默认就自带了sh/bash/csh/zsh/tcsh/ksh, 你可以这样查看cat /etc/shells 不同的shell的用法基本相同, 但有些shell提供了一些新特性, 比如我现在在用的就是zsh, 更多zsh的内容可以去看这篇文章 ……
  • Redis 指南

    Redis 是 C 实现的基于内存并可持久的键值对数据库,在分布式服务中常常被用作缓存。除此之外还可以利用其特点做许多有趣的应用,所以我们不仅需要会用,更需要理解其工作机制。 Redis 的具体介绍在官方网站和维基百科都有,这里我们只要记住几个关键词既可:开源、C 语言、网络交互、基于内存、可持久化、键值对、数据库。作者是 Salvatore Sanfilippo,他的博客和 github 主页都放到文末的参考链接里,有兴趣的同学可以去看看。 根据 Redis 主页上的介绍,许多公司都在使用 Redis,比较著名的有 Twitter GitHub Weibo Pinterest Snap……
  • code123
    HA 高可用软件系统保养指南

    HA 高可用软件系统保养指南

    又过了一年 618,六月是公司一年一度的大促月,一般提前一个月各系统就会减少需求和功能的开发,转而更多去关注系统可用性、稳定性和管控……
  • 解谜谷歌DevOps:什么特质可以打造世界级可靠系统?

    本文由 Gene Kim 根据对 Randy Shoup 的采访整理,深入讨论和讲解谷歌 DevOps 的提升之道,下面一起深入了解。本文系 OneAPM 联合高效运维编译整理。 Dr. Spear的模型有如下四大能力: 能力1:在问题发生时马上就能发现; 能力2:一旦发现问题立刻集群式解决(Swarming),并将此记录下来储备成新知识; 能力3:在整个公司范围内传播新知; 能力4:以开发为主导。 这也是采访 Randy Shoup 的基础,此次采访还揭示了一些在谷歌与 eBay 中未曾广泛讨论过的实践案例。 (笔者从 Randy Shoup 那里学到了太多东西,难以言喻。如果想了解更……
  • ECMAScript 6 简明教程

    ECMAScript 6 目前基本成为业界标准,它的普及速度比 ES5 要快很多,主要原因是现代浏览器对 ES6 的支持相当迅速,尤其是 Chrome 和 Firefox 浏览器,已经支持 ES6 中绝大多数的特性。 本文译自 Github 上的一篇文章,目的是对还不太熟悉 ES6 语法的同学做一个简单的扫盲。 1. let、const 和 block 作用域 let 允许创建块级作用域,ES6 推荐在函数中使用 let 定义变量,而非 var: var a = 2; {  let a = 3;  console.log(a); // 3 } console.log(a); // 2 123456 ……
  • code123
    Elasticsearch 架构以及源码概览

    Elasticsearch 架构以及源码概览

    Elasticsearch 是最近两年异军突起的一个兼有搜索引擎和NoSQL数据库功能的开源系统,基于Java/Lucene构建。最近研究了一下,感觉 Elastic……
  • code123
    设计高并发下的读服务?一个电商老兵的10条经验

    设计高并发下的读服务?一个电商老兵的10条经验

    本文作者是一个一线的电商老兵,任职于京东商城。在本文中,他将会分享他在构建以读为主的系统时总结的经验和教训,内容包括使用HTTP协议……
  • code123
    “推荐系统”精品资料合集

    “推荐系统”精品资料合集

    推荐系统的搭建是个复杂工程,涉及到实时计算、离线计算,以及各种数据采集、流转等,对自建推荐系统来说,更是很有困难。云栖社区将在6……
  • Ubuntu安装最新版nginx并设置开机启动

    一.ubuntu下载安装最新版nginx 下载与安装: wget http://nginx.org/download/nginx-1.8.1.tar.gz tar -zxvf nginx-1.8.1.tar.gz cd nginx-1.8.1/ ./configure --prefix=/usr/local/nginx sudo make sudo make install 123456 wget http://nginx.org/download/nginx-1.8.1.tar.gztar -zxvf  nginx-1.8.1.tar.gzcd nginx-1.8.1/./configure --prefix=/usr/local/nginxsudo makesudo make install   二.ubuntu设置nginx开机启……
  • 希望大家早点知道的Vim技巧

    从2009年开始Vim一直是我主要(并且是唯一的)文本编辑器。这几年,我发现了许多希望当初能早点知道的Vim技巧,因为他们显著改善了我的文本编辑效率。在这片博文中,我想和你们分享最重要的几点。 “不要使用方向键,使用h/j/k/l替代!”通常是给Vim新手的第一条建议。很长一段时间我忽略了它因为这似乎对我有些荒唐。我到底为什么需要那么做?终于有一天我决定尝试一番。从那以后,再也没有回过头。我用了许多天来习惯,当我习惯后,我惊讶于我所失去的。h/j/k/l键在本列位,你不必过多移动你的手。这不仅帮助我移动得更快,而且让我的……