自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lu‘s blog

以结果为导向,以技术为驱动。

  • 博客(54)
  • 收藏
  • 关注

原创 互联网常用设计模式——通往架构师的第一步

什么是设计模式?Christopher Alexander 说过:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。简单来说就是:设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解并且保证代码可靠...

2018-11-24 15:16:22 605

原创 数据结构与算法之二叉树

       前面我们介绍数组的数据结构,我们知道对于有序数组,查找很快,并介绍可以通过二分法查找,但是想要在有序数组中插入一个数据项,就必须先找到插入数据项的位置,然后将所有插入位置后面的数据项全部向后移动一位,来给新数据腾出空间,平均来讲要移动N/2次,这是很费时的。同理,删除数据也是。  然后我们介绍了另外一种数据结构——链表,链表的插入和删除很快,我们只需要改变一些引用值就行了,但是查...

2018-11-19 17:47:40 327

转载 深入理解Java中的volatile关键字

出处: <http://www.cnblogs.com/chengxiao/>内存可见性  volatile是Java提供的一种轻量级的同步机制,在并发编程中,它也扮演着比较重要的角色。同synchronized相比(synchronized通常称为重量级锁),volatile更轻量级,相比使用synchronized所带来的庞大开销,倘若能恰当的合理的使用volatile,自...

2018-11-19 17:24:24 350

原创 工作两年的程序员们应该懂的Java虚拟机工作原理

首先我想从宏观上介绍一下Java虚拟机的工作原理。从最初的我们编写的Java源文件(.java文件)是如何一步步执行的,如下图所示,首先Java源文件经过前端编译器(javac或ECJ)将.java文件编译为Java字节码文件,然后JRE加载Java字节码文件,载入系统分配给JVM的内存区,然后执行引擎解释或编译类文件,再由即时编译器将字节码转化为机器码。主要介绍下图中的类加载器和运行时数据区两个...

2018-11-19 16:58:23 530

原创 Spring 、SpringMVC 、Struts2之间的区别

一、Spring与SpringMVC的区别:  spring是一个开源框架,是为了解决企业应用程序开发,功能如下:  功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能  范围:任何Java应用   Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。   1、轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可...

2018-11-19 16:40:11 238

转载 ConcurrentHashMap实现原理及源码分析

本文出处: <http://www.cnblogs.com/chengxiao/>ConcurrentHashMap是Java并发包中提供的一个线程安全且高效的HashMap实现(若对HashMap的实现原理还不甚了解,可参考我的另一篇文章HashMap实现原理及源码分析),ConcurrentHashMap在并发编程的场景中使用频率非常之高,本文就来分析下ConcurrentHa...

2018-11-19 16:27:41 174

原创 看十年编程经验大神详解Spring IOC

      学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IOC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及谈谈我对Spring Ioc的理解。一、分享Iteye的开涛对Ioc的精彩讲解首先要分享的是Iteye的开涛这位技术牛人对...

2018-11-19 16:15:20 220

转载 怎么更好地理解Spring AOP

一.前言    在以前的项目中,很少去关注spring aop的具体实现与理论,只是简单了解了一下什么是aop具体怎么用,看到了一篇博文写得还不错,就转载来学习一下,博文地址:http://www.cnblogs.com/xrq730/p/4919025.htmlAOPAOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Ori...

2018-11-19 16:04:42 196

原创 MySQL知识总结

本文是之前我学习MySQL笔记整合的。这篇文章理论偏多,对于其中比较比较难理解知识点写些Demo,权当个人理解。这个算是概要总结版,适合学习了mysql最后要点总结或者有其他数据库基础的看,不然一时间内容太多。一、SQL基础SQL语句分类1.DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象。常用...

2018-11-19 15:52:53 418

原创 Spring Bean详细讲解 什么是Bean?

什么是Bean?Spring Bean是被实例的,组装的及被Spring 容器管理的Java对象。Spring 容器会自动完成@bean对象的实例化。创建应用对象之间的协作关系的行为称为:装配(wiring),这就是依赖注入的本质。Spring 三种配置方案1.在XML中进行显示配置2.使用Java代码进行显示配置3.隐式的bean发现机制和自动装配推荐方式: 3>2...

