Quantcast
Channel: IT瘾技术推荐
Browsing all 329 articles
Browse latest View live

Image may be NSFW.
Clik here to view.

京东亿级商品搜索核心技术解密

作者:王春明,现任京东搜索平台部负责人,2011年加入京东搜索团队,期间一直负责京东搜索引擎研发工作,主导了多次搜索架构升级工作保障其满足京东发展需求,擅长搜索引擎、高性能服务开发、分布式系统架构。招聘: 京东搜索平台部木有有高级/资深搜索引擎研发工程师(C/C++)...

View Article


Image may be NSFW.
Clik here to view.

Java 性能优化的五大技巧

要对你的 java 代码进行优化,需要理解 java 不同要素之间的相互作用,以及它是如何与其运行时的操作系统进行交互的。使用下面这五个技巧和资源,开始学习如何分析和优化你的代码吧。 在我们开始之前, 你也许会担心许可的问题. Java 为 Oracle 公司所有,遵循 Oracle 的 BCL 许可,该许可证不是一个免费/开源许可证。即便如此, 仍然有 许多开源项目由 Oracle 公司的...

View Article


Image may be NSFW.
Clik here to view.

LB 负载均衡的层次结构

作为后端应用的开发者,我们经常开发、调试、测试完我们的应用并发布到生产环境,用户就可以直接访问到我们的应用了。但对于互联网应用,在你的应用和用户之间还隔着一层低调的或厚或薄的负载均衡层软件,它们不显山不露水默默的发挥着重要的作用,以至于我们经常忽略了它们的存在。因为负载均衡层通常不在一般开发人员的问题域内,而且它们一般都是现成且成熟的解决方案,以至于我们习惯性的忽略和认为乏善可陈。其实不然,本文就写...

View Article

Image may be NSFW.
Clik here to view.

JAVA虚拟机关闭钩子(Shutdown Hook)

