转载和引用,请注明原文出处! Fork me on GitHub
结局很美妙的事,开头并非如此!
上一页 1 2 3 4 5 6 ··· 10 下一页
摘要: 一. 学习源码的目的 1. 为了扩展和调优:掌握框架的工作流程和原理 2. 为了提升自己的编程技能:学习他人的设计思想、编程技巧 二. 学习源码的方法 方法一: 1)掌握研究的对象和研究对象的核心概念:搞明白框架都能做什么,是怎么做的。 比如我们要研究Spring的源码,那么研究的对象就是Sprin 阅读全文
posted @ 2019-03-17 10:46 小不点啊 阅读(1448) 评论(0) 推荐(3)
摘要: 一、为什么要提供配置的方法 经过前面的手写Spring IOC、手写Spring DI、手写Spring AOP,我们知道要创建一个bean对象,需要用户先定义好bean,然后注册到bean工厂才能创建一个bean对象。代码如下: 那么如果我们上面的过程换成配置的方式会是什么样的呢? 经过上面的创建 阅读全文
posted @ 2019-03-17 10:44 小不点啊 阅读(1339) 评论(1) 推荐(0)
摘要: 一、AOP分析 问题1:AOP是什么? Aspect Oriented Programming 面向切面编程,在不改变类的代码的情况下,对类方法进行功能增强。 问题2:我们需要做什么? 在我们的框架中要向使用用户提供AOP功能,让他们可以通过AOP技术实现对类方法进行功能增强。 从"Aspect O 阅读全文
posted @ 2019-03-17 10:43 小不点啊 阅读(4775) 评论(3) 推荐(1)
摘要: 一、IOC分析 1. IOC是什么? IOC:Inversion of Control控制反转,也称依赖倒置(反转) 问题:如何理解控制反转? 反转:依赖对象的获得被反转了。由自己创建,反转为从IOC容器中获取(和自动注入) 2. IOC容器带来什么好处? 1)代码更简洁,不需要去new需要使用的对 阅读全文
posted @ 2019-03-17 10:40 小不点啊 阅读(2138) 评论(3) 推荐(1)
摘要: 要分析常用框架spring、mybatis、springboot、springcloud等的源码,首先要了解各种设计模式,因为框架里面应用了各种设计模式 一、设计思想 学习设计模式最重要的是掌握设计思想和设计原则,理解了设计思想和设计原则并运用到平时的编码中是最重要的!!! 1. 我们先来看下面的问 阅读全文
posted @ 2019-01-20 12:13 小不点啊 阅读(5848) 评论(2) 推荐(5)
摘要: 准备工作: (1)启动zookeeper作为dubbo的注册中心 (2)新建一个maven的生产者web工程dubbo-provider-web和一个maven的消费者web工程dubbo-consumer-web (3)在pom.xml文件里面引入如下依赖 1. 注解配置 dubbo可以使用注解在 阅读全文
posted @ 2018-10-27 16:02 小不点啊 阅读(5397) 评论(0) 推荐(0)
摘要: 一、dubbo介绍 Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。简单地说,dubbo是一个基于Spring的RPC(远程过程调用)框架,能够实现服务的远程调用、服务的治理 最主要就是服务之间的治理(治理 阅读全文
posted @ 2018-10-27 16:01 小不点啊 阅读(2061) 评论(0) 推荐(0)
摘要: 一、异步处理 场景: 用户注册,写入数据库成功以后,发送邮件和短信。 准备工作: 1)安装RabbitMQ,参考前面的文章 2)新建一个名为RabbitMQAsyncProc的maven web工程,在pom.xml文件里面引入如下依赖 1. 新建一个用户信息实体 2. 新建一个用户注册接口 3. 阅读全文
posted @ 2018-09-23 19:49 小不点啊 阅读(5443) 评论(0) 推荐(1)
摘要: 一、RabbitMQ与Spring集成 准备工作: 分别新建名为RabbitMQSpringProducer和RabbitMQSpringConsumer的maven web工程 在pom.xml文件里面引入如下依赖: 与Spring集成步骤: 配置文件中增加命名空间:xmlns:rabbit="h 阅读全文
posted @ 2018-09-23 19:44 小不点啊 阅读(1240) 评论(0) 推荐(0)
摘要: 准备工作: 1)安装RabbitMQ,参考文章:消息中间件系列二:RabbitMQ入门(基本概念、RabbitMQ的安装和运行) 2.)分别新建名为OriginalRabbitMQProducer和OriginalRabbitMQConsumer的maven工程 在pom.xml文件里面引入如下依赖 阅读全文
posted @ 2018-09-23 19:40 小不点啊 阅读(2107) 评论(1) 推荐(1)
摘要: 一、基本概念 1. AMQP AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议。支持不同语言和不同的产品 2. 生产者 消息的创建者,发送到AMQP的消息中间件 3. 消费者 连接到AMQP的消息中间件,订阅到队列上,进 阅读全文
posted @ 2018-09-23 19:35 小不点啊 阅读(892) 评论(0) 推荐(0)
摘要: 一、入门 1. 消息中间件的定义 没有标准定义,一般认为,采用消息传送机制/消息队列 的中间件技术,进行数据交流,用在分布式系统的集成 2. 为什么要用消息中间件 解决分布式系统之间消息的传递。电商场景: 用户下单减库存,调用物流系统。随着业务量的增大,需要对系统进行拆分(服务化和业务拆分),拆分后 阅读全文
posted @ 2018-09-23 19:33 小不点啊 阅读(2319) 评论(0) 推荐(0)
摘要: 一、服务器角色 1. Leader 1)事务请求的唯一调度者和处理者。保证事务处理的顺序性 事务请求:导致数据一致性的请求(数据发生改变)。如删除一个节点、创建一个节点、设置节点数据,设置节点权限就是一个事物请求,全局的事物id(zxid)只能由leader来分配 2)集群内部个服务器之间的调度者 阅读全文
posted @ 2018-09-11 19:21 小不点啊 阅读(1696) 评论(0) 推荐(1)
摘要: 一、Master选举 1. master选举原理: 有多个master,每次只能有一个master负责主要的工作,其他的master作为备份,同时对负责工作的master进行监听,一旦负责工作的master挂掉了,其他的master就会收到监听的事件,从而去抢夺负责工作的权利,其他没有争夺到负责主要 阅读全文
posted @ 2018-09-11 19:19 小不点啊 阅读(3838) 评论(0) 推荐(1)
摘要: 一、Zookeeper实现分布式锁 分布式锁主要用于在分布式环境中保证数据的一致性。 包括跨进程、跨机器、跨网络导致共享资源不一致的问题。 1. 分布式锁的实现思路 说明: 这种实现会有一个缺点,即当有很多进程在等待锁的时候,在释放锁的时候会有很多进程就过来争夺锁,这种现象称为 “惊群效应” 2.  阅读全文
posted @ 2018-09-11 00:32 小不点啊 阅读(5097) 评论(0) 推荐(4)
摘要: 一、Zookeeper原生API如何进行调用 准备工作: 首先在新建一个maven项目ZK-Demo,然后在pom.xml里面引入zk的依赖 1. 连接zk并监听事件 输出结果: CONNECTINGReceive watched event:WatchedEvent state:SyncConne 阅读全文
posted @ 2018-09-07 00:02 小不点啊 阅读(5437) 评论(0) 推荐(1)
摘要: 一、分布式架构详解 1、分布式发展历程 1.1 单点集中式 特点:App、DB、FileServer都部署在一台机器上。并且访问请求量较少 1.2 应用服务和数据服务拆分 特点:App、DB、FileServer分别部署在独立服务器上。并且访问请求量较少 1.3 使用缓存改善性能 特点:数据库中频繁 阅读全文
posted @ 2018-09-05 08:46 小不点啊 阅读(6469) 评论(0) 推荐(6)
摘要: 一、Zookeeper介绍 1. 介绍Zookeeper之前先来介绍一下分布式 1.1 分布式主要是下面两个方面: 1) 任务拆分 任务拆分指的是把传统的单节点服务拆分成多个节点服务部署到不同的机器上对外提供服务。比如一个传统服务有订单+支付+物流等3个模块,拆分成订单系统、支付系统、物流系统3个服 阅读全文
posted @ 2018-09-03 00:31 小不点啊 阅读(41653) 评论(1) 推荐(8)
摘要: 一、使用zookeeper管理远程Mycat配置文件 环境准备: 虚拟机192.168.152.130: zookeeper,具体参考前面文章 搭建dubbo+zookeeper+dubboadmin分布式服务框架(windows平台下) 虚拟机192.168.152.128: 安装好Mycat,具 阅读全文
posted @ 2018-08-29 01:56 小不点啊 阅读(4658) 评论(0) 推荐(2)
摘要: 一、Mycat和Sharding-jdbc的区别 1)mycat是一个中间件的第三方应用,sharding-jdbc是一个jar包 2)使用mycat时不需要改代码,而使用sharding-jdbc时需要修改代码 Mycat(proxy中间件层): Sharding-jdbc(TDDL为代表的应用层 阅读全文
posted @ 2018-08-27 20:51 小不点啊 阅读(32424) 评论(1) 推荐(1)
上一页 1 2 3 4 5 6 ··· 10 下一页