排序:
默认
按更新时间
按访问量

ASCH区块链防数据篡改的情景演示

背景:部署三个节点(A/B/C)的区块链,对节点A上的数据库直接进行修改,将用户Ⅰ的balance和u_balance由1000增加修改成2000,另外两个节点(B、C)上面的数据保持不变,仍然是1000。 数据篡改之后的现象:用户Ⅰ登陆节点A的系统,查看余额为2000;而登陆节点(B/C)的系...

2018-01-31 10:03:29

阅读数:460

评论数:0

如何保障微服务架构下的数据一致性

随着微服务架构的推广,越来越多的公司采用微服务架构来构建自己的业务平台。就像前边的文章说的,微服务架构为业务开发带来了诸多好处的同时,例如单一职责、独立开发部署、功能复用和系统容错等等,也带来一些问题。 例如上手难度变大,运维变得更复杂,模块之间的依赖关系更复杂,数据一致性难以保证,等等。但是办法...

2017-09-15 09:04:16

阅读数:4094

评论数:0

RocketMQ——其他注意事项

1 消息过滤的方式1、简单消息过滤。订阅时指定topic下面tags;2、高级消息过滤。2.1)Broker所在的机器会启动多个FilterServer过滤进程;2.2)Consumer启动后,会向FilterServer上传一个过滤的Java类;2.3)Consumer从FilterServer...

2017-08-11 09:23:12

阅读数:583

评论数:0

RocketMQ——Consumer篇:PULL模式下的消息消费(DefaultMQPullConsumer)

1 应用层的使用方式在应用层初始化DefaultMQPullConsumer类,然后调用该类的start方法启动Consumer;接下来的消费步骤如下:1、调用DefaultMQPullConsumer.fetchSubscribeMessageQueues(String topic)方法,根据t...

2017-08-11 09:20:13

阅读数:4001

评论数:0

RocketMQ——Consumer篇:PULL消费模式下的调度消费服务

与PUSH模式相比,PULL模式需要应用层不间断地进行拉取消息然后再执行消费处理,提高了应用层的编码复杂度,为了Pull方式的编程复杂度,RocketMQ提供了调度消费服务(MQPullConsumerScheduleService),在topic的订阅发送变化(初次订阅或距上次拉取消息超时)就触...

2017-08-11 09:12:20

阅读数:2067

评论数:0

RocketMQ——Consumer篇:PUSH模式下消费消息(顺序和并发两种)

1 接受并处理Broker返回的响应消息当发送拉取消息在Broker返回响应消息之后调用NettyRemotingAbstract.processMessageReceived(ChannelHandlerContext ctx, RemotingCommand msg)方法,大致逻辑如下:1、根...

2017-08-11 09:00:45

阅读数:1405

评论数:0

RocketMQ——Consumer篇:PUSH模式下的消息拉取(DefaultMQPushConsumer)

DefaultMQPushConsumerImpl中各个对象的主要功能如下:RebalancePushImpl:主要负责决定,当前的consumer应该从哪些Queue中消费消息;1)PullAPIWrapper:长连接,负责从broker处拉取消息,然后利用ConsumeMessageServi...

2017-08-11 08:48:26

阅读数:2581

评论数:1

RocketMQ——Consumer篇:PUSH模式下拉取消息服务的线程(PullMessageService)

只有在PUSH模式下才会使用PullMessageService服务线程,该线程主要是对pullRequestQueue:LinkedBlockingQueue<PullRequest>队列进行监测,处理该队列中的PullRequest请求对象;同时该线程也提供了两种拉取方式,分别是立...

2017-08-11 08:27:58

阅读数:632

评论数:0

RocketMQ——Consumer端自动地不间断地发起拉取消息的业务逻辑

Consumer端自动地不间断地发起拉取消息的业务逻辑

2017-08-11 08:23:34

阅读数:437

评论数:0

RocketMQ——Consumer篇:向Broker同步消费进度的定时任务

每隔5秒调用一次MQClientInstance.persistAllConsumerOffset()方法将消费进度向Broker同步。遍历MQClientInstance.consumerTable: ConcurrentHashMap变量。对于PushConsumer端和PullConsume...