2018-11-19 15:45:37 98748 7

原创 Web Api 基于Zookeeper的服务注册与发现

差异基于Nginx的服务提供和消费    基于zookeeper的服务注册和发现  zk的负载均衡是可以调控,nginx只是能调权重,其他需要可控的都需要自己写插件;但是nginx的吞吐量比zk大很多,可以根据业务选择用哪种方式。服务端注册1.创建WEB API 程序,使用NuGet下载ZookeeperNet安装包         2.WEB API ...

2018-11-18 17:42:51 596

转载 Java NIO 核心组件学习笔记

背景知识同步、异步、阻塞、非阻塞首先,这几个概念非常容易搞混淆,但NIO中又有涉及,所以总结一下。同步:API调用返回时调用者就知道操作的结果如何了(实际读取/写入了多少字节)。 异步:相对于同步,API调用返回时调用者不知道操作的结果,后面才会回调通知结果。 阻塞:当无数据可读,或者不能写入所有数据时,挂起当前线程等待。 非阻塞:读取时,可以读多少数据就读多少然后返回,写入...

2018-11-18 15:23:29 132

原创 浏览器缓存是什么?它的机制又是什么?

对于浏览器缓存,相信很多开发者对它真的是又爱又恨。一方面极大地提升了用户体验,而另一方面有时会因为读取了缓存而展示了“错误”的东西,而在开发过程中千方百计地想把缓存禁掉。那么浏览器缓存究竟是个什么样的神奇玩意呢?什么是浏览器缓存:简单来说,浏览器缓存就是把一个已经请求过的Web资源(如html页面,图片,js,数据等)拷贝一份副本储存在浏览器中。缓存会根据进来的请求保存输出内容的副本。当下...

2018-11-16 17:45:28 8774

原创 程序员,你怎么对待常见的数据一致性问题?

现象应用系统中的关键服务绝大部分都会是对数据库的依赖。 当多个进程同时操作同一个数据,会产生资源争抢,数据一致性的问题。如果只有一个数据库服务器,数据一致性问题也就不存在了。可是,随着系统访问量、数据量的不断增长,数据库出现多个服务器,又出现缓存服务,又要拆分数据库,还要分拆到不同的子应用等等。这样一来,数据一致性问题就会变得越来越突出。 举个栗子我们来看这样...

2018-11-16 14:32:57 870

原创 【经典揭秘】集中式架构怎么升级为分布式架构?

前言由于历史原因,集中式架构多用于传统银行、电信等行业。主机资源集中在大型主机或小型机上。集中式架构下,包括操作系统,中间件,数据库等“基础软件” 均为闭源商用系统。集中式架构的典型案例是 IOE(IBM, Oracle,EMC)提供的计算设备、数据库技术和存储设备共同组成的系统。近年来,分布式架构在 Google、 Amazon、Facebook、阿里巴巴、腾讯等互联网公司广泛应用基础上...

2018-11-15 17:39:56 456

原创 大型网站架构之分布式消息队列——RabbitMQ

Message Broker与AMQP简介Message Broker是一种消息验证、传输、路由的架构模式,其设计目标主要应用于下面这些场景:消息路由到一个或多个目的地 消息转化为其他的表现方式 执行消息的聚集、消息的分解,并将结果发送到他们的目的地,然后重新组合相应返回给消息用户 调用Web服务来检索数据 响应事件或错误 使用发布-订阅模式来提供内容或基于主题的消息路由AMQ...

2018-11-15 16:45:13 396

原创 传统行业程序员的深度焦虑?——快来互联网行业吧!

前言不少在传统行业摸爬滚打的程序员越来越焦虑了,有些甚至睡不着觉。为什么?传统行业的程序员们每天进行的都是业务代码的编写,接触不到更新更好的技术;公司的效益并不好,如未达到目标收益,只能进行“瘦身”,技术人员也很恐慌;看到BAT等互联网企业飞速发展,程序员的待遇也水涨船高,难免眼红,但是如何转型却一头雾水。下面就几个方面和大家谈谈传统行业的技术人员如何转型互联网。传统行业和互联网行...

