自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(556)
  • 收藏
  • 关注

如何构建Java微服务?

【编者按】微服务背后的大理念是将大型、复杂且历时长久的应用在架构上设计为内聚的服务,这些服务能够随着时间的流逝而演化。本文主要介绍了利用 Java 生态系统构建微服务的多种方法,并分析了每种方法的利弊。快速预览在 Java 生态系统中构建微服务的策略主要有:container-less, self-contained 和 in-container;Container-less 微服...

2016-01-22 13:27:31 438

【总结】Tomcat原理剖析

Tomcat模块Service我们将 Tomcat 中 Connector、Container 作为一个整体比作一对情侣的话,Connector 主要负责对外交流,可以比作为 Boy,Container 主要处理 Connector 接受的请求,主要是处理内部事务,可以比作为 Girl。那么这个 Service 就是连接这对男女的结婚证了。是 Service 将它们连接在一起...

2016-01-14 14:57:00 416

【总结】结构化思维

思维方式惯性思维方式:按照经验和直觉来分析和处理问题逻辑思维方式:强调推理和逻辑分析水平思维方式:有创意天马行空,尝试关联一些特殊属性来获得创新结构化思维:以假设为先导,强调快速、系统解决问题什么是结构化思维以假设为前提,以事实为依据(分类假设 )一种从框架到细节的思维方式强调在分析问题的过程中,不先入为主,不马上陷入细节对构成要素和...

2016-01-14 14:56:00 1124

【总结】Scrum敏捷开发

敏捷开发敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态敏捷4大宣言个体和交互胜过过程和工具人是软件项目获得成...

2016-01-14 14:55:00 438

【总结】Spring原理剖析

