自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(216)
  • 资源 (3)
  • 收藏
  • 关注

原创 springboot的自动配置原理

SpringBoot中的默认配置通过刚才的学习,我们知道@EnableAutoConfiguration会开启SpringBoot的自动配置,并且根据你引入的依赖来生效对应的默认配置。那么问题来了: 这些默认配置是怎么配置的,在哪里配置的呢? 为何依赖引入就会触发配置呢? 这些默认配置的属性来自哪里呢? 其实在我们的项目中,已经引入了一个依赖:spring-boo...

2020-01-31 22:24:14 1128

原创 springboot属性注入

SpringBoot的属性注入在上面的案例中,我们实验了java配置方式。不过属性注入使用的是@Value注解。这种方式虽然可行,但是不够强大,因为它只能注入基本类型值。在SpringBoot中,提供了一种新的属性注入方式,支持各种java基本数据类型及复杂类型的注入。1)新建JdbcProperties,用来进行属性注入:代码:@ConfigurationPropertie...

2020-01-31 21:48:39 155

原创 java配置

默认配置原理springboot的默认配置方式和我们之前玩的配置方式不太一样,没有任何的xml。那么如果自己要新增配置该怎么办?比如我们要配置一个数据库连接池,以前会这么玩:<!-- 配置连接池 --><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-meth...

2020-01-31 21:15:37 215

原创 优化入门程序

优化入门程序现在工程中只有一个Controller,可以这么玩;那么如果有多个Controller,怎么办呢?添加Hello2Controller:代码:package com.learn.springboot.controller;import org.springframework.web.bind.annotation.GetMapping;import org.sp...

2020-01-31 20:37:08 182

原创 springboot入门

引入依赖看到这里很多同学会有疑惑,前面说传统开发的问题之一就是依赖管理混乱,怎么这里我们还需要管理依赖呢?难道SpringBoot不帮我们管理吗?别着急,现在我们的项目与SpringBoot还没有什么关联。SpringBoot提供了一个名为spring-boot-starter-parent的工程,里面已经对各种常用依赖(并非全部)的版本进行了管理,我们的项目需要以这个项目为父工程,这样我...

2020-01-31 20:17:30 259

原创 springboot介绍

1. 了解SpringBoot在这一部分,我们主要了解以下3个问题: 什么是SpringBoot 为什么要学习SpringBoot SpringBoot的特点 1.1.什么是SpringBootSpringBoot是Spring项目中的一个子工程,与我们所熟知的Spring-framework 同属于spring的产品:我们可以看到下面的一段介绍:...

2020-01-31 20:06:07 518

原创 SpringBoot整合RocketMQ之事务消息

package cn.learn.rocketmq.spring.transaction;import org.apache.rocketmq.spring.annotation.RocketMQTransactionListener;import org.apache.rocketmq.spring.core.RocketMQLocalTransactionListener;impor...

2020-01-31 14:30:07 1048

原创 IDEA 的Surround With (例如try/catch)快捷键

快捷键 ctrl+alt+t选中想要包裹的代码,按住此快捷键,会出现以下内容:选中某个即可

2020-01-31 14:23:59 1625

原创 SpringBoot整合RocketMQ之Consumer接收消息

package cn.learn.rocketmq.spring;import org.apache.rocketmq.spring.annotation.ConsumeMode;import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;import org.apache.rocketmq.spring.co...

2020-01-31 13:30:51 1062

原创 SpringBoot整合RocketMQ之环境搭建以及Producer发送消息

https://github.com/apache/rocketmq-spring/releases/tag/2.0.0https://github.com/apache/rocketmq-spring/archive/2.0.0.zip#源码地址(或者使用资料中的源码)https://github.com/apache/rocketmq-spring#进入源码目录,执行如下命令...

2020-01-31 13:16:36 512

原创 RocketMQ集群之搭建2m2s集群(配置说明)

