关闭

Spring-cache的抽象

背景前面已经分析了SpringBoot的一套starter和autoconfigure 的机制,具体参考:http://blog.csdn.net/u010853261/article/details/77961716 这篇博客。其实对于SpringBoot的starter机制,其实就是依据SpringBoot的约定大于配置的思想,启动SpringBoot时候,根据依赖的starter,就已经自动装...
阅读(19) 评论(0)

【大型分布式网站架构设计与实践】-系统稳定性

这部分主要涉及的内容: 在线日志分析 2.集群监控 流量控制 性能优化 Java应用故障的排查 1. 在线日志分析主要是cat、grep、less、wc、uniq等命令, 以及awk、shell脚本。2. 集群监控成熟稳定的系统一般都要对集群运行的机器哥哥指标进行收集,如系统的load、CPU利用率、IO繁忙程度、网络traffic、内存利用率、应用心跳。监控指标(...
阅读(41) 评论(0)

Spring的classpath和classpath*的区别

这一点很容易混淆,这里做一个记录: 使用classpath作为前缀: 比如当我使用 “classpath:mybean.xml” 表示在classpathz中装载资源mybean.xml. 使用classpath*:前缀: 比如使用”classpath*:mybatis/*mapper.xml” 会在classpathz中装载所有符合正则通配符的资源文件。...
阅读(46) 评论(0)

Spring的bean的生命周期

接触Spring时间越久,越觉得其设计思想对我们开发的影响之深,最近在开发项目时,组里一个师兄的项目设计就和Spring的bean生命周期设计有很多不谋而合之处,接着对项目理解,回顾了一下Spring的bean的生命周期。本文基于ApplicationContext中的bean的生命周期为例。生命周期流程图Spring bean的生命周期从创建Spring容器开始到Spring的容器销毁bean。最...
阅读(48) 评论(0)

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 引发的血案

故事背景今天在跑项目(SpringBoot+mybatis)时,当通过service调用DAO时,系统抛出了异常: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 很奇怪的异常,异常堆栈也没有关键的信息。从这句话大概的分析可以知道原因是:mybatis的Mapper接口不能够和XML映...
阅读(55) 评论(0)

Spring事务管理-使用基础

Spring提供的事物管理有两种: 编程式事物(使用TransactionTemplate,粒度控制在代码块,手动提交) 声明式事务(XML、注解, 粒度只能控制在public方法) 事务管理是基于数据源的,也就是说mybatis引用的数据源必须和DataSourceTransactionManager引用的数据源一致。这样事务管理才能生效。 Spring 事务特性。Spring所有的事务管理策略...
阅读(66) 评论(0)

SpringBoot-创建自己的starter和autoconfiguration

这篇文章主要是告诉我们怎么创建自己的SpringBoot autoconfiguration Auto-configuration classes能被绑定在一个外部jar包并且能被Spring Boot加载。每一个Auto-configuration能够被关联到一个starter,创建步骤(1)实现XxxxxxAutoConfiguration.class类,并加上@Conditional限制条件(...
阅读(51) 评论(0)

UML图中的依赖、关联、继承、实现、聚合、组合关系的学习

我们在看源码和分析源码时经常会碰到各种类之间的依赖关系,当依赖比较复杂时,这时候通过UML图能够简单明了的分析各个类和接口之间的关系,下面就UML图中最常见的6类关系做一个总结: 1. 依赖关系依赖关系:假设A类的变化引起了B类的变化,则说明B类依赖于A类。在大多数情况下依赖关系体现在A类的方法使用B类的对象作为参数。依赖关系UML图实例:在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依...
阅读(51) 评论(0)

Spring-bean的循环依赖以及解决方式

本文主要是分析Spring bean的循环依赖,以及Spring的解决方式。 通过这种解决方式,我们可以应用在我们实际开发项目中。 什么是循环依赖? 怎么检测循环依赖 Spring怎么解决循环依赖 Spring对于循环依赖无法解决的场景 Spring解决循环依赖的方式我们能够学到什么? 1. 什么是循环依赖?循环依赖其实就是循环引用,也就是两个或则两个以上的be...
阅读(65) 评论(0)

【SpringBoot】常用注解

@EnableAutoConfiguration启动自动装载:使用了这个注解之后,所有引入的jar的starters都会被自动注入。这个类的设计就是为starter工作的。@RestController这个注解专门用于写RESTful的接口的,里面集成了@Controller和@ResponseBody注解。 @ResponseBody 这个注解会自动利用默认的Jackson将return的对象序...
阅读(75) 评论(0)

【一致性协议算法】2PC和3PC

分布式一致性2PC和3PC 2PC-两阶段提交协议强一致性算法 阶段一提交事务请求投票阶段 阶段二执行事务提交执行阶段 执行事务提交投票通过 中断事务 优缺点 3PC-三阶段提交协议 阶段一CanCommit判断各个参与者是否是alive的 阶段二PreCommit 执行事务预提交阶段一通过 中断事务阶段一不通过 阶段三Do Commit提交事务 执行事务提交阶段二通过 中断事务 Attention...
阅读(54) 评论(0)

【Spring】普通bean、FactoryBean、BeanFactory的区别与联系

在Spring中这三点比较容易混淆:一. FactoryBean、BeanFactory的区别其实这两点没有什么联系,只是命名上比较相似,所以常常被拿出来比较。BeanFactoryBeanFactory是IOC最基本的容器,负责生产和管理bean,它为其他具体的IOC容器实现提供了最基本的规范,例如DefaultListableBeanFactory, XmlBeanFactory, Applic...
阅读(245) 评论(0)

【技术分享】-Spring的IOC

Spring的IOC一. 什么是控制反转,为什么叫控制反转 控制反转:就是把原先我们代码里面需要自己手动实现的对象创建、依赖的代码,反转给容器来帮忙实现。 IOC的思想是:Spring容器来实现这些相互依赖对象的创建、协调工作。对象只需要关心业务逻辑本身就可以了。从这方面来说,对象如何得到他的协作对象的责任被反转了(IOC、DI)。 二. IOC依赖注入的方式有哪些?主要有三种注入方式...
阅读(462) 评论(0)

Zookeeper 集群为什么是高可用的?

我们通常部署zookeeper集群来实现高可用性,那么zookeeper是如何实现高可用性的呢?集群组成要搭建一个高可用的 ZooKeeper 集群,我们首先需要确定好集群的规模。关于 ZooKeeper 集群的服务器组成,相信很多对 ZooKeeper 了解但是理解不够深入的读者,都存在或曾经存在过这样一个错误的认识:为了使得 ZooKeeper 集群能够顺利地选举出 Leader,必须将 Zoo...
阅读(1161) 评论(0)

MySQL远程连接Host 'XXX' is not allowed to connect to this MySQL server 解决方案

进入MySQL终端: GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘password’ WITH GRANT OPTION; 是哪个面就是用于所有IP,以root用户, 密码是password 登录连接。然后刷新: flush privileges;...
阅读(655) 评论(0)

zookeeper 实现分布式队列

zookeeper是一种高性能,可扩展的服务。其本身提供了一致性保证,特点如下:(1)顺序一致性:客户端的更新顺序与它们被发送的顺序一致。(2)原子性:更新操作要么成功,要么失败,没有第三种结果。(3)单系统镜像:无论客户端连接到哪一个服务器,他都将看到相同的zookeeper视图。(4)可靠性:一旦一个更新操作被应用,那么在客户端再次更新之前,其值不会再改变。zookeeper实现分布式队列基于...
阅读(485) 评论(0)

zookeeper的安装与JavaAPI的使用

这一篇主要是介绍 zookeeper 开发环境的搭建以及客户端Java API的使用 1. zookeeper开发环境搭建(1)首先要去官网下载安装包, 下面给出传送门: http://mirror.bit.edu.cn/apache/zookeeper/stable/下载之后解压,这里我是解压在 /opt/目录下:$tar -zxvf zookeeper-3.4.9.tar,gz(2)解压之后就...
阅读(353) 评论(0)

[netty源码分析]--服务端启动的工作流程分析

服务端1.首先是实例化boss线程池和worker线程池实例化的就是 NioEventLoopGroup;这里我假设boss线程池初始化为1个线程,worker线程初始化为 2*CPU个数的线程数。说一下主要做了什么工作:(1)指定了线程池中线程数、线程池的执行器是ThreadPerTaskExecutor;(2)线程池中每个线程其实就是一个NioEventLoop,线程池指定了每个NioEvent...
阅读(521) 评论(2)

[netty源码分析]--ChannelPipeline源码分析(一)

在前面我们已经分析过了netty的线程模型,了解了当线程池启动之后就会处于一种事件循环的状态,不断调用select() 函数,查询已注册的channel中的就绪事件。 下面我们就来研究一下当IO事件被获取之后是怎么在ChannelPipeline中的handler传递运行的。1. Channel和ChannelPipeline的关系在netty中,每个Channel 有且仅有一个ChannelPip...
阅读(489) 评论(0)

[netty源码分析]--EventLoopGroup与EventLoop 分析netty的线程模型

netty核心类源码解析:分析netty的运行机制 EventLoopGroup与EventLoop解析:分析netty的线程模型 这一篇博文主要是从源码层次分析netty的线程模型。netty之所以是高性能NIO框架,其中主要贡献之一就是netty的线程模型的高性能,我们都知道netty的线程模型是基于Reactor线程模型,下面我们就来分析一下对于netty的reactor...
阅读(1123) 评论(4)
338条 共17页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:147770次
    • 积分:4535
    • 等级:
    • 排名:第6766名
    • 原创:312篇
    • 转载:21篇
    • 译文:0篇
    • 评论:24条
    博客专栏
    最新评论