Spring模块Core(核心容器)说明核心容器提供 Spring 框架的基本功能。核心容器的主要组件是BeanFactory,它是工厂模式的实现BeanFactory使用控制反转(IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开IOC(控制反转模式 )不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置...

2016-01-14 14:54:00 412

【总结】Java多线程

Java内存模型工作内存和主内存主内存Java内存模型所有的变量都存储在主内存中工作内存:每个线程有自己独立的工作内存,它保存了该线程使用的变量的主内存拷贝线程对变量的操作都在自己的工作内存中进行,不能直接操作主内存和其他工作内存的存储变量或变量副本线程间的变量访问通过主内存来完成Java内存交互协议lock:主内存变量,把一...

2016-01-14 14:53:00 136

【总结】MyCat分布式数据库中间件

1,数据库概述在互联网时代,海量数据的存储与访问成为系统设计与使用的瓶颈问题,对于海量数据处理,按照使用场景,主要分为两种类型联机事务处理(OLTP:On-line transaction processing):也称为面向交易的处理系统,其基本特征是原始数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果功能:日常交易处理DB设计:面向实时交易类应...

2016-01-14 14:52:00 266

【总结】Netty(RPC高性能之道)原理剖析

1,Netty简述Netty 是一个基于 JAVA NIO 类库的异步通信框架,用于创建异步非阻塞、基于事件驱动、高性能、高可靠性和高可定制性的网络客户端和服务器端RPC高性能分析,请参考文章“【总结】RPC性能之道 ”特点异步、非阻塞、基于事件驱动的NIO框架支持多种传输层通信协议,包括TCP、UDP等开发异步HTTP服务端和客户端应用程序提供对多种应用层协议的支持...

2016-01-14 14:51:00 775

【总结】分布式缓存Memcached

1,缓存:Memcached - 只支持简单的Key / Value结构 -不支持数据持久化 - 每个Key的值最大1MB -协议简单:不使用复杂的XML等格式,而使用简单的基于文本行的协议 -基于libevent的事件处理:libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口 -内置内存存储方式: -...

2016-01-14 14:50:00 149

【总结】ZooKeeper应用分析

1,ZooKeeperZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等2,ZooKeeper使用场景分布式配置中心(数据发布与订阅)【说明】发布者将数据发布到ZK节点上,供订阅者动...

2016-01-14 14:49:00 165

【总结】瞬时高并发(秒杀/活动)Redis方案

1,Redis丰富的数据结构(Data Structures)字符串(String)Redis字符串能包含任意类型的数据一个字符串类型的值最多能存储512M字节的内容利用INCR命令簇(INCR, DECR, INCRBY)来把字符串当作原子计数器使用使用APPEND命令在字符串后添加内容列表(List)Redis列表是简单的字符串列表,按照插入顺序排...

2016-01-14 14:48:00 4539 1

【总结】RPC框架Dubbo深入分析

1,背景随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进单一应用架构当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本此时,用于简化增删改查工作量的数据访问框架(ORM)是关键垂直应用架构当访问量逐渐增大,单一应用增加机器带来的加...

2016-01-14 14:47:00 328

【总结】MySQL性能优化

1,MySQL基础 - MySQL物理文件组成 - MySQL逻辑架构 - MySQL自带工具2,MySQL存储引擎 - MyISAM - Innodb - NDBCluster3,MySQL性能优化 - 硬件层优化 - OS层优化 - MySQL层优化分析 - 系统架构及实现对性能的影响 -不适合放在数据...

2016-01-14 14:45:00 178

【总结】MySQL数据库

1,MySQL读写分离 - MySQL复制(Replication) - 双主多从架构2,MySQL高可用(HA)和读负载均衡 - 高可用:Keeplived,失效转移 - 读负载均衡:LVS3,MySQL可扩展设计 - 数据切分 - 数据的垂直切分(纵向切分) - 场景/出发点 - 大字段 - 使用用途:属性类别...

2016-01-14 14:45:00 144

【总结】消息服务中间件(ActvieMQ)

1,使用消息中间件场景 - 解耦和扩展性 - 系统之间集成只需要基于消息队列的数据接口层,这允许系统各自独立的扩展或修改各自的实现,只需要确保遵守同样的接口约束 - 异步通信/处理 - 一些事务性很强,耗时久的请求,如下订单,注册发邮件等,接受请求后马上告诉用户后台已经接受到了请求并在处理请等待,前台不停的检查处理情况,防止了用户一直挂在当前页面,提升了交互体验...

2016-01-14 14:44:00 231

【总结】Hadoop剖析

1,Hadoop简述Hadoop是一个开发和运行处理大规模海量数据的软件平台,用户可以在不了解分布式底层细节的情况下,实现在大量计算机组成的集群对海量数据进行高速分布式的计算和存储Hadoop框架中最核心设计就是:HDFS和MapReduce。HDFS提供了海量数据的存储,MapReduce提供了对数据的计算Hadoop带有用Java语言编写的框架,因此运行在 Linux 生产平台上是非...

2016-01-14 14:43:00 301

【总结】搜索服务Solr

1, Solr is a standalone enterprise search server with a REST-like API. You put documents in it (called "indexing") viaJSON, XML, CSV or binary over HTTP. You query it via HTTP GET and receive JS...

2016-01-14 14:43:00 175

【总结】Http和服务服务器负载均衡

1,备选方案 - 硬件:F5,Array - 软件: - Nginx: - 优点: - 工作在网络第七层之上,针对Http做分流策略,比如:域名,URL,目录结构,正则规则比HAProxy强大 - Nginx对网络稳定性依赖非常小,LVS对网络依赖比较大 - Nginx安装比较简单 - 曾担高负载且稳定 ...

2016-01-14 14:42:00 196

【总结】JVM模型

JVM的每个实例都有一个它自己的方法域和一个堆,运行于JVM内的所有的线程都共享这些区域当虚拟机装载类文件的时候,它解析其中的二进制数据所包含的类信息,并把它们放到方法域中当程序运行的时候,JVM把程序初始化的所有对象置于堆上而每个线程创建的时候,都会拥有自己的程序计数器和Java栈,其中程序计数器中的值指向下一条即将被执行的指令,线程的Java栈则存储为该线程调用Java方法...

2016-01-14 14:41:00 113

【总结】八大排序算法

概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速...

2016-01-14 14:39:00 171

【总结】ACID、Data Replication、CAP与BASE

1,ACID在传数据库系统中,事务具有ACID 4个属性原子性(Atomicity):事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行一致性(Consistent):在事务开始和完成时,数据都必须保持一致状态。这意味着所有相关的数据规则都必须应用于事务的修改,以保持数据的完整性;事务结束时,所有的内部数据结构(如B树索引或双向链表)也都必须是正确的隔...

2016-01-14 14:33:00 208

【总结】一致性哈希算法(Memcached)

一、概述 1、我们的memcache客户端使用了一致性hash算法ketama进行数据存储节点的选择。与常规的hash算法思路不同,只是对我们要存储数据的key进行hash计算,分配到不同节点存储。一致性hash算法是对我们要存储数据的服务器进行hash计算,进而确认每个key的存储位置。2、常规hash算法的应用以及其弊端 最常规的方式莫过于hash取模的方式。比如集群中可用...

2016-01-13 17:27:00 110

一致性哈希算法

在分布式系统中,如果某业务可以由多个相同的节点处理,很容易想到用HASH的方式将业务请求分散到这些节点处理,如果有N个节点,计算方法为:HASH(id)% N。如果只是简单的计算,不涉及用户状态,这是一个简单有效的方案。如果节点的计算涉及用户状态,比如维护购物车、Memcache缓存服务等,好像也没什么 问题,只要用同一个数据做id,上述HASH的结果也保持不变。但如果节点数量发生变化,比...

2016-01-13 17:26:00 96

程序员「奇葩」说

一直以来「奇葩」这个词都是偏贬义的,直到去年有个综艺节目叫「奇葩说」挺热闹,这里的人不一定是奇葩,更多指达人的意思。 「奇葩说」里的达人都是能说会道的,我的主业是程序员,所以只能写写在我职业生涯中碰到的一些「奇葩」程序员。 你懂的,我这里的「奇葩」没有任何贬义的意思。月在胸襟人在途我刚入行时的第一位项目经理,70后。那年三十出头,在银行客户现场做项目经理,负责一个二十来人的客户现...

2016-01-12 22:35:00 790

MySQL 数据库主从复制架构

前文《MySQL 数据库事务与复制》分析了 MySQL 复制过程中如何保证 binlog 和事务数据之间的一致性,本文进一步分析引入从库后需要保证主从的数据一致性需要考虑哪些方面。原生复制架构MySQL 的原生复制架构原理如上图所示。从库的 I/O Thread 线程负责不断读取主库的 binlog 日志文件并写入本地的 Relay log 临时缓存。从库的 SQL Thread...

2016-01-12 18:53:00 113

Logstash+ElasticSearch+Kibana日志分析系统

线上需求:处理nginx的访问access日志和商城的搜索历史记录。(由于访问量不大、没有用到redis或者其他消息队列)。之前做的一个版本使用solrcloud做电商搜索引擎、elasticsearch做实时日志系统。参考文档资料:http://elasticsearch.cn/ medcl的中文社区http://kibana.logstash.es/ELK st...

2016-01-12 12:52:00 160

机器学习系列(6)_从白富美相亲看特征预处理与选择(下)

作者:龙心尘 &&寒小阳 时间:2016年1月。 出处: http://blog.csdn.net/longxinchen_ml/article/details/50493845, http://blog.csdn.net/han_xiaoyang/article/details/50503115 声明:版权所有,转载请联系作者并注明出处1. 剧情一:挑螃蟹的秘密...

2016-01-12 11:54:00 157

机器学习系列(5)_从白富美相亲看特征预处理与选择(上)

作者:龙心尘 &&寒小阳 时间:2016年1月。 出处: http://blog.csdn.net/longxinchen_ml/article/details/50471682, http://blog.csdn.net/han_xiaoyang/article/details/50481967 声明:版权所有,转载请联系作者并注明出处1. 引言再过一个月就是春...

2016-01-08 12:20:00 145

网络通信协议笔记

http应用层协议,基于tcptcp:传输层协议;面向连接,必须先与对方确认关系。3次握手。。例如telnetudp:传输层协议;面向非连接的。不管对方状态,直接发送,例如qq。可靠性低ip:网络层协议socket:基于tcp/ip网络的api网络通信ioi:就是从硬盘到内存o:从内存到硬盘nio新io是面向缓存的,是非堵塞的。...

2016-01-07 14:08:00 91

分布式搜索elasticsearch配置文件详解

配置文件位于%ES_HOME%/config/elasticsearch.yml文件中,用Editplus打开它,你便可以进行配置。 所有的配置都可以使用环境变量,例如:node.rack: ${RACK_ENV_VAR} 表示环境变量中有一个RACK_ENV_VAR变量。 下面列举一下elasticsearch的可配置项:1. 集群名称,默认为elasticsearch:cluster.name...

2016-01-07 12:11:00 102

机器学习系列(4)_机器学习算法一览,应用建议与解决思路

作者:寒小阳 时间:2016年1月。 出处:http://blog.csdn.net/han_xiaoyang/article/details/50469334 声明:版权所有,转载请联系作者并注明出处1.引言提起笔来写这篇博客,突然有点愧疚和尴尬。愧疚的是,工作杂事多,加之懒癌严重,导致这个系列一直没有更新,向关注该系列的同学们道个歉。尴尬的是,按理说,机器学习介绍与算法一览应...

2016-01-06 15:35:00 3230

Redis 集群的合纵与连横

之前一篇写了关于 Redis 的性能,这篇就写写我认为比性能更重要的扩展性方面的主题。如果再给我一次回到好几年前的机会,对于使用 Redis 我一开始就要好好考虑将来的扩展问题。就像我们做数据库分库分表,一旦决策了分库分表,通常一次就会分到位,比如搞上 8 或 16 个库,每个库再分 256 或 1024 个表。不管将来业务再怎么发展,基本这个量级的分片都足够应对,而且底层库可以做成逻辑...

2016-01-04 23:48:00 106

深度学习与计算机视觉系列(7)_神经网络数据预处理,正则化与损失函数

作者:寒小阳 && 龙心尘 时间:2016年1月。 出处:http://blog.csdn.net/han_xiaoyang/article/details/50451460 声明:版权所有,转载请联系作者并注明出处1. 引言上一节我们讲完了各种激励函数的优缺点和选择,以及网络的大小以及正则化对神经网络的影响。这一节我们讲一讲输入数据预处理、正则化以及损失函数设定...

2016-01-03 16:43:00 732

深度学习与计算机视觉系列(6)_神经网络结构与神经元激励函数

作者:寒小阳 && 龙心尘 时间:2016年1月。 出处:http://blog.csdn.net/han_xiaoyang/article/details/50447834 声明:版权所有,转载请联系作者并注明出处1.神经元与含义大家都知道最开始深度学习与神经网络,是受人脑的神经元启发设计出来的。这里为了交代一下背景,也对神经网络研究的先驱们致一下敬,我们决...

2016-01-02 10:55:00 436

系统崩溃,大圣归来

走在程序员的路上,久了总会碰到一些系统崩溃的事件。在 2011 年 8 月份某个阴雨连绵的周一,北弗吉尼亚一个 1000 万瓦特的变压器发生爆炸,在整个电网中带来了庞大的突增瞬间电压,对亚马逊位于弗吉尼亚州阿什伯恩(Ashburn)的一个数据中心造成了重创,导致这个数据中心的主电源关闭。亚马逊的杰出工程师詹姆斯·汉密尔顿(James Hamilton)当时正巧开车驶入该数据中心停车场,对...

2015-12-29 21:11:00 515 1

分布式存储概述

分布式存储是相对于单机存储而言,之所以要分布自然是因为互联网时代信息数据大爆炸,单机已经难以满足大型应用的数据存储需求。存储系统的关注点关于存储系统,一般我们关注下面几个方面: 数据分布与负载均衡 数据存储的可靠性与一致性 数据访问性能 系统容错能力 系统扩展能力 在单机存储系统中有一种独立磁盘冗余阵列(RAID,redundant array of i...

2015-12-22 20:44:00 127

MySQL 数据库双向同步复制

MySQL 复制问题的最后一篇,关于双向同步复制架构设计的一些设计要点与制约。问题和制约数据库的双主双写并双向同步场景,主要考虑数据完整性、一致性和避免冲突。对于同一个库,同一张表,同一个记录中的同一字段的两地变更,会引发数据一致性判断冲突,尽可能通过业务场景设计规避。双主双写并同步复制可能引发主键冲突,需避免使用数据库自增类主键方案。另外,双向同步潜在可能引发循环同步的问题,需...

2015-12-22 20:38:00 165

Redis 的性能幻想与残酷现实

2011 年,当初选择 Redis 作为主要的内存数据存储,主要吸引我的是它提供多样的基础数据结构可以很方便的实现业务需求。另一方面又比较担心它的性能是否足以支撑,毕竟当时 Redis 还属于比较新的开源产品。但 Redis 官网宣称其是提供多数据结构的高性能存储,我们对其还是抱有幻想的。幻想要了解 Redis 的性能,我们先看看官方的基准性能测试数据,心里有个底。测试前提...

2015-12-22 20:30:00 134

HDFS MapReduce笔记

hadoop的HDFS hadoop分布式文件系统NameNode :存储元数据,比如(文件名,文件权限) ,负责处理client端发起的请求任务,读写都先访问namenode 元数据保存到内存中,同时落地到磁盘fsimage ,edits记录了对metadata的操作日志保存文件,block,datanode之间的映射关系。block 的位置信息保存到内存里面,重启服务...

2015-12-16 16:36:00 163

深度学习与计算机视觉系列(5)_反向传播与它的直观理解

作者:寒小阳 && 龙心尘 时间:2015年12月。 出处:http://blog.csdn.net/han_xiaoyang/article/details/50321873 声明:版权所有,转载请联系作者并注明出处1. 引言其实一开始要讲这部分内容,我是拒绝的,原因是我觉得有一种写高数课总结的感觉。而一般直观上理解反向传播算法就是求导的一个链式法则而已。但...

2015-12-15 22:55:00 438

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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