自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mergades

世界上并没有完美的程序,但我们并不因此而沮丧,因为写程序本来就是一个不断追求完美的过程

  • 博客(214)
  • 资源 (5)
  • 收藏
  • 关注

原创 SpringBoot启动流程

SpringApplication.run/** * Create a new {@link SpringApplication} instance. The application context will load * beans from the specified primary sources (see {@link SpringApplication class-level}...

2020-01-15 19:11:37 460

原创 RocketMQ——消费过程

PullMessageService负责拉取消息,从远端服务器拉取消息后存储到ProcessQueue中,然后调用ConsumeMessageService#submitConsumeRequest 方法进行消费,适应小城池来消费消息,确保消息拉取与消息消费的解耦。1.jpg消息消费ConsumeMessageConcurrentlyService#submitCon...

2019-12-28 13:15:48 575

原创 RocketMQ 同一JVM实例启动多个不同NameServer 对应的Producer导致NameServer只连上一个的问题...

https://blog.csdn.net/doctor_who2004/article/details/83120396https://blog.csdn.net/u012477338/article/details/81475659

2019-12-26 19:44:14 690

原创 RocketMQ——RocketMQ消息存储

DefaultMQPushConsumer属性 consumerGroup 消费组名称 messageModel 消息消费模式,分为集群模式和广播模式 consumeFromWhere 消费者开始消费的位置,默认为最大偏移量 CONSUME_FROM_LAST_OFFSET allocateMessageQueueStrategy 集群模式下消...

2019-12-26 19:12:15 431

原创 容器化后 部署RocketMQ consumer instanceName重复?

现象容器化后,不同的RocketMQ的consumer部署在同一个容器。某开发小年轻和我说会导致client的InstanceName重复。解决查看代码DefaultMQPushConsumerImpl#start if (this.defaultMQPushConsumer.getMessageModel() == MessageModel.CLUSTERING) { ...

2019-12-23 09:33:07 1078

原创 RocketMQ——消息发送

概述RocketMQ消息发送方式:同步(sync)、异步(async)、单向(oneway)消息Message简介org.apache.rocketmq.common.message.Messagepublic class Message implements Serializable { private static final long serialVersionUI...

2019-12-14 15:14:10 647

原创 RocketMQ——NameServer 路由规则

RocketMQ路由注册是通过Broker与NameServer的心跳功能实现。Broker启动时向集群中所有的NameServer发送心跳包,每隔30秒向集群中的所有NameServer发送心跳,NamerServer收到心跳包会更新brokerLiveTable缓存中的BrokerLiveInfo的lastUpdateTimestamp,然后NameServer每隔十秒扫描brokerLive...

2019-12-09 19:12:30 681

原创 RocketMQ——NameServer启动流程

NameServer负责MQ消息的路由。生产者发送消息前,先从NameServer获取broker列表,然后根据负载均衡算法,找到broker发送消息。NameServer本地启动流程查看mqnameserv.sh脚本,我们看下核心的启动方法sh ${ROCKETMQ_HOME}/bin/runserver.sh org.apache.rocketmq.namesrv.Namesrv...

2019-12-04 21:33:12 737

原创 Java Agent基本简介和使用

javaagent简介javaagent是一种能够在不影响正常编译的情况下,修改字节码。java作为一种强类型的语言,不通过编译就不能能够进行jar包的生成。而有了javaagent技术,就可以在字节码这个层面对类和方法进行修改。同时,也可以把javaagent理解成一种代码注入的方式。但是这种注入比起spring的aop更加的优美。javaagent主要作用可以在加载ja...

2019-10-23 21:07:20 2017

原创 堆外内存——DirectByteBuffer

原文https://www.cnblogs.com/moonandstar08/p/5107648.html简介堆内存完全由JVM负责分配和释放,如果程序没有缺陷代码导致内存泄露,那么就不会遇到java.lang.OutOfMemoryError这个错误。使用堆外内存,就是为了能直接分配和释放内存,提高效率。JDK5.0之后,代码中能直接操作本地内存的方式有2种:使用未公开...

2019-08-27 18:51:30 150

原创 POI OutOfMemoryError DirectByteBuffer

上周重构Excel导入为事件模式导入,结果导入2003项目频繁遇到 OutOfMemoryError DirectByteBuffer。69FB6EE7D2595633D98F8E6E3C6B592E.jpg而另一个项目使用事件模式就没有问题,发现两个项目的唯一区别就是POI版本不同。测试发现是POI 版本问题,从poi-3.15降级到poi-3.10....

2019-08-26 19:43:18 304

原创 Dubbo Filter

文档整理官方文档 http://dubbo.apache.org/zh-cn/docs/dev/impls/filter.html用法详解 https://www.520mwx.com/view/63690Filter基本定义服务提供方和服务消费方调用过程拦截,Dubbo 本身的大多功能均基于此扩展点实现,每次远程方法执行,该拦截都会被执行。比如web请求的filter...

2019-08-22 20:47:42 229

原创 raft协议

资料官方网站 https://raft.github.io/动画示例 http://thesecretlivesofdata.com/raft/网易云知乎 https://zhuanlan.zhihu.com/p/30706032wiki https://zh.wikipedia.org/wiki/RaftRocketMQ https://mp.weixin....

2019-08-21 19:20:16 224

原创 一致性 hash 算法

参考列表理论分析: https://www.cnblogs.com/lpfuture/p/5796398.html理论分析: https://blog.csdn.net/sparkliang/article/details/5279393算法实现: https://www.cnblogs.com/xrq730/p/5186728.htmlmemcache的一致性hash算法...

2019-08-13 20:38:56 242

原创 Dubbo 负载均衡LoadBalance

转载 http://dubbo.apache.org/zh-cn/docs/source_code_guide/loadbalance.html简介Dubbo 提供了4种负载均衡实现,分别是基于权重随机算法的 RandomLoadBalance、基于最少活跃调用数算法的LeastActiveLoadBalance、基于 hash 一致性的ConsistentHashLoadB...

2019-08-11 20:33:14 371

原创 Dubbo 远程服务订阅

简介dubbo服务引用有两个时机:Spring 容器调用 ReferenceBean 的 afterPropertiesSet 方法时引用服务第二个是在 ReferenceBean 对应的服务被注入到其他类中时引用第一个引用时机是饿汉式的,第二个是懒汉式的。默认使用懒汉式的。如果需要使用饿汉式,可通过配置 <dubbo:reference> 的 init 属...

2019-08-06 20:11:47 358

原创 Dubbo 注册远程暴露服务

本地暴露和远程暴露dubbo官方针对本地暴露和远程暴露的解释文章较为详细。简答 总结如下:从 2.2.0 版本开始,Dubbo 默认在本地以 injvm 的方式暴露服务,这样的话,在同一个进程里对这个服务的调用会优先走本地调用。默认情况下,本地调用是自动开启的,不需要做额外的配置。只有当需要关闭的时候,才需要通过 scope 的配置来显式的关闭。injvm 来配置本地调...

2019-08-05 19:27:48 352

原创 Dubbo服务暴露之Invoker对象生成

Invoker简介Dubbo在注册远程服务之前会先生成Invoker对象 Invoker<?> invoker = proxyFactory.getInvoker(ref, (Class) interfaceClass, registryURL.addParameterAndEncoded(Constants.EXPORT_KEY, url.toFullStr...

2019-08-05 19:26:30 539

原创 Dubbo 自适应扩展机制-Adapative

简介在 Dubbo 中,很多拓展都是通过 SPI 机制进行加载的,比如 Protocol、Cluster、LoadBalance 等。有时,有些拓展并不想在框架启动阶段被加载,而是希望在拓展方法被调用时,根据运行时参数进行加载。这听起来有些矛盾。拓展未被加载,那么拓展方法就无法被调用(静态方法除外)。拓展方法未被调用,拓展就无法被加载。对于这个矛盾的问题,Dubbo 通过自适应拓...

2019-08-05 19:26:08 325

原创 Dubbo SPI机制

SPI简介站在一个框架作者的角度来说,定义一个接口,自己默认给出几个接口的实现类,同时 允许框架的使用者也能够自定义接口的实现。现在一个简单的问题就是:如何优雅的根据一个接口来获取该接口的所有实现类呢?JDK SPI 正是为了优雅解决这个问题而生,SPI 全称为 (Service Provider Interface),即服务提供商接口,是JDK内置的一种服务提供发现机制。目前...

2019-08-05 19:25:37 168

原创 Dubbo 注册中心

RegistryService/** * RegistryService. (SPI, Prototype, ThreadSafe) * * @see com.alibaba.dubbo.registry.Registry * @see com.alibaba.dubbo.registry.RegistryFactory#getRegistry(URL) */pub...