搭建2m2s集群下面通过docker搭建2master+2slave的集群。#创建2个master#nameserver1docker create -p 9876:9876 --name rmqserver01 \-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \-e "JAVA_OPTS=-Duser.home=/op...

2020-01-31 12:21:46 385

原创 RocketMQ集群之集群模式讲解

集群模式在RocketMQ中,集群的部署模式是比较多的,有以下几种:单个Master这种方式风险较大,一旦Broker重启或者宕机时,会导致整个服务不可用,不建议线上环境使用。多Master模式一个集群无Slave,全是Master,例如2个Master或者3个Master单台机器宕机期间,这台机器上未被消费的消息在机器恢复之前不可订阅,消息实时性会受到影响。多Ma...

2020-01-31 12:07:16 912

原创 RocketMQ错误消息重试策略之Consumer的重试机制(timeout情况)

timeout比如由于网络原因导致消息压根就没有从MQ到消费者上,那么在RocketMQ内部会不断的尝试发送这条消息,直至发送成功为止!也就是说,服务端没有接收到消息的反馈,既不是成功也不是失败,这个时候定义为超时。...

2020-01-31 11:46:47 807

原创 RocketMQ错误消息重试策略之Consumer的重试机制(Exception情况)

consumer端重试消费者端的失败,分为2种情况,一个是exception,一个是timeout。exception消息正常的到了消费者,结果消费者发生异常,处理失败了。例如反序列化失败,消息数据本身无法处理(例如话费充值,当前消息的手机号被注销,无法充值)等。消息的状态://// Source code recreated from a .class file by I...

2020-01-31 11:43:37 1242

原创 RocketMQ错误消息重试策略之Producer的重试机制

package cn.learn.rocketmq.error;import org.apache.rocketmq.client.producer.DefaultMQProducer;import org.apache.rocketmq.client.producer.SendResult;import org.apache.rocketmq.common.message.Messag...

2020-01-31 11:11:35 454

原创 RocketMQ错误消息重试策略之重试情况的分析

2020-01-31 10:59:04 199

原创 RocketMQ的存储之消息的同步、异步刷盘

同步刷盘与异步刷盘RocketMQ 为了提高性能,会尽可能地保证 磁盘的顺序写。消息在通过 Producer 写入 RocketMQ 的时候,有两种写磁盘方式,分别是同步刷盘与异步刷盘。同步刷盘在返回写成功状态时,消息已经被写入磁盘 。具体流程是:消息写入内存的 PAGECACHE 后,立刻通知刷盘线程刷盘,然后等待刷盘完成,刷盘线程执行完成后唤醒等待的线程,返回消息写成功的状态 。...

2020-01-31 10:40:15 697

原创 RocketMQ的存储之消息的存储分析

RocketMQ存储RocketMQ中的消息数据存储,采用了零拷贝技术(使用 mmap + write 方式),文件系统采用 Linux Ext4 文件系统进行存储。消息数据的存储在RocketMQ中,消息数据是保存在磁盘文件中,为了保证写入的性能,RocketMQ尽可能保证顺序写入,顺序写入的效率比随机写入的效率高很多。RocketMQ消息的存储是由ConsumeQueue和Co...

2020-01-31 10:30:21 271

原创 RocketMQ的Consumer详解之重复消息的解决方案

重复消息的解决方案造成消息重复的根本原因是:网络不可达。只要通过网络交换数据,就无法避免这个问题。所以解决这个问题的办法就是绕过这个问题。那么问题就变成了:如果消费端收到两条一样的消息,应该怎样处理?1. 消费端处理消息的业务逻辑保持幂等性2. 保证每条消息都有唯一编号且保证消息处理成功与去重表的日志同时出现第1条很好理解,只要保持幂等性,不管来多少条重复消息,最后处理的结果都一样。...

2020-01-31 10:17:40 424

原创 RocketMQ的Consumer详解之消息模式(集群和广播模式)

consumer.setMessageModel(MessageModel.CLUSTERING); public void setMessageModel(MessageModel messageModel) { this.messageModel = messageModel; }//// Source code recreated fr...