2017-08-10 17:26:26

阅读数:1473

评论数:0

RocketMQ——Consumer篇:启动过程

RocketMQ提供了两种消费模式,PUSH和PULL,大多数场景使用的是PUSH模式,这两种模式分别对应的是DefaultMQPushConsumer类和DefaultMQPullConsumer类。PUSH模式实际上在内部还是使用的PULL方式实现的,通过PULL不断地轮询Broker获取消息...

2017-08-09 09:11:17

阅读数:3664

评论数:0

RocketMQ——Producer篇:其他功能介绍

1 向Broker发送心跳消息1、初始化HeartbeatData对象,将该Producer或Consumer的ClientID赋值给HeartbeatData对象的clientID变量;2、遍历MQClientInstance.consumerTable: ConcurrentHashMap&...

2017-08-09 09:10:05

阅读数:662

评论数:0

RocketMQ——客户端篇:Producer/Consumer的实例对象

调用MQClientInstance.start方法启动MQClientInstance对象;大致逻辑如下:1、检查MQClientInstance.ServiceState的状态(初始化状态为ServiceState.CREATE_JUST);只有状态为CREATE_JUST时才启动该Produ...

2017-08-09 09:08:18

阅读数:865

评论数:0

RocketMQ——Producer篇:启动过程

在应用层初始化DefaultMQProducer的过程中,以Producer名称或者RPCHook的任一个或两个作为参数初始化DefaultMQProducer对象,内部以这些参数初始化了DefaultMQProducerImpl对象,其中,RPCHook是接口,由业务层来实现doBeforeRe...

2017-08-09 09:06:51

阅读数:1348

评论数:0

RocketMQ——从NameServer更新客户端订阅的topic路由信息

由Producer或Consumer端调用MQClientInstance. updateTopicRouteInfoFromNameServer()方法的目的主要有:1)从NameServer获取该客户端订阅的每个topic的相关信息(包括每个topic对应的Broker信息和topic配置信息...

2017-08-09 09:03:54

阅读数:244

评论数:0

RocketMQ——Producer篇:发送事务消息

该事务消息是指Producer端的业务逻辑处理与向MQ发送消息事件是在同一个事务里面,即这两件事件要么同时成功要么同时失败。 可以解决如下类似场景的问题:A用户和B用户的账户体系不在同一台服务器上面,现在A用户向B用户转账100元,为了提高执行效率,就采用消息队列的方式实现异步处理。大致逻辑是A...

2017-08-09 08:56:43

阅读数:2628

评论数:0

RocketMQ——Producer篇:发送顺序消息

顺序消息主要是指局部顺序,即生产者通过将某一类消息发送至同一个队列来实现。与发生普通消息相比,在发送顺序消息时要对同一类型的消息选择同一个队列,即同一个MessageQueue对象。 目前RocketMQ定义了选择MessageQueue对象的接口MessageQueueSelector,里面有...

2017-08-09 08:56:05

阅读数:749

评论数:0

RocketMQ——Producer篇:发送定时消息

目前只支持固定精度级别的定时消息,服务器按照1-N定义了如下级别: “1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h”;若要发送定时消息,在应用层初始化Message消息对象之后,调用Message.setDelayTimeLe...

2017-08-09 08:55:29

阅读数:2354

评论数:0

RocketMQ——Producer篇:发送普通消息

以DefaultMQProducer.send(Message msg)方法为例,讲解Producer消息的发送逻辑,该方法最终调用DefaultMQProducerImpl.sendDefaultImpl(Message msg, CommunicationMode communicationM...

2017-08-09 08:53:54

阅读数:1839

评论数:0

RocketMQ——Broker篇

1 Broker的初始化过程调用BrokerController对象的initialize方法进行初始化工作。大致逻辑如下:1、加载topics.json、consumerOffset.json、subscriptionGroup.json文件,分别将各文件的数据存入TopicConfigMan...

2017-08-09 08:47:34

阅读数:2581

评论数:4

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