-
Netty–Reactor模型
上一篇博客讲了Netty创建事件循环组对象。本篇博客对Netty的Reactor模型中事件循环组对象所起的具体作用做一个介绍。 Reactor模型 Reactor模型分类 根据Reactor 的数量和处理资源线程池的数量不同,有三种典型的实现。 单Reactor 单线程 单Reactor 多线程 多Reactor 多线程 单Reactor 单线程 上图就是单Reactor 单线程模型图 selec…- 44
- 0
-
Netty websocket
Network protocols WebSocket是一种高级网络协议,旨在提高Web应用程序的性能和响应能力。 我们将通过编写示例应用程序来探索Netty对它们的支持。 在第12章中,您将学习如何使用WebSocket实现双向数据传输,方法是构建一个聊天室服务器,其中多个浏览器客户端可以实时通信。 您还将看到如何通过检测客户端是否支持它,从应用程序中的HTTP切换到WebSocket协议。 我…- 11
- 0
-
Kafka、RabbitMQ、RocketMQ消息中间件的对比
引言 分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。现在开源的消息中间件有很多,目前对Kafka、RabbitMQ、RocketMQ这三个消息中间件做下对比分析。 --kafkaRocketMQRabbitMQ数据来源相关文章定位设计定位系统间的数据流管道,实时数据处理。 例如:常规的消息系统、网站活性跟踪,监控数据,日志收集、处理等非日志的可靠消息传输。 例如:订单…- 32
- 0
-
基于Kafka+Flink+Redis的电商大屏实时计算案例
前言 一年一度的双11又要到了,阿里的双11销量大屏可以说是一道特殊的风景线。 实时大屏(real-time dashboard)正在被越来越多的企业采用,用来及时呈现关键的数据指标。 并且在实际操作中,肯定也不会仅仅计算一两个维度。 由于Flink的“真·流式计算”这一特点,它比Spark Streaming要更适合大屏应用。 本文从笔者的实际工作经验抽象出简单的模型,并简要叙述计算流程(当然大…- 4
- 0
-
Strom+Kafka + redis实时计算单词出现频率的案例
案例要实现的目标 在Kafka的shell 客户端中输入内容,通过Storm实时去kafka中取数据并进行计算单词出现的次数,并且实时把这些数据信息存储到redis中。 代码编写 编写Pom文件,代码如下: 1<?xml version="1.0" encoding="UTF-8"?> 2<project xmlns="http:…- 7
- 0
-
Spark Streaming使用Kafka保证数据零丢失
spark streaming从1.2开始提供了数据的零丢失,想享受这个特性,需要满足如下条件: 1.数据输入需要可靠的sources和可靠的receivers 2.应用metadata必须通过应用driver checkpoint 3.WAL(write ahead log) 可靠的sources和receivers spark streaming可以通过多种方式作为数据sources(包括ka…- 10
- 0
-
Java使用RabbitMQ(五)–消息分发策略
消息分发策略 RabbitMQ默认的消息分发策略是公平分发(Fair dispatch),把消息轮流发给每个worker者。 这样有个问题:某个worker很忙的 时候,会累积大量的消息,导致异常、内存溢出等问题。 一个解决方案是:设置某一时间只给一个worker者发送一条消息,在没有收到ack消息回应时,不给发第二个。 1int prefetchCount = 1; 2channel.basic…- 19
- 0
-
DocKer中下部署rabbitmq性能集群
rabbitmq集群中,各个rabbitmq为对等节点,即每个节点均提供给客户端连接,进行消息的接收和发送。节点分为内存节点和磁盘节点,一般的,均应建立为磁盘节点,为了防止机器重启后的消息消失;这几个节点需要在同一个局域网内;这几个节点需要有相同的erlang cookie,否则不能正常通信。 环境版本 linux发行版本:centos linux 7 linux内核:Linux localhos…- 14
- 0
-
AMQP-RabbitMQ/4/路由模式
4. 路由模式 Routing 图示 个人理解 生产者定义Exchange,设置类型为direct。将消息发送给Exchange之前,为每条消息指定路由键 消费者定义队列Queue,并将队列与Exchange进行绑定,在绑定的时候需要告诉Exchange,当前这个Queue接受的路由键。 消息由Exchange发送给Queue时,消息的routingKey必须与该队列订阅的routingKey完全…- 66
- 0
-
基于Python语言使用RabbitMQ消息队列(六)
远程过程调用(RPC) 在第二节里我们学会了如何使用工作队列在多个工人中分布时间消耗性任务。 但如果我们想要运行存在于远程计算机上的方法并等待返回结果该如何去做呢?这就不太一样了,这种模式就是常说的远程过程调用(RPC)。 在本节我们会 在本节我们会使用RabbitMQ创建一个RPC系统:一个客户端和一个可扩展(scalable)的RPC服务。由于我们没什么真正的时间消耗型任务去分配,我们就创建一…- 5
- 0
-
Rabbitmq 延迟队列
延迟队列存储的对象是对应的延迟消息,所谓"延迟消息"是指当消息被发送以后,并不想让消费者立刻拿到消息,而是等待特定时间后,消费者才能拿到这个消息进行消费,延迟队列的使用场景有很多,比如: 1、在订单系统中,某个用户下单之后通常有30分钟的时间进行支付,如果 30 分钟之内没有支付成功,那么这个订单将进行取消,这时就可以使用延迟队列来处理这些订单了 2、用户希望通过手机远程遥控家…- 7
- 0
-
9. Dubbo原理解析-代理之服务引用
服务引用是服务的消费方向注册中心订阅服务提供方提供的服务地址后向服务提供方引用服务的过程。 服务的应用方在spring的配置实例如下: < dubbo:reference id="demoService" * interface="com.alibaba.dubbo.demo. DemoService"* /> 如上配置spring在容器启动的时…- 2
- 0
-
4. Dubbo原理解析-代理之接口定义
代理模式这里不再逻辑介绍,dubbo中有使用这种模式,如: dubbo服务的消费端获取的就是对远程服务的一个代理。Dubbo由代理工厂ProxyFactory对象创建代理对象 一:ProxyFactory的接口定义 @SPI( "javassist") public interface ProxyFactory { @Adaptive({Constants.PROXY_K…- 11
- 0
-
初识Dubbo 系列之9-Dubbo 负载均衡
负载均衡 (+) (#) 在集群负载均衡时,Dubbo提供了多种均衡策略,缺省为random随机调用。 1 可以自行扩展负载均衡策略,参见:负载均衡扩展 Random LoadBalance 随机,按权重设置随机概率。 在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重。 RoundRobin LoadBalance 轮循,按公约后的权重设置…- 1
- 0
-
Redis与Zookeeper实现分布式锁的区别
Redis实现分布式锁 1.根据lockKey区进行setnx(set not exist,如果key值为空,则正常设置,返回1,否则不会进行设置并返回0)操作,如果设置成功,表示已经获得锁,否则并没有获取锁。 2.如果没有获得锁,去Redis上拿到该key对应的值,在该key上我们存储一个时间戳(用毫秒表示,t1),为了避免死锁以及其他客户端占用该锁超过一定时间(5秒),使用该客户端当前时间戳,…- 8
- 0
-
redis实现SSO单点登录,集群,分布式锁
使用redis实现单点登录,一般情况下都是配合cookie的.将生成的唯一的token信息存储在cookie中,当发生多服务调用时,都会在cookie中读取到该值,再去redis中查询是否有该用户信息存在.如此实现单点登陆 一般在微服务架构中,SSO单点登陆会抽离出来作为一个单独的服务,来实现服务器集群下的 session共享问题. 为什么要使用redis 来解决sessi…- 14
- 0
-
docker微服务部署之:五、利用DockerMaven插件自动构建镜像
docker微服务部署之:四、安装docker、docker中安装mysql和jdk1.8、手动构建镜像、部署项目 在上一篇文章中,我们是手动构建镜像,即: 4.1.2、5.1.2、6.1.2中的将demo_xxx项目打包成app.jar 4.1.4、5.1.4、6.1.4中的: a:创建mydocker目录、上传app.jar至mydocker目录 b:执行docker build命令构建镜…- 6
- 0
-
Spring Cloud微服务技术栈(四):服务治理Spring Cloud Eureka部分源码分析
上一篇文章《Spring Cloud微服务技术栈(三):服务治理Spring Cloud Eureka核心元素分析》主要对Spring Cloud Eureka的三个核心元素(服务注册中心、服务提供者、服务消费者)进行了分析,熟悉了三者之间的通信关系,本篇文章将主要分析Spring Cloud Eureka的部分源码。 当我们搭建好Eureka Server服务注册中心并启动后,就可以继续启动服务…- 2
- 0
-
微服务分布式事务实战(五)准备数据库和创建第一个微服务
1)数据库准备 1在数据库中mysql 分别创建2个数据库forum1和forum2 2forum1 下创建表block 3forum2下创建表Theme 4 5 sql代码如下: 1 数据库1Forum1: 1CREATE DATABASE IF NOT EXISTS forum1; 2USE forum1; 3DROP TABLE IF EXISTS block; 4CREATE TABLE …- 0
- 0
-
ASP.NET Core微服务之基于EasyNetQ使用RabbitMQ消息队列
_Tip:_此篇已加入.NET Core微服务基础系列文章索引 一、消息队列与RabbitMQ 1.1 消息队列 “消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。消息被发送到队列中,“消息队列”是在消息的传输过程中保存消息的容器。 消息队列(Message Queue),是分布式系统中重要的组件,其通用的使用场景可以简单地描述为: 当…- 50
- 0
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!