2020-01-31 10:05:57 1619

原创 RocketMQ的Consumer详解之push和pull模式(长轮询)

push和pull模式在RocketMQ中,消费者有两种模式,一种是push模式,另一种是pull模式。push模式:客户端与服务端建立连接后,当服务端有消息时,将消息推送到客户端。pull模式:客户端不断的轮询请求服务端,来获取新的消息。但在具体实现时,Push和Pull模式都是采用消费端主动拉取的方式,即consumer轮询从broker拉取消息。区别:Push方...

2020-01-31 09:57:53 2072 1

原创 RocketMQ的Producer详解之分布式事务消息(代码实现以及过程分析)

执行流程1. 发送方向 MQ 服务端发送消息。2. MQ Server 将消息持久化成功之后,向发送方 ACK 确认消息已经发送成功,此时消息为半消息。3. 发送方开始执行本地事务逻辑。4. 发送方根据本地事务执行结果向 MQ Server 提交二次确认(Commit 或是 Rollback),MQ Server 收到Commit 状态则将半消息标记为可投递,订阅方最终将收到该消息;...

2020-01-30 23:12:26 279

原创 RocketMQ的Producer详解之分布式事务消息(原理分析)

Half(Prepare) Message指的是暂不能投递的消息,发送方已经将消息成功发送到了 MQ 服务端,但是服务端未收到生产者对该消息的二次确认,此时该消息被标记成“暂不能投递”状态,处于该种状态下的消息即半消息。Message Status Check由于网络闪断、生产者应用重启等原因,导致某条事务消息的二次确认丢失,MQ 服务端通过扫描发现某条消息长期处于“半消息”时,...

2020-01-30 22:49:54 172

原创 RocketMQ的Producer详解之分布式事务消息(回顾事务)

回顾什么事务聊什么是事务,最经典的例子就是转账操作,用户A转账给用户B1000元的过程如下:用户A发起转账请求,用户A账户减去1000元用户B的账户增加1000元如果,用户A账户减去1000元后,出现了故障(如网络故障),那么需要将该操作回滚,用户A账户增加1000元。这就是事务。分布式事务随着项目越来越复杂,越来越服务化,就会导致系统间的事务问题,这个就是分布式事务问...

2020-01-30 22:33:25 136

原创 RocketMQ的Producer详解之顺序消息(代码实现)

package cn.learn.rocketmq.order;import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;import org.apache.rocketmq.client.consumer.listener.ConsumeOrderlyContext;import org.apache.rocket...

2020-01-30 22:24:50 282

原创 RocketMQ的Producer详解之顺序消息(原理)

顺序消息在某些业务中,consumer在消费消息时,是需要按照生产者发送消息的顺序进行消费的,比如在电商系统中,订单的消息,会有创建订单、订单支付、订单完成,如果消息的顺序发生改变,那么这样的消息就没有意义了。...

2020-01-30 21:58:15 202

原创 RocketMQ快速入门之消息过滤器(用户自定义属性)

默认配置下,不支持自定义属性,需要设置开启:#加入到broker的配置文件中enablePropertyFilter=truepackage cn.learn.rocketmq.filter;import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;import org.apache.rocketmq.cl...

2020-01-30 21:52:56 888

原创 RocketMQ快速入门之消息的消费

package cn.learn.rocketmq.consumer;import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;import org.apach...

2020-01-30 21:09:31 313

原创 RocketMQ快速入门之发送消息(异步)

package cn.learn.rocketmq.sendmsg;import org.apache.rocketmq.client.producer.DefaultMQProducer;import org.apache.rocketmq.client.producer.SendCallback;import org.apache.rocketmq.client.producer.S...

2020-01-30 20:32:09 385

原创 RocketMQ快速入门之发送消息(同步)

