- 博客(38)
- 收藏
- 关注
原创 【RocketMQ】消息过滤-SQL过滤
要实现SQL过滤,需要先修改消息队列的配置文件在broker的配置文件 添加enablePropertyFilter=true生产者要在消息中添加属性:message.putUserProperty("id",i+"");public class Producer { public static void main(String[] args) throws MQClien...
2020-03-18 12:41:17
1136
原创 【RocketMQ】消息过滤-TAG标签过滤
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;import org.apache.rocketmq.client.consumer.listener.C...
2020-03-18 12:35:26
3087
原创 【RocketMQ】顺序消费消息
Rocket消息的顺序消费是局部的顺序消费举个例子: 同一笔订单,需要按照顺序处理 1.下单 2.支付 3.发货 4.确认收货 5.评价 但是不同的订单,则不需要按照顺序处理,不需要第一笔订单评价完成,才能处理第二笔订单的下单有两点一个MQ节点一般有4个队列,生产者需要将同一个订单发送到的所有信息(下单...
2020-03-18 12:33:24
396
原创 【RocketMQ】消息消费-广播
广播:同一条消息,所有监听该消息的消费者都要去消费该消息public class Consumer { public static void main(String[] args) throws Exception { DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("group1"); ...
2020-03-18 12:20:57
384
原创 【RocketMQ】消息消费-负载均衡
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;import org.apache.rocketmq.client.consumer.listener.Me...
2020-03-17 11:16:42
377
原创 【RocketMQ】发送事务消息
发送事务消息的实现要使用TransactionMQProducer作为消息的生产者, 生产者需要注册TransactionListener executeLocalTransaction 是执行本地事务的方法 checkLocalTransaction 是回查事务状态的 发送消息的时候使用sendMessageInTransaction()方法事务消息的流程生产者发送...
2020-03-17 11:10:09
600
原创 【RocketMQ】发送批量消息
producer.send()方法支持Collection<Message>类型的参数import org.apache.rocketmq.client.exception.MQBrokerException;import org.apache.rocketmq.client.exception.MQClientException;import org.apache.rock...
2020-03-17 10:56:52
654
原创 【RocketMQ】发送延迟消息
和发送同步消息一样,只不过消息要设置下延迟时间级别import org.apache.rocketmq.client.exception.MQBrokerException;import org.apache.rocketmq.client.exception.MQClientException;import org.apache.rocketmq.client.producer.Def...
2020-03-17 10:55:03
440
原创 【RocketMQ】发送异步消息
import org.apache.rocketmq.client.producer.DefaultMQProducer;import org.apache.rocketmq.client.producer.SendCallback;import org.apache.rocketmq.client.producer.SendResult;import org.apache.rocketm...
2020-03-17 10:52:50
450
原创 【RocketMQ】发送单向消息
import org.apache.rocketmq.client.producer.DefaultMQProducer;import org.apache.rocketmq.common.message.Message;import java.util.concurrent.TimeUnit;/** * 发送单向消息 */public class OneWayProducer {...
2020-03-17 10:13:08
437
原创 【RocketMQ】发送同步消息
import org.apache.rocketmq.client.producer.DefaultMQProducer;import org.apache.rocketmq.client.producer.SendResult;import org.apache.rocketmq.common.message.Message;/** * 发送同步消息 */public class...
2020-03-17 10:10:16
639
原创 【RocketMQ】 集群搭建
一、rocketMQ集群架构图(多住多从)producer:消息发送者consumer:消息消费者Broker:存储和传输信息NameServer:管理broker,consumer,producer主从同步方式 同步(brokerRole=SYNC_MASTER) ...
2020-03-17 00:53:32
296
原创 【RocketMQ】 消息队列作用以及带来的问题
消息队列的作用流量削峰 应用解耦 数据分发带来的问题消息的重复消费 消息丢失 消息的消费顺序 一致性问题。 B,C,D三台服务器消费同一个消息,BC成功,D失败...
2020-03-17 00:15:04
368
原创 RocketMQ
Rocketmq 集群搭建 同步主从 异步主从 发送消息 发送同步消息 发送异步消息 发送单向消息 发送延迟消息 发送批量消息 发送事务消息 消息消费 顺序消费消息 消息过滤 TAG标签过滤 ...
2020-03-17 00:04:49
223
原创 【Java基础】cglib代理
一个实现类public class App { public static void main(String[] args) { SomeBussiness someBussiness = (SomeBussiness)Interceptor.createProxy(SomeBussiness.class); someBussiness.doSomet...
2020-02-19 14:40:14
148
原创 【Java基础】JDK动态代理
一个接口public interface SomeInterface { void doSomething();}一个实现类public class SomeImpl implements SomeInterface { @Override public void doSomething() { System.out.println("So...
2020-02-19 14:25:23
183
原创 compareAndSwap理解
java.util.concurrent.atomic.AtomicInteger#compareAndSetpublic final boolean compareAndSet(int expect, int update) { return unsafe.compareAndSwapInt(this, valueOffset, expect, update);}stati...
2020-02-19 14:02:40
891
原创 【java基础】 callable分析
首先看一个demopublic class App { public static void main(String[] args) throws Exception { //创建一个Callable的对象 Callable<Integer> callable = () -> { int i=0; ...
2020-02-19 13:37:56
297
原创 【java基础】 threadLocal源码分析
先看下面一段代码public class App { private static final ThreadLocal<Integer> tnum = ThreadLocal.withInitial(()->0); private static Integer num =0; public static void main(String[] arg...
2020-02-19 12:41:38
275
原创 mybatis 插件PageHelper源码分析(结合springboot)
首先看下com\github\pagehelper\pagehelper-spring-boot-autoconfigure\1.2.10\pagehelper-spring-boot-autoconfigure-1.2.10.jar!\META-INF\spring.factories这个文件,这个是springboot自动配置,指向一个配置类# Auto Configureorg....
2020-02-18 20:51:40
330
原创 mybatis BaseExecutor的query()方法
上一篇说到CachingExecutor的缓存管理,这一篇的话看下BaseExecutor的query()方法
2020-02-18 18:15:44
1575
原创 mybatis CachingExecutor的query()方法
org.apache.ibatis.executor.CachingExecutor#query() 先从MappedStatement中获取缓存对象(在xml文件中配置的cache的对象,这里即EhcacheCache类的对象)<cache type="org.mybatis.caches.ehcache.EhcacheCache"></cache>...
2020-02-18 13:45:31
896
原创 mybatis 执行接口的方法
看下执行下面这行代码的时候,都发生了什么User user = userMapper.getById(1L);在上一篇中,获取mapper其实是以org.apache.ibatis.binding.MapperProxy为InvocationHandler创建代理对象。那么执行接口的方法的时候,也应该是执行MapperProxy的invoke方法org.apache.ibatis....
2020-02-18 13:01:53
427
原创 mybatis 获取对应的mapper
看下执行下面这行代码的时候,都发生了什么UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
2020-02-15 12:48:29
680
原创 mybatis 创建Sqlsession
看下执行下面这行代码的时候,都发生了什么SqlSession sqlSession = sqlSessionFactory.openSession();第一步:org.apache.ibatis.session.defaults.DefaultSqlSessionFactory#openSession()public SqlSession openSession() { r...
2020-02-14 21:25:06
1538
原创 mybatis源码分析
如下代码所示。大概分为这么几步创建SqlSessionFactory 打开SqlSession 获取对应的mapper 执行对应的方法 关闭SqlSessionpublic class App { public static void main(String[] args) throws IOException { String resource = "m...
2020-02-14 20:46:55
170
原创 sping AOP四 advisorsCache的初始化
上一篇文章中讲到:buildAspectJAdvisors() 。从advisorsCache中获取对应的Advisor所以这次再看下advisorsCache.debug的过程比较艰辛,就不再重复debug的步骤了,直接说获取初始化的过程吧1.首先是,创建Bean的过程在refresh();方法中开始执行finishBeanFactoryInitialization();时,开始...
2020-02-12 13:21:09
272
原创 sping AOP三 获取代理对象的advice和advisor
1.AnnotationAwareAspectJAutoProxyCreator作为一个BeanPostProcessor,在postProcessAfterInitialization()中时执行了AbstractAutoProxyCreator.wrapIfNecessary();2.在执行wrapIfNecessary的时候,创建代理对象之前,首先要通过getAdvicesAndAdvi...
2020-02-11 13:56:44
467
原创 sping AOP二 代理对象创建 AnnotationAwareAspectJAutoProxyCreator分析
先看下类图吧继承抽象AbstractAutoProxyCreator,其中对BeanPostProcessor.postProcessAfterInitialization()的实现也是由AbstractAutoProxyCreator来实现的。那下面就简单看下这个方法的实现吧AbstractAutoProxyCreator.postProcessAfterInitialization...
2020-02-10 16:16:34
148
原创 sping AOP一 动态代理对象创建时机
SomeBusiness.javapackage com.springl.aop;public class SomeBusiness { public void dealSomeBusiness(Long userId){ System.out.println("userId"+userId+"--access------>SomeBusiness----...
2020-02-10 15:29:49
770
原创 sping @Bean创建对象六 @Autowired注解的处理
SomeService.javapackage com.springl.autowired;public class SomeService { public void doSomething(){ System.out.println("SomeService------>doSomething"); }}SomeController.ja...
2020-02-09 16:03:11
316
原创 sping @Bean创建对象五 init方法的执行以及其初始化
//执行BeanPostProcessor.postProcessBeforeInitialization()wrappedBean = applyBeanPostProcessorsBeforeInitialization(wrappedBean, beanName);//执行init方法invokeInitMethods...
2020-02-09 14:29:25
731
原创 sping @Bean创建对象四 BeanPostProcessor方法的执行以及BeanPostProcessor的初始化
继续上一篇说创建对象之后会执行initializeBean(beanName, exposedObject, mbd); 具体内容如下 //执行BeanPostProcessor.postProcessBeforeInitialization()wrappedBean = applyBeanPostProcessorsBeforeInitialization(...
2020-02-09 13:31:05
502
原创 sping @Bean创建对象三 BeanPostProcessor和init方法
针对第一篇记录的扩展--->BeanPostProcessor以及init新增:SomePostProcessor.javapackage com.springl.bean;import org.springframework.beans.BeansException;import org.springframework.beans.factory.config.BeanPo...
2020-02-08 16:07:41
404
原创 sping @Bean创建对象二 类定义信息的注册
13.执行.instantiateUsingFactoryMethod(beanName, mbd, explicitArgs);------->ConstructorResolver//执行到这里,//factoryMethodToUse来自于类定义信息 //factoryMethodToUse =(Method)mbd.resolvedConstructorOrFacto...
2020-02-08 15:36:39
339
原创 sping @Bean创建对象一 对象的实例化
一个简单的JavaBean==>Something.Javapackage com.springl.bean;import java.util.Date;public class Something { private Integer id; private Date createTime; private Date updateTime; ...
2020-02-08 12:11:42
559
转载 创建docker-machine
1.看下docker的版本和win10的版本。之前遇到一些问题,创建的时候一直停在了waiting for hos to start。看到以下内容的时候我就换了台电脑。也有可能不是这个问题。For example, if you are trying to run Docker 18.09, then you need Windows 10 version 1809 or higher....
2019-05-26 10:52:59
654
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人