2019-08-05 19:23:11 138

原创 Dubbo XML解析

Dubbo XML文件解析器主要DubboNamespaceHandler 完成。public class DubboNamespaceHandler extends NamespaceHandlerSupport { static { Version.checkDuplicate(DubboNamespaceHandler.class); }...

2019-08-05 19:14:49 262

原创 Dubbo 注册中心

RegistryService/** * RegistryService. (SPI, Prototype, ThreadSafe) * * @see com.alibaba.dubbo.registry.Registry * @see com.alibaba.dubbo.registry.RegistryFactory#getRegistry(URL) */public inte...

2019-07-30 20:40:36 220

原创 ThreadLocal、InheritableThreadLocal、TransmittableThreadLocal

总结ThreadLocal用来多线程程序时,绑定变量到当前线程。存在局限是因为ThreadLocal只绑定变量到当前线程,无法满足父线程和子线程之间传递数据。所以JDK提供InheritableThreadLocal来解决该问题。但是InheritableThreadLocal存在问题,在线程池中使用时,绑定的数据为第一个父线程,所以ALI提供TransmittableThreadLocal ...

2019-07-30 20:22:30 195

原创 读书笔记-【从Paxos到ZooKeeper分布式一致性原理与实践】 第七章 Zk技术内幕

系统模型数据模型ZNode是ZK中数据的最小单元,每个ZNode上都可以保存数据,同时还可以挂载子节点,形成一个层次化的命名空间——树.树Zk中每个数据节点都称为ZNode,所有ZNode形成树形结构。事务ID事务是指ZK改变服务器状态的操作,一般包括节点的创建、删除、数据节点内容更新和客户端会话创建与失效。 对每一个事务请求,ZK都会分配一个全局事务ID,Z...

2018-09-16 15:17:49 768

原创 读书笔记-从Paxos到ZooKeeper分布式一致性原理与实践】第六章 ZK的典型应用场景

典型应用场景及实现发布订阅数据发布订阅,即配置中心功能。 客户端向服务端注册自己需要关注的节点,一旦该节点的数据发生变更,那么服务端就会向相应的客户端发送Watcher事件通知,客户端接收到这个消息后,需要主动到服务端获取最新的数据。 如下场景,实现一个数据库切换的应用场景配置存储将数据库配置存储在ZK的节点配置获取集群中每台机器在启动初始化阶段,首先从ZK...

2018-09-02 10:20:55 298

原创 【读书笔记-从Paxos到ZooKeeper分布式一致性原理与实践】第五章 使用ZK

部署与运行1,ZK文档 http://zookeeper.apache.org/doc/r3.4.13/zookeeperStarted.html 2,ZK下载 https://www.apache.org/dyn/closer.cgi/zookeeper/客户端基本命令创建[zk: localhost:2181(CONNECTED) 1] create /zk-bo...

2018-09-02 08:49:01 420

原创 【读书笔记-从Paxos到ZooKeeper分布式一致性原理与实践】第四章 Zookeeper与Paxos

Zookeeper简介Zookeeper是什么Zookeeper是一个典型的分布式一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。ZK可以保证如下分布式一致性特性: * 顺序一致性。从同一个客户端发起的事务请求,最终将会严格按照其发起顺序被应用到ZK中 * 原子性。所有事...

2018-08-26 09:52:17 242

原创 【读书笔记-从Paxos到ZooKeeper分布式一致性原理与实践】第二章 一致性协议

2PC与 3PC在分布式系统中,每个节点都明确知道自己事务操作的成功或失败,但无法获取其他分布式节点的操作结果。因此当一个事务需要跨节点进行事务操作时,需要引入协调者(Coordinator)组件来统一调度所有分布式节点的执行逻辑,这些被调度的节点称为参与者(Participant)。 协调者负责调度参与者的行为,最终决定这些参与者是否提交事务。基于这个思想衍生出二阶段提交和三阶段提交两种协...

2018-08-25 11:39:50 221

原创 【读书笔记-从Paxos到ZooKeeper分布式一致性原理与实践】第一章 分布式架构

从集中式到分布式分布式特点1,《分布式系统概念与设计》一书中,对分布式系统如下定义: 分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。 一个标准的分布式系统包含如下几个特征: 分布式 分布式系统中的多台计算机都是在空间上随意分布,同时机器的分布情况随时变动。 对等性 分布式系统中的计算机没有主从之分。 ...

2018-08-25 08:41:32 344

原创 Dubbo ZK订阅流程

ZK订阅流程由RegistryProtocol开始,再由ZookeeperREgistry完成最后的订阅。RegistryProtocolRegistryProtocol 实现Protocol接口@SPI("dubbo")public interface Protocol { /** * 获取缺省端口,当用户没有配置端口时使用。 * * @return 缺省端

2017-12-27 11:30:17 2456 1

原创 Dubbo远程方法注册

开始远程方法暴漏开始的地方是在ServiceBean类,该类实现了ApplicationListener接口,在该接口中接收ontextRefreshEvent事件,通过此事件来开始暴漏对应的dubbo接口。public void onApplicationEvent(ApplicationEvent event) { if (ContextRefreshedEvent.class.

2017-12-22 17:22:06 1011

原创 Spring Corbar事务源码 以及连接泄露分析

Spring Cobar事务源码分析

2017-11-06 18:05:42 715

原创 一次死锁的分析

现象应用程序报错:MySQLTImeoutException:Statement cacelled due to timeout or client request。数据库状态通过以下语句查看当前数据库事务状态 SELECT * FROM information_schema.INNODB_TRX;

2017-09-21 18:43:03 571

原创 Sprign源码——BeanFactory 加载bean

BeanFactory getBean(String) /** * Return an instance, which may be shared or independent, of the specified bean. * This method allows a Spring BeanFactory to be used as a replacement for the

2017-04-05 19:05:48 541

原创 Spring源码——BeanFactory 注册bean

XmlBeanFactory继承DefaultListableBeanFactory,实现通过XML读取的方式来获取Bean的定义。XmlBeanFactory维护一个XmlbeanDefinitionReader来加载需要的resource解析出的BeanDefinition。XmlBeanFactory构造方法如下:/** * Create a new X

2017-04-04 14:54:13 588

原创 Spring源码——Resource

Resource定义资源文件来自于classPath或者本地文件。/** * Interface for a resource descriptor that abstracts from the actual * type of underlying resource, such as a file or class path resource. * * An I

2017-04-04 14:53:40 467

原创 mysql 死锁

1,首先查看当前数据库的所有事务SELECT * FROM information_schema.INNODB_TRX; 2,通过mysql  thread id 查找对应客户端的请求sql线程select * from information_schema.processlist where id=1662333;3,通过线程

2016-11-22 20:07:10 621

原创 Hystrix基本使用

0,User Guidhttps://github.com/Netflix/Hystrix/tree/master/hystrix-contrib/hystrix-javanica#fallback1,需要AOP引入package com.raycloud.dmj.services.trades.solr;import com.netflix.hystrix.contr

2016-09-20 13:58:08 4303

原创 Solr 4.7 Error getting leader from zk

solr cloud 一个shard的两个replicate,都在运行但是没有选取出mater。Solr 日志报错:2016/8/13 下午2:07:04ERRORZkControllerError getting leader from zk2016/8/13 下午2:07:05ERRORZkContainer:org.apache.solr.common.SolrException

2016-08-13 16:53:53 1773

mybatis plus baomidou

mybatis plus baomidou

2018-12-18

spring-data-oracle-1.0.0.RELEASE.jar

spring-data-oracle-1.0.0.RELEASE.jar下载

2015-03-27

oscache-2.0.jar

解压即可看到全部内容。

2015-03-14

《人件》中文版pdf

软件管理与软件工程译丛 人 件 Peopleware:Productive Projects and Teams (第2版) [美] 汤姆•迪马可(Tom Demarco) / 著 蒂姆•利斯特(Tim Lister) UMLChina翻译组 方春旭 叶向群 / 译

2015-01-05

jsp web聊天 群聊和私聊 源码和可运行程序

可运行的jspweb聊天程序,包含源代码。测试可运行。 源代码在java目录下,所以你下载后只需要将文件放在tomacat下即可,看源码的话,只需要查看java文件夹。

2013-05-17

空空如也

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

TA关注的人

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