- 博客(65)
- 资源 (30)
- 收藏
- 关注

转载 Spring 框架的设计理念与设计模式分析
Spring 作为现在最优秀的框架之一,已被广泛的使用,并且有很多对其分析的文章。本文将从另外一个视角试图剖析出 Spring 框架的作者设计 Spring 框架的骨骼架构的设计理念,有那几个核心组件?为什么需要这些组件?它们又是如何结合在一起构成 Spring 的骨骼架构? Spring 的 AOP 特性又是如何利用这些基础的骨骼架构来工作的? Spring 中又使用了那些设计模式来完成它的
2015-12-16 17:08:02
676
转载 交叉熵代价函数(作用及公式推导)
交叉熵代价函数(Cross-entropy cost function)是用来衡量人工神经网络(ANN)的预测值与实际值的一种方式。与二次代价函数相比,它能更有效地促进ANN的训练。在介绍交叉熵代价函数之前,本文先简要介绍二次代价函数,以及其存在的不足。1. 二次代价函数的不足 ANN的设计目的之一是为了使机器可以像人一样学习知识。人在学习分析新事物时,当
2017-12-22 17:20:45
419
转载 详解softmax函数以及相关求导过程
首发于算法与自然语言处理写文章登录详解softmax函数以及相关求导过程忆臻9 个月前这几天学习了一下softmax激活函数,以及它的梯度求导过程,整理一下便于分享和交流!softmax函数softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类!假设我们有一个数组
2017-12-22 17:14:36
593
转载 50道机器学习相关问题
1.什么是机器学习机器学习是为了应对系统程序设计,属于计算机科学类的学科,它能根据经验进行自动学习和提高。例如:一个由程序操纵的机器人,它能根据从传感器搜集到的数据,完成一系列的任务和工作。它能根据数据自动地学习应用程序。2.机器学习与数据挖掘的区别机器语言是指在没有明确的程序指令的情况下,给予计算机学习能力,使它能自主的学习、设计和扩展相关算法。数据挖掘则是一种从非结构化数据里面提取
2017-12-15 17:16:02
510
转载 【Yoshua Bengio 亲自解答】机器学习 81 个问题及答案(最全收录)
来源:Quora译者:张巨岩王婉婷李宏菲戴秋池这是Quora的最新节目,针对特定话题进行系列的问答。如果你不了解Quora,可以把它看作美国版的知乎,不过里面大咖云集,奥巴马、ElonMusk、BillGates都会在上面回答问题。这是针对特定话题的问答系列,而有什么能比机器学习更适合作为开头的第一个话题呢?机器学习无疑是今天最炙手可热的技术之一,在过去几年间实现了深度学习
2017-12-15 17:05:20
725
转载 【直观梳理深度学习关键概念】优化算法、调参基本思路、正则化方式等
深度学习论文众多,而理解的前提是对基础概念的掌握。本文旨在直观系统地梳理深度学习各领域常见概念与基本思想,使读者对深度学习的重要概念与思想有一直观理解,从而降低后续理解论文及实际应用的难度。引言深度学习目前已成为发展最快、最令人兴奋的机器学习领域之一,许多卓有建树的论文已经发表,而且已有很多高质量的开源深度学习框架可供使用。然而,论文通常非常简明扼要并假设读者已对深度学
2017-12-15 10:44:42
463
原创 关于ElasticSearch 5.X分词器的问题
在近几天的工作中,发现在ES的查询请求分词出现了点问题,ES的索引构建的mapping指定了分词器为ik_smart,但查询请求中没指定分词器,按理应该采用mapping中指定的分词器才对,但实际发现请求在服务器端处理采用的是standard。网上查了各种资料,尝试过各种方式都不正确,后来感觉可能是mapping中字段分词器的设置方式是不是存在问
2017-07-21 19:26:44
2464
转载 Dubbo架构设计详解
Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。关于注册中心、协议支持、服务监控等内容,详见后面描述。
2015-12-07 16:20:25
520
转载 Hydra - 京东开源的基于Dubbo的调用分布跟踪系统
1 概述1.1 研发背景支撑互联网应用的各种服务通常都是用复杂大规模分布式集群来实现的。而这些互联网应用又构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开 发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。因此,就需要一些可以帮助理解系统行为、用于分析性能问题的工 具。hydra分布式跟踪系统就为了解决以上这些问题而设计的。1.2
2015-12-07 10:28:30
1164
转载 Dubbo架构设计详解
Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。关于注册中心、协议支持、服务监控等内容,详见后面描述。
2015-12-07 10:26:02
383
转载 Jetty 的工作原理以及与 Tomcat 的比较
Jetty 应该是目前最活跃也是很有前景的一个 Servlet 引擎。本文将介绍 Jetty 基本架构与基本的工作原理:您将了解到 Jetty 的基本体系结构;Jetty 的启动过程;Jetty 如何接受和处理用户的请求。你还将了解到 AJP 的一些细节:Jetty 如何基于 AJP 工作;以及 Jetty 如何集成到 Jboss;最后我们将比较一下两个 Servlet 引擎:Tomcat 和 J
2015-12-07 10:23:38
409
转载 深入 Lucene 索引机制
Lucene 是一个基于 Java 的全文检索工具包,你可以利用它来为你的应用程序加入索引和检索功能。Lucene 目前是著名的 Apache Jakarta 家族中的一个开源项目,下面我们即将学习 Lucene 的索引机制以及它的索引文件的结构。在这篇文章中,我们首先演示如何使用 Lucene 来索引文档,接着讨论如何提高索引的性能。最后我们来分析 Lucene 的索引文件结构。需要记住
2015-12-02 09:33:22
413
转载 轻量级分布式数据库访问层amoeba,cobarClient使用
最近准备鼓捣一下读写分离,数据shading等这一类型数据scale的东东。因为用的是mysql,双master,master-slave,master-salves-slaves,master-master-slaves-slaves都看了一下,简单的试了一下master-slave,成功OK。但是在应用层次如何来透明的应对和管理这些多个数据源,甚至实现loadblance和HA
2015-12-01 16:49:32
731
转载 采用Atlas+Keepalived实现MySQL读写分离、读负载均衡
采用Atlas+Keepalived实现MySQL读写分离、读负载均衡==========================================================================================一、基础介绍=====================================
2015-12-01 16:47:18
524
转载 mysql中间件研究(Atlas,cobar,TDDL)
mysql中间件研究(Atlas,cobar,TDDL)mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差。下面介绍几款能代替其的mysql开源中间件产品,Atlas,cobar,tddl,让我们看看它们各自有些什么优点和新特性吧。AtlasAtlas是由 Qihoo 360, Web
2015-12-01 16:44:44
314
转载 关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究
本文原文连接: http://blog.youkuaiyun.com/bluishglc/article/details/7612811 ,转载请注明出处!1.XAXA是由X/Open组织提出的分布式事务的规范。XA规范主要定义了(全局)事务管理器(Transaction Manager)和(局部)资源管理器(Resource Manager)之间的接口。XA接口是双向
2015-12-01 16:21:30
494
转载 一致性哈希算法问题
问题描述: 例如手机朋友网有n个服务器,为了方便用户的访问会在服务器上缓存数据,因此用户每次访问的时候最好能保持同一台服务器。已有的做法是根据ServerIPIndex[QQNUM%n]得到请求的服务器,这种方法很方便将用户分到不同的服务器上去。但是如果一台服务器死掉了,那么n就变为了n-1,那么ServerIPIndex[QQNUM%n]与ServerIPIndex[QQNUM%(n-1)]
2015-12-01 16:19:24
399
转载 数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案
数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案作为一种数据存储层面上的水平伸缩解决方案,数据库Sharding技术由来已久,很多海量数据系统在其发展演进的历程中都曾经历过分库分表的Sharding改造阶段。简单地说,Sharding就是将原来单一数据库按照一定的规则进行切分,把数据分散到多台物理机(我们
2015-12-01 15:46:40
462
转载 数据库分库分表(sharding)系列(四) 多数据源的事务处理
数据库分库分表(sharding)系列(四) 多数据源的事务处理系统经sharding改造之后,原来单一的数据库会演变成多个数据库,如何确保多数据源同时操作的原子性和一致性是不得不考虑的一个问题。总体上看,目前对于一个分布式系统的事务处理有三种方式:分布式事务、基于Best Efforts 1PC模式的事务以及事务补偿机制。分布式事务这是最为人们所熟知的多数
2015-12-01 15:44:56
445
转载 数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量
数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量当团队对系统业务和数据库进行了细致的梳理,确定了切分方案后,接下来的问题就是如何去实现切分方案了,目前在sharding方面有不少的开源框架和产品可供参考,同时很多团队也会选择自主开发实现,而不管是选择框架还是自主开发,都会面临一个在哪一层上实现sharding逻辑的问题。
2015-12-01 15:43:26
347
转载 数据库分库分表(sharding)系列(二) 全局主键生成策略
本文将主要介绍一些常见的全局主键生成策略,然后重点介绍flickr使用的一种非常优秀的全局主键生成方案。关于分库分表(sharding)的拆分策略和实施细则。第一部分:一些常见的主键生成策略一旦数据库被切分到多个物理结点上,我们将不能再依赖数据库自身的主键生成机制。一方面,某个分区数据库自生成的ID无法保证在全局上是唯一的;另一方面,应用程序在插入数据之前需
2015-12-01 15:41:07
392
转载 关于垂直切分Vertical Sharding的粒度
垂直切分的粒度指的是在做垂直切分时允许几级的关联表放在一个shard里.这个问题对应用程序和sharding实现有着很大的影响.关联打断地越多,则受影响的join操作越多,应用程序为此做出的妥协就越大,但单表的路由会越简单,与业务的关联性会越小,就越容易使用统一机制处理.在此方向上的极端方案是:打断所有连接,每张表都配有路由规则,可以使用统一机制或框架自动处理.比如amoeba
2015-12-01 15:40:00
306
转载 数据库Sharding的基本思想和切分策略
本文着重介绍sharding的基本思想和理论上的切分策略,关于更加细致的实施策略和参考事例请参考我的另一篇博文:数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示 一、基本思想 Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果
2015-12-01 15:38:31
314
转载 mysql中的SQL优化与执行计划
一,如何判断SQL的执行效率? 通过explain 关键字分析效率低的SQL执行计划。 比如: explain select sum(moneys) from sales a, company b where a.company_id = b.company_id and a.year = 2006; id : 1 select_type: SIMP
2015-12-01 15:32:14
1617
转载 MySQL数据库引擎介绍、区别、创建和性能测试的深入分析
MySQL数据库引擎介绍、区别、创建和性能测试的深入分析数据库引擎介绍MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的。要添加一个新的引擎,就必须重新编译MYSQL。在缺省情况下,MYSQL支持三个引擎:ISAM、MYISAM和HEAP。另外两种类型INNODB和BERKLEY(BDB),也常常可以使用。如果技术高超,还可以使用MySQL+API自
2015-12-01 15:29:39
411
转载 MySQL聚簇索引和非聚簇索引的原理及使用
索引分为聚簇索引和非聚簇索引。以一本英文课本为例,要找第8课,直接翻书,若先翻到第5课,则往后翻,再翻到第10课,则又往前翻。这本书本身就是一个索引,即“聚簇索引”。如果要找"fire”这个单词,会翻到书后面的附录,这个附录是按字母排序的,找到F字母那一块,再找到"fire”,对应的会是它在第几课。这个附录,为“非聚簇索引”。由此可见,聚簇索引,索引的顺序就是数据存放的顺序,所
2015-12-01 15:09:02
11284
1
转载 JavaCore/HeapDump文件分析工具
BM HeapAnalyzer更多信息见官方网站地址:http://www.alphaworks.ibm.com/tech/heapanalyzer 在我们的应用程序发生内存泄露的时候,会生成heapdump文件,文件名字类似于这样:heapdump.20081105.031129.172870.phd,即heapdump. ...phd。表示什么不知道,好像不是时间。heapdump
2015-11-23 20:01:13
735
转载 JVM内存管理
Java不需要开发人员来显式的分配内存和回收内存,而是由JVM来自动管理内存的分配以及回收(又称为垃圾回收、Garbage Collection或GC),这对于开发人员来说确实大大降低了编写程序的难度,但带来的副作用是可能在不知不觉中浪费了很多内存,造成JVM花费很多的时间在进行内存的回收;另外可能会带来的副作用是由于不清楚JVM内存的分配和回收机制,造成内存泄露,最终导致JVM内存不够用。除
2015-11-23 20:00:06
330
转载 JVM调优
JVM调优主要是针对内存管理方面的调优,包括控制各个代的大小,GC策略。由于GC开始垃圾回收时会挂起应用线程,严重影响了性能,调优的目是为了尽量降低GC所导致的应用线程暂停时间、 减少Full GC次数。 代大小调优 最关键参数:-Xms、 -Xmx 、-Xmn 、-XX:SurvivorRatio、-XX:MaxTenuringThreshold
2015-11-23 19:58:58
417
1
转载 Java问题排查常用linux命令
系统配置相关:查看内核/操作系统/CPU信息: uname -a查看操作系统版本: head -1 /etc/issue查看网卡信息:cat /sbin/ifconfig查看cpu配置: cat /proc/cpuinfo查看mem配置:cat /proc/meminfo查看环境变量 资源: env 查看各分区使用情况: df -h查看指定目录的大小: du -
2015-11-23 19:57:38
362
1
转载 Java线上排查总结
线上有一个功能,只要用户一使用马上FGC飚的很高而且一直不能回收内存。利用这个case来总结一下线上如何来排查问题找到代码BUG并修复的。1. Java heap dump日志分析一般分析内存溢出分析哪些应用占用内存比较多情况有用jmap -dump:format=b,file=path pid 默认将堆全部dump下来jmap -dump:live,format=b,
2015-11-23 19:56:10
368
转载 深入理解JDBC的超时设置
恰当的JDBC超时设置能够有效地减少服务失效的时间。本文将对数据库的各种超时设置及其设置方法做介绍。 真实案例:应用服务器在遭到DDos攻击后无法响应 在遭到DDos攻击后,整个服务都垮掉了。由于第四层交换机不堪重负,网络变得无法连接,从而导致业务系统也无法正常运转。安全组很快屏蔽了所有的DDos攻击,并恢复了网络,但业务系统却还是无法工作。 通过分析系统的thread dum
2015-11-23 19:53:46
311
转载 DBCP、C3P0、Proxool 、 BoneCP开源连接池的比较
DBCP、C3P0、Proxool 、 BoneCP等开源数据库连接池基本简介 简介 使用评价 项目主页 DBCPDBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序用使用可以设置最大和最小连接,连接等待时间等,基本功能都有,此连接池的
2015-11-23 19:52:18
348
转载 Java NIO系列教程(九) Java NIO与BIO
当学习了Java NIO和BIO的API后,一个问题马上涌入脑海:我应该何时使用BIO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和BIO的差异、它们的使用场景,以及它们如何影响您的代码设计。Java NIO和IO的主要区别下表总结了Java NIO和IO之间的主要差别,我会更详细地描述表中每部分的差异。IO NIO面
2015-11-23 19:48:01
282
转载 Java NIO系列教程(八) FileChannel
Java NIO中的FileChannel是一个连接到文件的通道。可以通过文件通道读写文件。FileChannel无法设置为非阻塞模式,它总是运行在阻塞模式下。打开FileChannel在使用FileChannel之前,必须先打开它。但是,我们无法直接打开一个FileChannel,需要通过使用一个InputStream、 OutputStream或RandomAc
2015-11-23 19:47:10
265
转载 Java NIO系列教程(七) DatagramChannel
Java NIO中的DatagramChannel是一个能收发UDP包的通道。因为UDP是无连接的网络协议,所以不能像其它通道那样读取和写入。它发送和接收的是数据包。打开 DatagramChannel下面是 DatagramChannel 的打开方式:1DatagramChannel channel = DatagramChannel.op
2015-11-23 19:46:25
308
转载 Java NIO系列教程(六) ServerSocketChannel
Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样。ServerSocketChannel类在 java.nio.channels包中。这里有个例子:01ServerSocketChannel serverSocketChannel = ServerSock
2015-11-23 19:45:49
264
转载 Java NIO系列教程(五) SocketChannel
Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道。可以通过以下2种方式创建SocketChannel:打开一个SocketChannel并连接到互联网上的某台服务器。一个新连接到达ServerSocketChannel时,会创建一个SocketChannel。打开 SocketChannel下面是SocketChannel的打开方式:
2015-11-23 19:45:06
329
转载 Java NIO系列教程(四) Selector
Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个channel,从而管理多个网络连接。下面是本文所涉及到的主题列表:为什么使用Selector?Selector的创建向Selector注册通道SelectionKey通过Selector选择通道wakeUp()close()完整
2015-11-23 19:44:19
282
K-Means图像分割算法实现
2009-12-27
中国移动TD-SCDMA+系统技术培训手册
2009-11-22
ARM应用系统开发详解
2009-09-16
Opengl Shading Language 2nd
2009-09-16
OpenGl ES2 Programing Guild
2009-09-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人