Java程序经常也会遇到进程挂掉的情况,一些状态没有正确的保存下来,这时候就需要在JVM关掉的时候执行一些清理现场的代码。JAVA中的ShutdownHook提供了比较好的方案。JDK提供了Java.Runtime.addShutdownHook(Thread...

View Article

Image may be NSFW.
Clik here to view.

使用Spring Boot开发Web项目

前面两篇博客中我们简单介绍了spring Boot项目的创建、并且也带小伙伴们来DIY了一个Spring Boot自动配置功能,那么这些东西说到底最终还是要回归到Web上才能体现出它的更大的价值,so,今天我们就来看一下如何使用Spring Boot来开发Web项目。当然,如果小伙伴对Spring Boot尚不熟悉的话,可以先参考一下这两篇博客:1. 初识Spring Boot框架 2....

View Article


Image may be NSFW.
Clik here to view.

spring + redis 实现数据的缓存

1、实现目标通过redis缓存数据。(目的不是加快查询的速度,而是减少数据库的负担)2、所需jar包注意:jdies和commons-pool两个jar的版本是有对应关系的,注意引入jar包是要配对使用,否则将会报错。因为commons-pooljar的目录根据版本的变化,目录结构会变。前面的版本是org.apache.pool,而后面的版本是org.apache.pool2…style=”back...

View Article

Image may be NSFW.
Clik here to view.

MySQL 大表优化方案

当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化:单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在 千万级以下,字符串为主的表在 五百万以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量:字段尽量使用 TINYINT、...

View Article

Image may be NSFW.
Clik here to view.

JVM 调优 —— GC 长时间停顿问题及解决方法

零. 简介垃圾收集器长时间停顿,表现在 Web 页面上可能是页面响应码 500 之类的服务器错误问题,如果是个支付过程可能会导致支付失败,将造成公司的直接经济损失,程序员要尽量避免或者说减少此类情况发生。一. 并发模式失败(concurrent mode failure)并发模式失败日志:2016-02-21T13:53:07.974+0800: 171467.254: [GC [1...

View Article


Image may be NSFW.
Clik here to view.

zookeeper 大量连接断开重连原因排查

问题现象最后发现线上的zookeeper的日志zookeeper.out 文件居然有6G,后来设置下日志为滚动输出,参考:http://blog.csdn.net/hengyunabc/article/details/19006911但是改了之后,发现一天的日志量就是100多M,滚动日志一天就被冲掉了,这个不科学。再仔细查看下日志里的内容,发现有很多连接建立好,马上又断开:2014-11-24...

View Article


Image may be NSFW.
Clik here to view.

关于Java并发编程的总结和思考

为什么需要并发并发其实是一种解耦合的策略,它帮助我们把做什么(目标)和什么时候做(时机)分开。这样做可以明显改进应用程序的吞吐量(获得更多的CPU调度时间)和结构(程序有多个部分在协同工作)。做过Java Web开发的人都知道,Java...

View Article

Image may be NSFW.
Clik here to view.

RESTful 架构风格下的 4 大常见安全问题

伴随着RESTful架构风格的大量应用微服务架构的流行,一些本来难以察觉到的安全问题也逐渐开始显现出来。在我经历过的各种采用RESTful微服务架构风格的应用中,某些安全问题几乎在每个应用中都会出现。然而它们并非是什么高深的技术难题,只不过是借着微服务的流行而显得越发突出,这些都可以通过一些安全实践来避免。本文将一些典型的问题列举出来,希望能引起开发团队的注意,帮助他们绕过这些安全问题的“坑”。1....

View Article

Image may be NSFW.
Clik here to view.

JVM初探——使用堆外内存减少Full GC

问题: 大部分主流互联网企业线上Server JVM选用了CMS收集器(如Taobao、LinkedIn、Vdian), 虽然CMS可与用户线程并发GC以降低STW时间, 但它也并非十分完美, 尤其是当出现 Concurrent Mode Failure由并行GC转入串行时, 将导致非常长时间的 Stop The World(详细可参考 JVM初探- 内存分配、GC原理与垃圾收集器).解决: 由...

View Article

Image may be NSFW.
Clik here to view.

Apache Beam:一个开源的统一的分布式数据处理编程库

Apache Beam是一个开源的数据处理编程库,由Google共享给Apache的项目,前不久刚刚成为Apache TLP项目。它提供了一个高级的、统一的编程模型,允许我们通过构建Pipeline的方式实现批量、流数据处理,并且构建好的Pipeline能够运行在底层不同的执行引擎上。刚刚接触该开源项目时,我的第一感觉就是:在编程API的设计上,数据集及其操作的抽象有点类似Apache...

View Article


Image may be NSFW.
Clik here to view.

JVM上最快的Bloom filter实现

英文原始出处:  Bloom filter for Scala, the fastest for JVM本文介绍的是我用Scala实现的Bloom filter。 源代码在 github上。依照 性能测试结果,它是JVM上的 最快的Bloom filter实现。零分配(Zero-allocation)和高度优化的代码。 无内存限制,所以没有包含元素的数量限制和可控的误报率(false...

View Article

Image may be NSFW.
Clik here to view.

从Gitlab误删除数据库想到的

昨天,Gitlab.com发生了一个大事,某同学误删了数据库,这个事看似是个低级错误,不过,因为Gitlab把整个过程的细节都全部暴露出来了,所以,可以看到很多东西,而对于类似这样的事情,我自己以前也干过,而在最近的两公司中我也见过(Amazon中见过一次,阿里中见过至少四次),正好通过这个事来说说一下自己的一些感想和观点吧。...

View Article


Image may be NSFW.
Clik here to view.

分布式系统中唯一 ID 的生成方法

本文主要介绍在一个分布式系统中, 怎么样生成全局唯一的 ID一, 问题描述在分布式系统存在多个 Shard 的场景中, 同时在各个 Shard 插入数据时, 怎么给这些数据生成全局的 unique ID?在单机系统中 (例如一个 MySQL 实例), unique ID 的生成是非常简单的, 直接利用 MySQL 自带的自增 ID 功能就可以实现.但在一个存在多个 Shards 的分布式系统...

View Article

Image may be NSFW.
Clik here to view.

每天自动备份MySQL数据库的shell脚本

经常备份数据库是一个好习惯,虽然数据库损坏或数据丢失的概率很低,但一旦发生这种事情,后悔是没用的。一般网站或应用的后台都有备份数据库的功能按钮,但需要去手工执行。我们需要一种安全的,每天自动备份的方法。下面的这个shell脚本就是能让你通过过设定Crontab来每天备份MySQL数据库的方法。#!/bin/bash # 数据库认证 user="" password="" host=""...

View Article


Image may be NSFW.
Clik here to view.

Linux下正确删除海量文件的姿势

这里说的“海量”并不是指体积大,而是指数量,比如一个目录下有数百万个小文件。最近在优化服务器时发现postfix下的maildrop目录和clientmqueue目录下发现有大量的文件,进入这些目录里使用ls命令是愚蠢的做法,而直接执行 rm *,没有任何反应,文件数量也没有减少,也就是说,在海量文件目录里直接使用rm命令进行删除是无效的。那么正确的方法是什么呢?有两种方法可选: 第一种:find...

View Article

Image may be NSFW.
Clik here to view.

防范 CSRF 跨站请求伪造

CSRF(Cross-site request forgery,中文为 跨站请求伪造)是一种利用网站可信用户的权限去执行未授权的命令的一种恶意攻击。通过...

View Article

Image may be NSFW.
Clik here to view.

http request乱码的真相

首先,从浏览器端看下有多少种情况:1.在浏览器的地址栏,或者搜索框里输入地址:http://www.test.com/衣服/search?keyword=T恤2.在一个指定了编码的网页中,提交一个form,如:<html> <head> <meta charset="gbk"> </head> <body>...

View Article
Browsing all 329 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>