- 博客(17)
- 问答 (1)
- 收藏
- 关注
原创 架构闲聊之:伪架构过度设计有多可怕
摘要:仅个人吐槽的随笔,做一些散发性的思考,也欢迎读者来辩驳纠正自己错误的观点。定位“不想做老板的员工不是好员工” ,这句话对于普通人来说未免有点眼界过高。那我们降低自己的期望来聊聊,”不想做架构的程序员不是好程序员”。对于每日忙着交付的码农来说,能闲下来有点私人时间就很不容易了,谈什么架构或者设计,那是有理想有抱负人干的事情,恨不得别人把架构搭建完美,照着模版可以快速把任务完成,等哪天心情好了翻
2017-05-29 23:02:46 4092
原创 Redis 集群高可用最佳实践
Redis作为主流nosql,在高并发使用场景中都会涉及到集群和高可用的问题,有几种持久化?场景下的缓存策略怎么选?高可用方案怎么实现?集群有哪几种?跟着这几个问题,结合一些自己使用的经验来简单分析一下。一.有哪些持久化Redis有两种持久化的方式:`RDB` 和 `AOF`RDB - 快照通过预设频率write on copy来持久化数据(所以内存不宜设置超过物理内存的50%,否则会内存不足
2017-05-29 14:36:31 487
转载 [转] MySQL死锁问题分析及解决方法实例详解
转自:http://www.phpstudy.net/b.php/71480.htmlMySQL死锁问题是很多程序员在项目开发中常遇到的问题,现就MySQL死锁及解决方法详解如下:1、MySQL常用存储引擎的锁机制MyISAM和MEMORY采用表级锁(table-level locking)BDB采用页面锁(page-level locking)或表级锁,默认为页面锁InnoDB支持行级锁(row-
2017-05-31 22:48:51 390
转载 [转] 分布式事务
转自:http://www.cnblogs.com/zengkefu/p/5742617.html1、什么是分布式事务 分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全
2017-05-30 22:39:38 250
原创 设计套路:Mysql主键的选择
建表在日常开发中必不可少,但设计出来的表却千差万别,前期表单设计得不好,对后期维护和优化都会产生非常大的阻力,那么我们需要如何优雅地创建我们的主键呢?下面我们慢慢道来Mysql的数据结构Mysql是由B+树构成,搞清楚下面两个问题,就知道为什么用B+树了。1.B+Tree是为磁盘或者其他直接存取辅助设备而设计的一种平衡二叉树?答:数据库系统的设计者巧妙利用了磁盘预读原理,将一个节点的大小设为等于一
2017-05-29 14:44:58 3000
原创 JAVA 常用集合 数据结构
对于常用的集合大家都不陌生,但是深入到内部原理可能都是一知半解,通过阅读源码理解如下。ArrayListArrayList内部就是一个默认大小为10的动态对象数组容器,每当add一个新数据的时候,如果大于原来的容器大小,则会通过Arrays.copyOf把容器大小增加到原来的1.5倍,以此类推。当可以预知数据大小,可以通过initialCapacity来默认设置动态数据的大小,减少扩容带来的资源消耗
2017-05-29 14:35:16 343
原创 Kafka 简记
引言接触一门新的开源项目,最关键就是了解其特性和理解中间的设计原理。但在面对庞大的设计官档或者源码的并且又没人指导的时候,总是会让人望而却步,加之网上资料太过冗长。结合翻阅的资料和查看官档后进行了一些简单介绍和总结,只针对Kafka 0.9.0.1版本。原理Kakfa之所以快,是因为它基于文件系统,通过page cache实现了io顺序读写达到高速吞吐的性能。kafka通过os缓存...
2016-10-29 01:17:33 147
原创 Spring 注解配置解析
非Web项目:直接加载Spring内容需要借助ClassPathXmlApplicationContextClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("application.xml");context.start(); Web项目:因为Tomcat等容器会加载we...
2015-07-09 00:48:39 97
原创 JAVA 排序算法(快速、冒泡)
快速排序:public static void quiteSort(int[] o, int low, int hight) { if (low < hight) { int povitePosition = adjust(o, low, hight); quiteSort(o, low, povitePosition - 1); quiteSort(o...
2015-06-01 15:36:02 113
原创 JAVA 二叉树算法 (遍历、深度、汇总求和)
二叉树构造类:public class BinaryTree { int data; // 根节点数据 BinaryTree left; // 左子树 BinaryTree right; // 右子树 public BinaryTree(int data) // 实例化二叉树类 { this.data = data; left = null; ...
2015-05-26 12:00:22 584
原创 JAVA 常用集合内部机制原理
对于常用的集合大家都不陌生,但是深入到内部原理可能都是一知半解,通过阅读源码理解如下。 ArrayList:ArrayList内部就是一个默认大小为10的动态对象数组容器,每当add一个新数据的时候,如果大于原来的容器大小,则会通过Arrays.copyOf把容器大小增加到原来的1.5倍,以此类推。当可以预知数据大小,可以通过initialCapacity来默认设置动态数据的大小,...
2015-05-20 15:25:32 278
原创 JAVA GC 机制详解
最近整理GC相关原理,发现各种文章都太乱,于是整理一份自己看得懂,不废话,具体如下。 GC主要用于管理JVM的堆区,所以先来介绍一下JVM的内存分配。 1、程序计数器(Program Conuter Register) 程序计数器是一块较小的内存空间,它是当前线程执行字节码的行号指示器,字节码解释工作器就是通过改变这个计数器的值来选取下一条需要执行的指令。它...
2015-04-18 22:48:51 151
原创 【转】生产者/消费者问题的多种Java实现方式
生产者消费者问题是研究多线程程序时绕不开的经典问题之一,它描述是有一块缓冲区作为仓库,生产者可以将产品放入仓库,消费者则可以从仓库中取走产品。解决生产者/消费者问题的方法可分为两类:(1)采用某种机制保护生产者和消费者之间的同步;(2)在生产者和消费者之间建立一个管道。第一种方式有较高的效率,并且易于实现,代码的可控制性较好,属于常用的模式。第二种管道缓冲区不易控制,被传输数据对象不易于封装等...
2015-04-17 16:30:45 95
原创 MySQl 索引分析
前序: 索引有多种类型,其中包括主键索引、唯一索引、B+Tree索引(聚集索引和非聚集索引)、哈希索引等等,下面主要深入了解一下B+Tree索引。 B+Tree介绍MySQL是由B+Tree构成的,下面先来介绍一下什么是B+Tree。 ①B+Tree是为磁盘或者其他直接存取辅助设备而设计的一种平衡二叉树。(这句话怎么理解?)答:数据库系统的设计者巧妙利用了磁盘预读原...
2015-04-16 11:33:01 141
原创 MyISAM 和 InnoDB 区别
1、MyISAM不支持事务,InnoDB是事务类型的存储引擎2、MyISAM只支持表级锁,而InnoDB支持行级锁和表级锁默认为行级锁MyIsam -> 表锁对于write,如果表上没有锁,则在上面绑定一个写锁,否则丢到写锁队列中。对于read,如果表上没有锁,则在上面绑定一个读锁,否则丢到读锁队列中。 当一个锁被释放的时候,表会先被写锁队列的线程获得,然后才是...
2015-04-14 22:10:03 114
转载 MyISAM 和 InnoDB 区别
1、MyISAM不支持事务,InnoDB是事务类型的存储引擎2、MyISAM只支持表级锁,而InnoDB支持行级锁和表级锁默认为行级锁MyIsam -> 表锁对于write,如果表上没有锁,则在上面绑定一个写锁,否则丢到写锁队列中。对于read,如果表上没有锁,则在上面绑定一个读锁,否则丢到读锁队列中。 当一个锁被释放的时候,表会先被写锁队列的线程获得,然后才是读锁队列,
2015-04-14 12:06:19 299
空空如也
SpringCloud config 注册服务后client取值问题
2016-12-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人