<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[mxlmxlmxl33的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/mxlmxlmxl33</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mxlmxlmxl33]]></copyright><item><title><![CDATA[zookeeper---数据同步]]></title><link>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/92409165</link><guid>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/92409165</guid><author>mxlmxlmxl33</author><pubDate>Sun, 16 Jun 2019 21:13:08 +0800</pubDate><description><![CDATA[zookeeper选举完成后，leader会与follower进行数据同步，保证每个节点的数据保证一致。

一、交互过程

   集群的follower节点与leader节点会首先建立网络链接，然后会确定主进程周期和同步日志操作，交互过程如下，箭头方向表示时间方向。


数据同步交互过程

1、follower发送类型为followerInfo的数据到leader节点，内容包括自己的acc...]]></description><category></category></item><item><title><![CDATA[zookeeper---选举]]></title><link>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/90744066</link><guid>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/90744066</guid><author>mxlmxlmxl33</author><pubDate>Fri, 07 Jun 2019 23:10:23 +0800</pubDate><description><![CDATA[zookeeper集群启动后，选举leader节点和确定每个节点的角色是数据同步和对外提供服务的前提。因此如何快速有效的选举出leader节点是zookeeper的核心逻辑。本文将结合源码分析zookeeper的选举过程。

一、整体流程


整体流程

1、zookeeper节点启动后，首先会加载对应路径下的配置文件

2、然后创建代表自身的QuorumPeer对象，在zookeeper集群...]]></description><category></category></item><item><title><![CDATA[RocketMQ-事务消息]]></title><link>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/87374529</link><guid>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/87374529</guid><author>mxlmxlmxl33</author><pubDate>Fri, 15 Feb 2019 20:23:41 +0800</pubDate><description><![CDATA[一、事务消息实现方式

       应用使用事务消息的步骤：

      （1）应用发送消息，使用prepare字段标示准备消息

      （2）应用执行本地业务逻辑

      （3）应用发送事务提交或回滚消息

         broker收到prepare消息后会将topic替换为RMQ_SYS_TRANS_HALF_TOPIC，queueId替换为0，然后写入commitlog...]]></description><category></category></item><item><title><![CDATA[RocketMQ-延迟消息]]></title><link>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/87356626</link><guid>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/87356626</guid><author>mxlmxlmxl33</author><pubDate>Fri, 15 Feb 2019 13:51:51 +0800</pubDate><description><![CDATA[        消息产生后，生产者希望在间隔一段时间后被消费的场景可以使用定时消息，RocketMQ目前不支持自定义延迟时间，但可以指定延迟等级，可以选择18个延迟等级，分别是对应延迟时间是1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h。

      RocketMQ的延迟消息主题是SCHEDULE_TOPIC_XXXX，18...]]></description><category></category></item><item><title><![CDATA[RocketMQ-顺序消息]]></title><link>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/87100301</link><guid>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/87100301</guid><author>mxlmxlmxl33</author><pubDate>Tue, 12 Feb 2019 17:40:30 +0800</pubDate><description><![CDATA[         在某些业务场景下消息并非是独立的，需要保证某些消息消费的先后顺序，如电商下单场景，创建订单、付款和订单完成三个状态消息需要按照依次消费。RocketMQ解决此问题的方案是生产者顺序的将消息写入相同的队列中，然后由同一个消费者消费，如下图所示。              


顺序消息示意图

        生产者写入消息会根据自己的业务逻辑将存在先后逻辑的消息写入相同队列，使用...]]></description><category></category></item><item><title><![CDATA[RocketMQ-消息消费]]></title><link>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/87018504</link><guid>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/87018504</guid><author>mxlmxlmxl33</author><pubDate>Tue, 12 Feb 2019 11:18:23 +0800</pubDate><description><![CDATA[        RocketMQ消费模式分为集群消费模式与广播消费模式，生产者产生某个topic的消息后，在集群模式下，topic下的消息可以被同一分组下的多个实例消费掉，一条消息至少被一台实例消费成功便可；广播模式是每条消息必须被分组下的每台实例成功消费，每个实例维护自己的消费进度。

一、集群消费模式

        producer在生产消息时会根据负载均衡策略为消息指定队列编号（queu...]]></description><category></category></item><item><title><![CDATA[RocketMQ-消费者broker节点选择策略]]></title><link>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/86715690</link><guid>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/86715690</guid><author>mxlmxlmxl33</author><pubDate>Thu, 31 Jan 2019 16:34:35 +0800</pubDate><description><![CDATA[         消费端选择消费队列的规则在RocketMQ-负载均衡中已经解释清楚，在broker主从部署结构上，物理消息会被同步到多个slave节点上，因此消费端如何从master节点和多个slave节点中选出一个broker节点进行消费需要一个策略。

         假设broker有一个master节点与两个slave节点，拉取步骤如下：

      （1）consumer第一次默认...]]></description><category></category></item><item><title><![CDATA[RocketMQ-负载均衡]]></title><link>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/85949429</link><guid>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/85949429</guid><author>mxlmxlmxl33</author><pubDate>Sun, 06 Jan 2019 23:03:33 +0800</pubDate><description><![CDATA[RocketMQ是分布式消息服务，生产和消费负载均衡都是在客户端完成，本文分别介绍生产与消费的负载均衡策略。


部署结构拓扑图

一、路由信息

     路由记录了broker集群节点的通讯地址、broker名称和读写队列数量等信息。

     写队列writequque表示生产者可以写入的队列个数，如果不做特别配置默认是4，队列号从0开始，如果是4个，queueId就是0，1，2，3。br...]]></description><category></category></item><item><title><![CDATA[RocketMQ-broker消息存储与消息队列]]></title><link>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/85636524</link><guid>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/85636524</guid><author>mxlmxlmxl33</author><pubDate>Wed, 02 Jan 2019 20:33:44 +0800</pubDate><description><![CDATA[
broker消息存储与消息队列

一、场景

       有两个生产者produer1、producer2，分别生产topicA和topicB的消息，topicA与topicB分别有两个消费者consumer1、consumer2。

二、commitlog

     commitlog是broker消息的持久化文件，消息写入commitlog是顺序的。每条消息中记录了topic、queue...]]></description><category></category></item><item><title><![CDATA[jetty9部署jsp报Unable to compile class for JSP]]></title><link>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/85108101</link><guid>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/85108101</guid><author>mxlmxlmxl33</author><pubDate>Wed, 19 Dec 2018 20:58:08 +0800</pubDate><description><![CDATA[使用jetty9部署jsp页面，报Unable to compile class for JSP，原因是web.xml的web-app的version版本与servlet版本不匹配导致，将两个版本号保持一致或者将web-app版本号提高来适应servlet



 

...]]></description><category></category></item><item><title><![CDATA[RocketMQ---消息流]]></title><link>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/84797428</link><guid>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/84797428</guid><author>mxlmxlmxl33</author><pubDate>Tue, 04 Dec 2018 20:47:52 +0800</pubDate><description><![CDATA[

 

        RocketMQ的基本功能是消息转发，除此之外还支持事务消息，延迟消息以及分布式消息存储。任何消息在发送到Broker的master节点都要先落到commitlog中持久化，事务消息、延迟消息、主从日志同步模块从commitlog中读取数据进行处理。消息流转顺序如下：

1、生产者产生消息，发送到broker

2、broker先将数据持久化到commitlog日志中，如...]]></description><category></category></item><item><title><![CDATA[RocketMQ-生产消息]]></title><link>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/83179358</link><guid>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/83179358</guid><author>mxlmxlmxl33</author><pubDate>Fri, 19 Oct 2018 19:24:10 +0800</pubDate><description><![CDATA[一、生产消息核心类

       生产消息的用到的几个常见类：

      1、MQProducer：消息生产者对外接口，内部定义允许用户调用的服务接口，如单条发送与批量发送等接口定义

      2、DefaultMQProducer：MQProducer默认实现类和生产者配置信息

      3、DefaultMQProducerImpl：消息生产逻辑实际包装类，获取路由、选择brok...]]></description><category></category></item><item><title><![CDATA[RocketMQ探秘——客户端消费]]></title><link>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/83109984</link><guid>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/83109984</guid><author>mxlmxlmxl33</author><pubDate>Wed, 17 Oct 2018 16:36:19 +0800</pubDate><description><![CDATA[一、客户端组件总览

            每个客户端有一个管理者（MQClientManager），是单例，负责生产MQInstance对象，MQClientManager通过id将多个MQInstance对象放在一个列表中。MQClientManager的id命名规范是ip@instanceName@unitName。一般情况下是一个客户端只有一个MQInstance对象。MQInstanc...]]></description><category></category></item><item><title><![CDATA[Drools]]></title><link>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/78783416</link><guid>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/78783416</guid><author>mxlmxlmxl33</author><pubDate>Tue, 12 Dec 2017 16:39:59 +0800</pubDate><description><![CDATA[Drools入门系列（一）HelloWorldDrools入门系列（二）HelloWorld详解之Sample.drlDrools入门系列（三）HelloWorld详解之kmodule.xmlDrools入门系列（四）HelloWorld详解之JUnit Test类Drools入门系列（五）KIE概论Drools入门系列（六）KIE之基础API详解Drools入门系列（七）KIE之kmodule.]]></description><category></category></item><item><title><![CDATA[log4j+logback+slf4j的关系与调试]]></title><link>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/54864182</link><guid>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/54864182</guid><author>mxlmxlmxl33</author><pubDate>Sat, 04 Feb 2017 16:51:20 +0800</pubDate><description><![CDATA[背景 
    由于现在开源框架日益丰富，好多开源框架使用的日志组件不尽相同。存在着在一个项目中，不同的版本，不同的框架共存。导致日志输出异常混乱。虽然也不至于对系统造成致命伤害，但是明显可以看出，架构不够精良，追求极致略有不足。 
    其中有一些标准通用接口，标准实现，各种桥接器的存在，下面就让笔者树立一下这些框架之间的关系。 
 
从上图中，我们可以看到4部分。 
接口：将所有日]]></description><category></category></item><item><title><![CDATA[常用日志使用方式（slf4j,logback,log4j,common-log）]]></title><link>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/54863406</link><guid>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/54863406</guid><author>mxlmxlmxl33</author><pubDate>Sat, 04 Feb 2017 16:42:44 +0800</pubDate><description><![CDATA[slf4j,logback,log4j,common-log区分，常用的日志使用方式和不同改变代码，整合多种日志，统一使用logback输出]]></description><category></category></item><item><title><![CDATA[基于EMF的MDA开发（一）]]></title><link>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/53509866</link><guid>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/53509866</guid><author>mxlmxlmxl33</author><pubDate>Wed, 07 Dec 2016 19:50:55 +0800</pubDate><description><![CDATA[模型驱动开发，EMF，Ecore]]></description><category></category></item><item><title><![CDATA[Spring的model、modelmap的联系]]></title><link>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/53171289</link><guid>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/53171289</guid><author>mxlmxlmxl33</author><pubDate>Thu, 17 Nov 2016 14:22:37 +0800</pubDate><description><![CDATA[Spring的model、modelmap的联系]]></description><category></category></item><item><title><![CDATA[ExecutorService 的理解与使用]]></title><link>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/52641660</link><guid>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/52641660</guid><author>mxlmxlmxl33</author><pubDate>Fri, 23 Sep 2016 19:12:16 +0800</pubDate><description><![CDATA[接口 java.util.concurrent.ExecutorService 表述了异步执行的机制，并且可以让任务在后台执行。壹個 ExecutorService 实例因此特别像壹個线程池。事实上，在 java.util.concurrent 包中的 ExecutorService 的实现就是壹個线程池的实现。

ExecutorService 样例
这里有壹個简单的使用Java 实现的 ]]></description><category></category></item><item><title><![CDATA[maven属性定义与使用]]></title><link>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/51879732</link><guid>https://blog.youkuaiyun.com/mxlmxlmxl33/article/details/51879732</guid><author>mxlmxlmxl33</author><pubDate>Mon, 11 Jul 2016 11:58:32 +0800</pubDate><description><![CDATA[出自原文：http://www.tmser.com/post-178.html


MAVEN 属性定义与使用

Posted on 2013-5-16, 23:00, by tmser, under java
 周边 .

Maven内置了三大特性：属性、Profile和资源过滤来支持构建的灵活性。
MAVEN属性
事实上有六种类型的Maven属性：

内置属性：主要有两]]></description><category></category></item></channel></rss>