自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张小平的博客

java分布式架构,后端研发

转载 Java 的几把 JVM 级锁

简介 在计算机行业有一个定律叫 " 摩尔定律 ",在此定律下,计算机的性能突飞猛进,而且价格也随之越来越便宜, CPU 从单核到了多核,缓存性能也得到了很大提升,尤其是多核 CPU 技术的到来,计算机同一时刻可以处理多个任务。在硬件层面的发展带来的效率极大提升中,软件层面的多...

2020-02-19 10:58:07 34 0

转载 app端与服务端加密

在服务器与终端设备进行HTTP通讯时,常常会被网络抓包、反编译(Android APK反编译工具)等技术得到HTTP通讯接口地址和参数。为了确保信息的安全,我们采用AES+RSA组合的方式进行接口参数加密和解密。1.关于RSA加密机制:公钥用于对数据进行加密,私钥对数据进行解密,两者不可逆。公钥和...

2018-01-24 14:30:59 9372 2

转载 Redis在京东到家的订单中的使用

Redis在京东到家的订单中的使用 发表于 2017-06-30   |   分类于 架构 背景 Redis作为一款性能优异的内存数据库,在互联网公司有着多种应用场景,下面介绍下Redis在京东到家的订单列表中的使用场景。主要从以下几个方面来介绍: 订单列表在Redis...

2018-01-21 16:02:36 533 0

转载 select,epoll区别

select、poll、epoll之间的区别总结[整理]   select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epo...

2018-01-13 16:08:33 235 0

转载 防雪崩利器:熔断器 Hystrix 的原理与使用

本文转自:https://segmentfault.com/a/1190000005988895,请指正。 前言 分布式系统中经常会出现某个基础服务不可用造成整个系统不可用的情况, 这种现象被称为服务雪崩效应. 为了应对服务雪崩, 一种常见的做法是手动服务降级. 而Hystri...

2018-01-13 14:24:49 335 0

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

本文转自:http://blog.csdn.net/hengyunabc/article/details/41450003 问题现象 最后发现线上的zookeeper的日志zookeeper.out 文件居然有6G,后来设置下日志为滚动输出,参考: http://blog.csdn....

2017-09-12 13:53:42 1124 0

转载 如何编写Maven插件

转自:http://blog.csdn.net/vking_wang/article/details/8612981 需求: 在Maven编译项目的时候,统计代码量,即项目中的文件数目、代码行数,包括Java文件和配置文件两种;其中配置文件(sql、xml、properties)代码行...

2017-07-31 11:00:29 281 0

转载 SOCKET.IO,理解SOCKET.IO

原文:http://www.cnblogs.com/xiezhengcai/p/3957314.html 要理解socket.io ,不得不谈谈websocket 在html5之前,因为http协议是无状态的,要实现浏览器与服务器的实时通讯,如果不使用 flash、applet 等浏览器插件的...

2017-06-30 14:20:18 362 0

转载 Maven常用命令 - 构建反应堆中指定模块

转自:http://blog.csdn.net/jason5186/article/details/39530087 mvn -h 可以看到很多命令及其用途; -am --also-make 同时构建所列模块的依赖模块; -amd -also-make-dependents 同时构建依赖于所...

2017-05-02 14:05:05 341 0

转载 接口限流算法总结

转自:http://www.cnblogs.com/clds/p/5850070.html 背景 曾经在一个大神的博客里看到这样一句话:在开发高并发系统时,有三把利器用来保护系统:缓存、降级和限流。那么何为限流呢?顾名思义,限流就是限制流量,就像你宽带包了1个G的流量,用完了就没了。通...

2017-04-11 19:06:09 2877 0

转载 如何合理地估算线程池大小?

如何合理地估算线程池大小? 这个问题虽然看起来很小,却并不那么容易回答。大家如果有更好的方法欢迎赐教,先来一个天真的估算方法:假设要求一个系统的TPS(Transaction Per Second或者Task Per Second)至少为20,然后假设每个Transaction由一个线程完成...

2017-03-16 16:49:30 315 0

转载 netty可靠性(相对于nio)

转自:http://blog.csdn.net/pentiumchen/article/details/45117233 Selector空轮询处理 在NIO中通过Selector的轮询当前是否有IO事件,根据JDK NIO api描述,Selector的select方法会一直阻塞,直到IO事...

2017-03-16 16:43:47 846 0

转载 Linux进程间通信——使用共享内存

一、什么是共享内存 顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它...

2017-03-06 18:09:42 182 0

转载 Object详解

Object类是Java中其他所有类的祖先,没有Object类Java面向对象无从谈起。作为其他所有类的基类,Object具有哪些属性和行为,是Java语言设计背后的思维体现。   Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会...

2017-02-28 17:08:55 236 0

转载 谈谈对CAP定理的理解

