自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Mysql查询性能优化的心得

前言:之前实习时候做过一阵子的查询优化,那段时间结合阅读《高性能mysql》,有些心得体会,现在重新总结。围绕着《高性能mysql》,同时加入自己的心得体会。

2017-08-23 15:06:36

阅读数 1453

评论数 1

原创 RocketMQ源码深度解析五之Consumer篇

前言:RocketMQ 提供了两种消费模式, PUSH 和 PULL,大多数场景使用的是PUSH模式,这两种模式分别对应的是 DefaultMQPushConsumer 类和DefaultMQPullConsumer 类

2017-08-09 15:21:44

阅读数 2945

评论数 0

原创 RocketMQ源码深度解析四之Producer篇

前言:本篇将从启动,Producer发送不同类型的消息的逻辑等方面,来深入了解。

2017-08-08 18:03:15

阅读数 734

评论数 0

原创 RocketMQ源码深度解析三之Broker篇

Broker的初始化和启动,以及相应的功能及处理流程

2017-08-07 16:50:28

阅读数 3267

评论数 0

原创 RocketMQ源码深度解析二之Name Server篇

前言:主要是用于管理所有的broker信息,让producer和consumer都能获取到正确的broker信息,进行业务处理。这是一个类似于zookeeper的服务治理中心。

2017-08-07 11:48:07

阅读数 1564

评论数 1

原创 RocketMQ源码深度解析一之消息存储

前言:RocketMQ的消息持久化是基于文件系统,而从效率来看文件系统>kv存储>关系型数据库。那么,到底是如何存储的,相信对源码进行解析,将会是我们大大提高对消息存储的认识。

2017-08-07 01:09:05

阅读数 10324

评论数 1

原创 dubbo源码深度解读七之registery模块

前言:dubbo-registry是注册中心模块,基于注册中心下发地址的集群方式,以及对各种注册中心的抽象。Dubbo的注册中心提供了多种实现,其实现是基于dubbo的spi的扩展机制的,我们也可以直接实现自己的注册中心

2017-08-01 15:47:17

阅读数 1716

评论数 0

原创 dubbo源码深度解读六之cluster模块

前言:这是集群模块,将多个服务提供方伪装为一个提供方,包括:负载均衡, 容错,路由等,集群的地址列表可以是静态配置的,也可以是由注册中心下发。下图描述了dubbo调用过程中的对于集群,负载等的调用关系,根据该图一步步进行解读。 一,Cluster 将Directory中的多个Invoker伪装...

2017-08-01 14:35:27

阅读数 678

评论数 0

原创 dubbo源码深度解读五之rpc模块

前言:rpc模块是远程调用模块,抽象各种协议,以及动态代理,只包含一对一的调用,不关心集群的管理。这个模块的学习将使我们对服务的发布和调用更加清晰。重点学习这几个类的作用和它们的实现类:ProxyFactory、Invoker、Protocol、Exporter

2017-07-31 17:42:22

阅读数 648

评论数 0

原创 dubbo源码深度解读四之remoting模块

前言:remoting模块是远程通讯模块,相当于Dubbo协议的实现,是一个为Dubbo项目处理底层网络通信的层。具体结合了netty,mina等进行实现。

2017-07-31 00:24:03

阅读数 1855

评论数 0

原创 dubbo源码深度解读三之container模块

前言:container为服务容器,用于部署运行服务,是一个Standlone的容器,以简单的Main加载Spring启动,因为服务通常不需要Tomcat/JBoss等Web容器的特性,没必要用Web容器去加载服务。

2017-07-30 12:09:30

阅读数 2093

评论数 0

原创 dubbo源码深度解读二之config模块

前言:config是配置模块,是Dubbo对外的API,用户通过Config使用Dubbo,隐藏Dubbo所有细节。里面包含了dubbo-config-api和dubbo-config-spring。该模块依赖dubbo-common(上篇已经讲过了)和dubbo-rpc(放在后面解读)

2017-07-29 12:39:37

阅读数 2158

评论数 0

原创 dubbo源码深度解读一之common模块

前言:或许很多人会使用dubbo,但是阅读源码将使我们更加了解它,以及在未来对它进行改进优化。我就先把flag立在这里了,接下来这阵子将会深入源码进行学习和优化。做为一个要使用dubbo的程序员,必须需要深入理解它,因为dubbo已经停止了维护。

2017-07-28 12:01:39

阅读数 3949

评论数 1

原创 基于Netty和Zookeeper实现RPC框架

前言:所谓RPC是一种通过网络从远程计算机请求服务,而不必了解底层技术的协议,客户端不在乎传输层使用TCP或者UDP,不在意IO模型选择select还是epoll。现在典型的RPC框架有:Thrift,Dubbo等。接下来将参考一些dubbo的东西,展示如何基于Netty和zookeeper开发实...

2017-07-21 14:53:29

阅读数 3964

评论数 0

原创 java8中使用Metaspace就不会出现OOM吗?

前言:在java8中,Metaspace的出现,使我们现在不会再遇到java.lang.OutOfMemoryError: PermGen问题,但是我们要记住,这个新特性并不会使类加载导致的内存泄露就此消失。(一)Metaspace的简单介绍 (1)内存模型:大部分类元数据都在本地内存分配,用于...

2017-07-14 00:40:25

阅读数 1920

评论数 1

原创 深入理解垃圾收集器和收集器的选择策略

前言:新生代的收集器有:Serial,ParNew,Parallel Scavenge等。老年代有:CMS,SerialOld,Paraller Old等。接下来将深入理解各个垃圾收集器的原理,以及它们如何在不同场景下进行搭配使用。 同时,先解释几个名次: 1,并行(Parallel):多个垃...

2017-07-13 16:48:09

阅读数 1599

评论数 0

原创 Netty之私有协议栈开发

前言:《Netty权威指南》这本书让我收益巨大,接下来将结合自己的理解以及书中私有协议栈开发的例子,谈谈私有协议开发的思路,可能会遇到的问题,以及解决方法。同时会谈谈针对网络攻击(例如syn攻击)的解决方案。具体代码链接:https://github.com/wacxt/netty-private...

2017-06-27 15:23:30

阅读数 1133

评论数 0

原创 mysql高性能索引的探索

前言:索引对于一个系统良好的性能来说非常重要,尤其是数据越来越多,但是索引却经常被忽略,索引优化能大大提高查询性能。接下来将从索引基础到索引建立的策略,步步深入说明。相信仔细看完会有较大收获 一,索引基础 1,索引的类型 :B-Tree索引 B-Tree索引意味着所有的值都是按顺序存放的,并...

2017-06-23 23:25:21

阅读数 917

评论数 0

原创 dubbo对传统ssm进行服务化改造的思路以及一些分布式工具实现的思路

前言:当垂直应用越来越多,应用之间交互不可避免时,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。接下来将讲解一下dubbo对传统ssm进行服务化改造的思路以及一些分布式工具(分布式锁,分布式队列)实现的思路。相关代码已经放在了Github,如果...

2017-06-16 11:59:15

阅读数 1065

评论数 0

原创 Zookeeper教程(三):ZooKeeper源码阅读之Worker机制及集群状态监控

前言:接下来将会着重解释一下ZooKeeper里面重要的代码,本次将针对Worker机制,以及运用Worker进行对集群状态进行监控。如果对Zookerper的安装配置和运用不了解的,可以看看上两篇文章:(1)Zookeeper教程(一):快速开始以及结合java实现分布式Barrier和Que...

2017-06-01 16:17:55

阅读数 1071

评论数 0

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