2018-11-14 18:05:08 2447

原创 明天面试?吓得我赶紧手写了一个Spring

引言几乎每个面试的程序员都会碰到Spring相关的面试问题,或浅或深。你都是如何回答面试官的问题的?——我不知道,我一般会通过手写一个Spring来加深自己的印象。目标人见人爱的Spring已然不仅仅只是一个框架了。如今,Spring已然成为了一个生态。但深入了解Spring的却寥寥无几。这里,我带大家一起来看看,我是如何手写Spring的。我将结合对Spring十多年的研究经验,用不...

2018-10-29 18:06:31 166

原创 程序员只钻研技术其实是很蠢的

前言程序员一门心思钻研技术其实是一件很蠢的事情。因为大部分人并不是那1%的天才,也完全没办法做到十年如一日地钻研技术,至于光靠兴趣驱动,未免太过理想。正文那么,如果我们没有足够的信念和能力可以走出一条自己的技术路,那么总有一天会遇到真正的“35岁中年危机”,如果你等到30岁才意识到问题,或许已经为时已晚。为了避免“脱发”“加班”和“焦虑”,以下是我给大家总结的几条建议:...

2018-10-29 15:58:31 600

原创 分布式下的远程通信技术(RPC)的一些理解

前言为什么需要RPC,而不是简单的HTTP接口?刚开始还是菜鸟的时候,时常把RPC和HTTP搞混淆,本身概念还没理解清楚,心里就浮躁的不行,导致闹出了不少笑话。什么是RPC?RPC(Remote Promote Call) 一种进程间通信方式。允许像调用本地服务一样调用远程服务。RPC框架的主要目标就是让远程服务调用更简单、透明。RPC框架负责屏蔽底层的传输方式(TCP或者...

2018-10-26 16:35:01 2863

转载 啥叫K8s?啥是k8s?

•Kubernetes介绍1.背景介绍  云计算飞速发展    - IaaS    - PaaS    - SaaS  Docker技术突飞猛进    - 一次构建,到处运行    - 容器的快速轻量    - 完整的生态环境2.什么是kubernetes  首先,他是一个全新的基于容器技术的分布式架构领先方案。Kubernetes(k8s)是Googl...

2018-10-25 16:59:24 189671 16

原创 为什么你要使用这么强大的分布式消息中间件——kafka

为什么是kafka?上面我们知道我们有必要在数据处理系统中使用一个消息系统,但是我们为什么一定要选kafka呢?现在的消息系统可不只有kafka。话说阿里中间件团队和LinkedIn团队都做了一个Kafka、RabbitMQ、RocketMQ的三者对比。实际结果可以参考以下两篇博文:阿里测试:http://jm.taobao.org/2016/04/01/kafka-vs-rabbit...

2018-10-25 14:40:16 2810

原创 【1024程序员节】话说,你学编程的初衷是什么?

前言今天是1024程序员节,中国500w+的程序员今天可以享受一天专属的节日,网络上也有各种庆祝方式:一些公司祭出了“程序员鼓励师” 一些公司给程序员放了个“假”还有公司出了张“海报”都是玩的很嗨,套路一波接一波,看来在1024这天程序员收到的“关怀”不可谓不深啊!  初衷 在这个重要的节日,不知道你是否还记得学编程的...

2018-10-24 14:41:28 362

原创 烂大街的Spring AOP的工作原理你真的了解吗?

前言大家应该知道AOP编程首先要选择它感兴趣的连接点----即切入点(Point cut),那么,AOP能对切入点做什么样的编程呢? 我们先将代理模式下的某个连接点细化,你会看到如下这个示意图所表示的过程:为了降低我们对Spring的AOP的理解难度,我在这里将代理角色的职能进行了简化,方便大家理解。(注意:真实的Spring AOP的proxy角色扮演的只能比这复杂的多,这里只是简化...

2018-10-23 17:27:35 967

原创 掌握Spring中的beanfactory与factorybean有什么好处?

前言  如果说Spring最核心的东西是什么,那就非Beans组件莫属了,Bean对于Spring的意义就象OOP对于Java的意义一样。  今天要讲的是Spring中的 BeanFactory与FactoryBean的区别以及具体使用。1. BeanFactory  BeanFactory,以Factory结尾,表示它是一个工厂类(接口),用于管理Bean的一个工厂。在Sprin...

2018-10-22 15:08:06 3565 1

原创 【十年磨一剑】我们能从阿里架构师的身上学到什么?

前言做技术的,一定不能放弃技术。在精进技术的同时完善其他方面的能力,十年如一日。不忘初心,方得始终。正文本文是看到阿里巴巴系统架构师黄勇的采访记录有感而发,如有侵权,请联系我。下面就一起来看看阿里架构师的十年架构路。和大家介绍下我目前所从事的工作:我目前从事分布式服务架构的设计与开发工作,在阿里的大数据平台上进行应用程序开发。我们整个系统架构采用了“前后端分离”的思想,...

2018-10-20 18:01:41 511 1

原创 mybatis自动生成代码

前言记得多年前用ibatis的时候,写配置文件还是蛮费劲的,而且容易出问题,这两天看mybatis,代码都可以自动生成了。利用mybatis-generator插件,可以自动生成对应的model、dao和mapper(复杂sql手动编写),很大程度上减少了手动编码的时间,而且还能一定程度上避免配置错误问题。下面就Maven插件的方式(还有命令行、eclipse插件两种实现方式)做详细说明,ma...

2018-10-20 15:02:17 439

原创 Spring动态注册多数据源

前言最近在做SaaS应用,数据库采用了单实例多schema的架构,每个租户有一个独立的schema,同时整个数据源有一个共享的schema,因此需要解决动态增删、切换数据源的问题。在网上搜了很多文章后,很多都是讲主从数据源配置,或都是在应用启动前已经确定好数据源配置的,甚少讲在不停机的情况如何动态加载数据源,所以写下这篇文章,以供参考。使用到的技术Java8 Spring + S...

2018-10-20 14:45:02 757

原创 Redis 事务与过期时间详细介绍

Redis 事务与过期时间详细介绍一、Redis事务:Redis中支持事务,事务即为当我们需要执行几条命令时,要么这几条命令都不执行,要么都执行:1、开始事务写入: 1 multi 2、然后写入命令,注意写完事务要执行的每条命令之后回车即可,命令会自动入队:    1 2 lpush  art:1  h...

2018-10-20 14:19:15 441

原创 【你知道吗】如何基于Redis实现分布式锁?

概述目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需要牺...

2018-10-19 16:03:26 136

原创 同是ZooKeeper,你和架构师的理解差在哪里?

前言提到ZooKeeper,相信大家都不会陌生。Dubbo,Kafka,Hadoop等等项目里都能看到它的影子。但是你真的了解 ZooKeeper 吗?如果面试官让你给他讲讲 ZooKeeper 是个什么东西,你能回答到什么地步呢?而且,同样是ZooKeeper,一线架构师和你的理解又有哪些不同呢?如何从一个问题及思考方式了解架构的本质? 如何剖析ZooKeeper为什么这么设计...

2018-10-18 21:31:44 238

原创 看年薪50W的架构师如何手写一个SpringMVC框架(文末附视频)

前言做 Java Web 开发的你,一定听说过SpringMVC的大名,作为现在运用最广泛的Java框架,它到目前为止依然保持着强大的活力和广泛的用户群。本文介绍如何用eclipse一步一步搭建SpringMVC的最小系统,所谓最小系统,就是足以使项目在SpringMVC框架下成功跑起来,并且能够做一些简单的事情(比如访问页面)的系统。在开始之前,想提几个问题让大家思考一下:为什么...

2018-10-18 17:53:21 742 1

原创 【干货】JDK动态代理的实现原理以及如何手写一个JDK动态代理

动态代理代理模式是设计模式中非常重要的一种类型,而设计模式又是编程中非常重要的知识点,特别是在业务系统的重构中,更是有举足轻重的地位。代理模式从类型上来说,可以分为静态代理和动态代理两种类型。在解释动态代理之前我们先理解一下静态代理:首先你要明白静态代理的作用我们有一个字体提供类,有多种实现(从磁盘,从网络,从系统)public interface FontProvider ...

2018-10-18 16:49:48 163

原创 (揭秘)为什么dubbo火的一塌糊涂?

SOA与服务治理SOA(面向服务的体系结构)概念由来已久,在10多年前便开始进入到我们广大软件开发者的视线中。SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型、Web Service技术之后的自然延伸。服务治理,也称为SOA治理,是指用来管理SOA的采用和实现的过程。以下是在2006年时IBM对于服务治理要点...

2018-10-18 14:01:54 1017

原创 【阿里技术专家的时间管理法】想提升工作效率,就別再做这七件事

前言       在软件开发行业中,我听到过不少的程序员都有类似的抱怨:哎,我好忙啊,总是有各种各样的事情找上门来,连安安静静写代码的时间都没有!       更加关键的是,这些程序员们看似在做着别人双倍的工作,却领着跟别人一样甚至更低的工资,心里不爽的同时,是否认真思考过更深层次的原因呢?  一位创业家可以不眠不休一天工作24 小时,整整一周不休假。 然而,时间有限,且竞争者却永...

2018-10-16 17:30:59 300

原创 程序员怎么长久保持新鲜感?

日复一日很容易厌倦编写代码。特别是当您不是从头开始构建新应用程序而是编写错误修复和次要增强时。开发人员应该挑战自我并建立能够保持工作积极性并激励他们每天早起的技能。以下是您应该继续享受程序员生涯的六项技能。1.建立技术技能每个开发人员职业生涯的核心都必须是坚如磐石的技术技能。为了获得新的机会,他们也必须是当前的技术技能。通常来说,你不会在工作中接受这种培训 - 你更有可能学习一个你已经知道的新的...

2018-10-15 16:26:13 1114 1

翻译 将新主要功能部署到生产时要考虑的5件事情

前言在较短的时间内完成从开发人员的机器到生产的功能的代码,是高效的技术/工程团队的质量。使用capistrano或fabric等工具进行自动部署使得部署成为一项简单的任务,而不是可怕的操作,在这种情况下,您错过了一步,然后搞砸了生产。这些天Docker和Kubernetes使部署变得轻而易举。本文将重点介绍在部署涉及一些重要代码和数据库更改的新主要功能时要考虑的事项。什么是主要特征...

2018-10-15 15:49:36 516

转载 这几个SpringBoot 实用的小技巧你了解吗?

前言最近分享的一些源码、框架设计的东西。我发现大家热情不是特别高,想想大多数应该还是正儿八经写代码的居多;这次就分享一点接地气的: SpringBoot 使用中的一些小技巧。算不上多高大上的东西,但都还挺有用。屏蔽外部依赖第一个是屏蔽外部依赖,什么意思呢?比如大家日常开发时候有没有这样的烦恼:项目是基于 SpringCloud 或者是 dubbo 这样的分布式服务,你需要依...

2018-10-15 13:54:42 717

转载 Dubbo入门——搭建一个最简单的Demo框架

Dubbo背景和简介Dubbo开始于电商系统,因此在这里先从电商系统的演变讲起。 单一应用框架(ORM)  当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一起,以减少部署节点和成本。  缺点:单一的系统架构,使得在开发过程中,占用的资源越来越多,而且随着流量的增加越来越难以维护  垂直应用框架(MVC)  垂直应用架构解决了单一应用架构所面临的扩容问题,流...

2018-10-14 21:45:50 164

转载 微服务中 Dubbo 和 Spring Cloud 架构技术路线对比

本文主要围绕微服务的技术选型、通讯协议、服务依赖模式、开始模式、运行模式等几方面来综合比较Dubbo和Spring Cloud 这2种开发框架。架构师可以根据公司的技术实力并结合项目的特点来选择某个合适的微服务架构平台,以此稳妥地实施项目的微服务化改造或开发进程。微服务架构是互联网很热门的话题,是互联网技术发展的必然结果。它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,...

2018-10-14 21:42:04 622

空空如也

空空如也

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

TA关注的人

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