CAP定理的常规解释是任何分布式系统只能在一致性(Consitency),可用性(Availability)和分区容忍性(Partition Tolerance)中三选二。这个解释很让人费解,笔者在看了一些文章后谈谈我对它的理解,还请斧正。 从问题出发 假设我们用一台服务器A对...

2017-02-21 16:34:03 321 0

转载 由 B-/B+树看 MySQL索引结构

转自:https://segmentfault.com/a/1190000004690721 B-树 B-树,这里的 B 表示 balance( 平衡的意思),B-树是一种多路自平衡的搜索树 它类似普通的平衡二叉树,不同的一点是B-树允许每个节点有更多的子节点。下图是 B-树的简化图....

2017-02-20 15:31:40 209 0

转载 平衡二叉查找树

一.平衡二叉查找树 平衡二叉查找树是带有平衡条件的二叉查找树。平衡条件:每个节点的左子树和右子树的高度差最多为1二叉查找树(其中空树的高度为-1)。 二、平衡二叉树算法思想     若向平衡二叉树中插入一个新结点后破坏了平衡二叉树的平衡性。首先要找出插入新结点后失去平衡的最小子树...

2017-02-17 17:31:22 397 0

转载 数据库事务隔离级别

本文系转载,原文地址:http://singo107.iteye.com/blog/1175084 数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏...

2017-02-17 11:49:11 156 0

转载 memcache与redis原理区别

说到redis就会联想到memcached,反之亦然。了解过两者的同学有那么个大致的印象: redis与memcached相比,比仅支持简单的key-value数据类型,同时还提供list,set,zset,hash等数据结构的存储;redis支持数据的备份,即master-slave模式的...

2017-02-17 10:32:19 2787 0

转载 最小生成树-Prim算法和Kruskal算法

Prim算法 1.概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边的权值之和亦为最小。该算法于1930年由捷克数学家沃伊捷...

2017-02-15 17:27:03 244 0

转载 TCP三次握手四次挥手

TCP的三次握手(建立连接)和四次挥手(关闭连接) 参照: http://course.ccniit.com/CSTD/Linux/reference/files/018.PDF http://hi.baidu.com/raycomer/item/944d23d9b502d13be310...

2017-02-13 19:39:29 193 0

转载 java线程模型

1. 概述 众所周知,线程 - Thread 是比进程 - Progress 更轻量级的调度单位。简单来说,引入线程带来的好处是: 可以把一个进程 的资源分配和执行调度分开,各个线程 既可以共享进程 资源(内存地址、文件I/O等),又可以独立调度。 线程实现方式:  主...

2017-02-11 19:08:27 186 0

转载 Java 应用性能调优实践

Java 应用性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢、接口超时,服务器负载高、并发数低,数据库频繁死锁等。尤其是在“糙快猛”的互联网开发模式大行其道的今天,随着系统访问量的日益增加和代码的臃肿,各种性能问题开始纷至沓来。Java 应用性能的瓶颈点非常多,比如磁盘、内存、网络 I/...

2017-02-10 15:55:44 332 0

转载 通过jstack日志分析和问题排查

转自:http://www.ccblog.cn/84.htm 前段事件公司出现了一个严重故障(调用dubbo服务一直处于超时,整个服务系统发生雪崩,系统彻底访问不了),一开始怎么都找不到问题的根源,日志的表现形式是dubbo线程池用完了,那么具体是什么导致的没有找到,后然通过jstack日志...

2017-02-10 15:44:13 27164 2

原创 工作备忘

1:查看内存情况 jmap -heap 4921 2:查看gc情况 jstat -gcutil 4921

2017-01-23 16:48:03 211 0

转载 分布式事务一致性解决方案

在OLTP系统领域,我们在很多业务场景下都会面临事务一致性方面的需求,例如最经典的Bob给Smith转账的案例。传统的企业开发,系统往往是以单体应用形式存在的,也没有横跨多个数据库。我们通常只需借助开发平台中特有数据访问技术和框架(例如Spring、JDBC、ADO.NET),结合关系型数据库自带...

2017-01-17 14:46:58 278 0

转载 Spring Boot——开发新一代Spring Java应用