package cn.learn.rocketmq.sendmsg;import org.apache.rocketmq.client.producer.DefaultMQProducer;import org.apache.rocketmq.client.producer.SendResult;import org.apache.rocketmq.common.message.Mess...

2020-01-30 20:23:43 271

原创 RocketMQ快速入门之手动创建topic

package cn.learn.rocketmq.topic;import org.apache.rocketmq.client.producer.DefaultMQProducer;public class TopicDemo { public static void main(String[] args) throws Exception { Defaul...

2020-01-30 20:09:38 2681 2

原创 部署RocketMQ的管理工具

部署RocketMQ的管理工具RocketMQ提供了UI管理工具,名为rocketmq-console,项目地址:https://github.com/apache/rocketmq-externals/tree/master/rocketmq-console该工具支持docker以及非docker安装,这里我们选择使用docker安装#拉取镜像docker pull styleta...

2020-01-30 20:01:14 410

原创 使用ln -s解决库冲突的问题

ls -al |grep pythonrm -rf /usr/bin/pythonls -al |grep pythonln -s /usr/bin/python2.6 /usr/bin/pythonls -al |grep python1. linux系统下软连接ln -s的使用方法:软连建立:ln -s源文件软链接文件对源文件创建软连接文件,举例说明举...

2020-01-23 23:19:15 298

原创 通过docker的方式进行RocketMQ的安装

通过docker安装#拉取镜像docker pull foxiswho/rocketmq:serverdocker pull foxiswho/rocketmq:broker#创建nameserver容器docker create -p 9876:9876 --name rmqserver \-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -...

2020-01-23 21:51:54 205

原创 docker启动失败,报docker dead but pid file exists,处理方式

Linux服务器异常,自动重启了,发现再启动docker时,启动失败,没有任何提示;1. 查看docker的启动状态:sudo service docker status2. 查看状态发现提示:docker dead but pid file exists3. 处理方式: 需要手动删除docker运行的进程.pid 和 .sock文件进入: cd /var/r...

2020-01-23 21:15:17 656

原创 通过RocketMQ的java客户端api进行测试

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://m...

2020-01-23 20:57:05 331

原创 通过非docker的方式进行RocketMQ的安装

部署安装下载下载地址:https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.3.2/rocketmq-all-4.3.2-bin-release.zip版本使用目前最新版:4.3.2非Docker安装cd /haokeunzip rocketmq-all-4.3.2-bin-release.zipcd rocketmq...

2020-01-23 20:26:49 254

原创 RocketMQ的核心概念讲解

2020-01-23 20:01:16 130

原创 RocketMQ的历史发展

RocketMQ的历史发展阿里巴巴消息中间件起源 于 2001 年的五彩石项目, Notify 在这期间应运而生,用于交易核心消息的流转 。2010 年, B2B 开始大规模使用 ActiveMQ 作为消息内核,随着阿里业务 的快速发展,急需一款支持顺序消息,拥有海量消息堆积能力的消息中间件, MetaQ 1.0 在 2011 年诞生 。2012年, MetaQ已经发展到了3.0版本,...

2020-01-23 19:39:01 1503

原创 RocketMQ简介

RocketMQ简介Apache RocketMQ是一个采用Java语言开发的分布式的消息系统,由阿里巴巴团队开发,与2016年底贡献给Apache,成为了Apache的一个顶级项目。在阿里内部,RocketMQ 很好地服务了 集 团大大小小上千个应用,在每年的双十一当天,更有不可思议的万亿级消息通过 RocketMQ 流转(在 2017 年的双十一当天,整个阿里巴巴集团通过 Rocket...

2020-01-23 19:32:28 479

score.csv (score.csv)

load data local inpath '/export/servers/hivedatas/score.csv' into table score2 partition(year='2018',

2020-02-29

teacher.csv

load data local inpath '/export/servers/hivedatas/student.csv' overwrite into table student;

2020-02-29

student.csv

load data local inpath '/export/servers/hivedatas/student.csv' into table student;

2020-02-29

空空如也

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

TA关注的人

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