Spring官方网站本身使用Spring框架开发,随着功能以及业务逻辑的日益复杂,应用伴随着大量的XML配置文件以及复杂的Bean依赖关系。随着Spring 3.0的发布,Spring IO团队逐渐开始摆脱XML配置文件,并且在开发过程中大量使用“约定优先配置”(convention over...

2017-01-16 14:54:46 260 0

转载 实施微服务,我们需要哪些基础框架?

微服务(MicroServices)架构是当前互联网业界的一个技术热点,圈里有不少同行朋友当前有计划在各自公司开展微服务化体系建设,他们都有相同的疑问:一个微服务架构有哪些技术关注点(technical concerns)?需要哪些基础框架或组件来支持微服务架构?这些框架或组件该如何选型?笔者之前...

2017-01-13 11:48:41 724 0

转载 RocketMQ大数据畅想

刚刚过去的双十一,阿里自主研发的消息中间件RocketMQ,充分展现了它的低延迟特性,大部分消息请求落在2ms内,慢请求也都落在20ms内,这无疑给追求快速响应的在线交易系统(OLTP)带去了福音。 也是在今年11月份,RocketMQ进入Apache孵化。这款最初设计来为淘宝交易系统异步解耦、...

2017-01-12 15:46:37 683 0

转载 分布式系统的思考

中心化 一种是中心化的,由中心节点去存储集群信息并管理集群状态,其它节点只需响应数据请求,而无需知道集群中其它节点的情况。 这种模式的核心便是选举或者指定一个节点作为集群的管理者,由管理者去协调跨节点的操作、备份数据和处理故障等。 一般的,对于跨节点的操作,为了保证事务的原子性...

2017-01-11 15:27:46 275 0

转载 构建高性能微服务架构(网易)

随着移动互联网时代的兴起,提供高性能、高可用性、高扩展性的服务已经不仅仅是大公司的专利,而逐渐成为所有互联网+公司的标配需求。本文介绍网易如何利用多年的互联网架构经验和网易蜂巢的平台,帮助客户进行架构改进、微服务化、性能调优。 传统架构之痛 当前的时代称为互联网的时代,互联网应用的特点...

2017-01-07 16:30:27 2547 0

转载 阿里飞天云平台架构简介

转自:http://blog.csdn.net/yangcs2009/article/details/39292097 飞天是由阿里云开发的一个大规模分布式计算系统,其中包括飞天内核和飞天开放服务。 飞天内核负责管理数据中心Linux集群的物理资源,控制分布式程序运行, 隐藏下层故障恢...

2016-12-26 10:33:19 2235 0

转载 京东评价系统海量数据存储高可用设计

转自:https://toutiao.io/posts/j98rp8/preview 原文链接 京东的商品评论目前已达到数十亿条,每天提供的服务调用也有数十亿次,而这些数据每年还在成倍增长,而数据存储是其中最重要的部分之一,接下来就介绍下京东评论系统的数据存储是如何设计的。 整体数据...

2016-12-25 15:02:53 503 0

转载 分布式系统高可用设计

理解高可用系统 首先,我们需要理解什么是高可用,英文叫High Availability(Wikipedia词条),基本上来说,就是要让我们的计算环境(包括软硬件)做到full-time的可用性。在设计上一般来说,需要做好如下的设计: 对软硬件的冗余,以消除单点故障。任何系统都会有一个或多...

2016-12-25 14:09:38 1323 1

转载 服务治理过程演进

转自:http://javatar.iteye.com/blog/1345073   在大规模服务化之前,应用可能只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用,通过F5等硬件进行负载均衡。  (1) 当服务越来越多时,服务URL...

2016-12-23 10:51:41 262 0

转载 为什么容器技术(docker)将主宰世界,docker的意义

转自:http://blog.csdn.net/gaoyingju/article/details/49616295 为什么容器技术将主宰世界 由于本文篇幅较长(我竟然写了7千多字),为了帮助你快速理解,我先列出核心思想: 先讲一个集装箱改变全球运输业的生动故事, ...

2016-12-22 14:59:04 6724 0

转载 从Java视角理解系统结构(三)伪共享

转自 转载自并发编程网 – ifeve.com http://ifeve.com/from-javaeye-false-sharing/ 从我的前一篇博文中, 我们知道了CPU缓存及缓存行的概念, 同时用一个例子说明了编写单线程Java代码时应该注意的问题. 下面我们讨论更为复杂, 而且更符...

2016-12-21 20:28:39 198 0

转载 从Java视角理解系统结构(二)CPU缓存

转载自并发编程网 – ifeve.com  http://ifeve.com/from-javaeye-cpu-cache/ 众所周知, CPU是计算机的大脑, 它负责执行程序的指令; 内存负责存数据, 包括程序自身数据. 同样大家都知道, 内存比CPU慢很多. 其实在30年前, CPU的频...

2016-12-21 20:08:22 234 0

转载 从Java视角理解系统结构(一)CPU上下文切换

本文转自:转载自并发编程网 – ifeve.com http://ifeve.com/java-context-switch/  在高性能编程时,经常接触到多线程. 起初我们的理解是, 多个线程并行地执行总比单个线程要快, 就像多个人一起干活总比一个人干要快. 然而实际情况是, 多线...

2016-12-21 19:57:14 238 0

转载 storm架构及原理

storm 架构与原理 1 storm简介 1.1 storm是什么 如果只用一句话来描述 storm 是什么的话:分布式 && 实时 计算系统。按照作者 Nathan Marz 的说法,storm对于实时计算的意义类似于hadoop对于批处理的意义。 ...

2016-12-20 15:25:57 2930 1

提示
确定要删除当前文章?
取消 删除