-
ASP.NET Core微服务之基于Ocelot实现API网关服务(1)
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一、啥是API网关? API 网关一般放到微服务的最前端,并且要让API 网关变成由应用所发起的每个请求的入口。这样就可以明显的简化客户端实现和微服务应用程序之间的沟通方式。以前的话,客户端不得不去请求微服务A(假设为Customers),然后再到微服务B(假设为Orders),然后是微服务C(假设为Invoices)。客户端需要去知道…- 11
- 0
-
Spring Cloud构建微服务架构:Hystrix监控面板【Dalston版】
在上一篇《服务容错保护(hystrix断路器)》的介绍中,我们提到断路器是根据一段时间窗内的请求情况来判断并操作断路器的打开和关闭状态的。而这些请求情况的指标信息都是由HystrixCommand和HystrixObservableCommand实例在执行过程中记录的重要度量信息,它们除了Hystrix断路器实现中使用之外,对于系统运维也有非常大的帮助。这些指标信息会以“滚动时间窗”与“桶”结合的…- 8
- 0
-
Netty源码分析第8章(高性能工具类FastThreadLocal和Recycler)—->第3节: recycler的使用和创建…
Netty源码分析第8章(高性能工具类FastThreadLocal和Recycler)---->第3节: recycler的使用和创建 Netty源码分析第八章: 高性能工具类FastThreadLocal和Recycler 第三节: recycler的使用和创建 ** ** 这一小节开始学习 recycler相关的知识 , recycler是 netty实现的一个轻量级对象回收站…- 6
- 0
-
Netty源码分析第5章(ByteBuf)—->第1节: AbstractByteBuf
Netty源码分析第五章: ByteBuf 概述: 熟悉Nio的小伙伴应该对jdk底层byteBuffer不会陌生, 也就是字节缓冲区, 主要用于对网络底层io进行读写, 当channel中有数据时, 将channel中的数据读取到字节缓冲区, 当要往对方写数据的时候, 将字节缓冲区的数据写到channel中 但是jdk的byteBuffer是使用起来有诸多…- 4
- 0
-
Netty源码分析第2章(NioEventLoop)—->第5节: 优化selector
Netty源码分析第二章: NioEventLoop ** ** 第五节: 优化selector 在剖析selector轮询之前, 我们先讲解一下selector的创建过程 回顾之前的小节, 在创建NioEventLoop中初始化了唯一绑定的selector: 1NioEventLoop(NioEventLoopGroup parent, Executor executor, Select…- 1
- 0
-
Netty源码分析第1章(Netty启动流程)—->第4节: 注册多路复用
Netty源码分析第一章:Netty启动流程 ** ** 第四节:注册多路复用 回顾下以上的小节 , 我们知道了 channel 的的创建和初始化过程 , 那么 channel 是如何注册到 selector 中的呢 ? 我们继续分析 回到上一小节的代码 : 1final ChannelFuture initAndRegister() { 2 Channel channel = null;…- 5
- 0
-
Mina、Netty、Twisted一起学(八):HTTP服务器
HTTP协议应该是目前使用最多的应用层协议了,用浏览器打开一个网站就是使用HTTP协议进行数据传输。 HTTP协议也是基于TCP协议,所以也有服务器和客户端。HTTP客户端一般是浏览器,当然还有可能是其他东西。HTTP服务器,也就是Web服务器,目前已经有很多成熟的产品,例如Apache HTTP Server、Tomcat、Nginx、IIS等。 本文的内容不是讲解如何使用以上的HTTP服务器,…- 4
- 0
-
Java NIO框架Netty教程 (十) Object对象编/解码
看到题目,有的同学可能会想,上回不是说过对象传递了吗?是的,只是在Java NIO框架Netty教程(八) Object对象传递中,我们只是介绍如何使用Netty提供的编/解码工具,完成对象的序列化。这节是想告诉你Netty具体是怎么做的,也许有的同学想自己完成序列化呢?况且,对象的序列化,随处可用:) 先看怎么编码。 view sourceprint? @Override protected O…- 4
- 0
-
用Netty实现的简单HTTP服务器
用Netty实现的一个简单的HTTP服务器,可以处理静态文件,例子中的注释也比较全。主要是对HTTP的理解,接下来的文章中我也会更新一些HTTP相关的文章以及对例子的进一步完善,由浅到深,记录一些我的学习过程! 1.Server 2.Pipeline 3.handler类 4.配置类- 8
- 0
-
RabbitMQ VS Apache Kafka (九)—— RabbitMQ集群的分区容错性与高可用性
本章,我们讨论有关RabbitMQ的容错性,消息一致性及高可用性。RabbitMQ可以作为集群节点来运行,因此RabbitMQ通常被归为分布式消息系统,对于分布式消息系统,我们的关注点通常是一致性与可用性。 我们为什么要讨论分布式系统的一致性与可用性,本质在于两者描述的是系统在失败的情况下表现如何。在实际应用中,网络连接失败、服务器宕机,硬盘损坏,服务器由于GC暂时不可用,网络连接丢失或速度慢,所…- 3
- 0
-
kafka原理系列之(二)partition的消费策略
1、topic和partition以及consumer关系 一个topic可以认为一个一类消息,每个topic将被分成多个partition,每个partition在存储层面是append log文件。任何发布到此partition的消息都会被追加到log文件的尾部,每条消息在文件中的位置称为offset(偏移量),offset为一个long型的数字,它唯一标记一条消息。每条消息都被append到…- 22
- 0
-
Kafka、RabbitMQ、RocketMQ等 消息中间件 介绍和对比
文章目录 1、前言 2、概念 2.1、MQ简介 2.2、MQ特点 2.2.1、先进先出 2.2.2、发布订阅 2.2.3、持久化 2.2.4、分布式 3、消息中间件性能究竟哪家强? 3.1、Kafka 3.2、RabbitMQ 3.3、RocketMQ 4、测试 4.1、测试目的 4.2、测试场景 4.2.1、Kafka 4.2.2、RocketMQ 4.2.3、RabbitMQ 4.3、测试结论…- 25
- 0
-
如何管理Spark Streaming消费Kafka的偏移量(三)
前面的文章已经介绍了在spark streaming集成kafka时,如何处理其偏移量的问题,由于spark streaming自带的checkpoint弊端非常明显,所以一些对数据一致性要求比较高的项目里面,不建议采用其自带的checkpoint来做故障恢复。 在spark streaming1.3之后的版本支持direct kafka stream,这种策略更加完善,放弃了原来使用Kafka的…- 7
- 0
-
Elasticsearch 与 Kafka 整合剖析
1.概述 目前,随着大数据的浪潮,Kafka 被越来越多的企业所认可,如今的Kafka已发展到0.10.x,其优秀的特性也带给我们解决实际业务的方案。对于数据分流来说,既可以分流到离线存储平台(HDFS),离线计算平台(Hive仓库),也可以分流实时流水计算(Storm,Spark)等,同样也可以分流到海量数据查询(HBase),或是及时查询(ElasticSearch)。而今天笔者给大家分享的就…- 4
- 0
-
虚函数与动态绑定的那点事
面向对象编程的概念 1)多态:简单理解就是多种形态,通过继承而相关联的类型,特别在运行的情况下,对象可能是基类也可能派生类类型 1)继承:能够对类型之间的关系建模,共享公共的东西,仅仅特化本质上不同的东西。 定义为virtual的函数是基类期待派生类重新定义的,基类不希望派生类继承的则定义为非虚函数,这样类就有虚函数与非虚函数之分 2)动态绑定:使程序使用继承层次中任意类型的对象,无需关心具体的类…- 7
- 0
-
Docker下RabbitMQ四部曲之四:高可用实战
本章是《Docker下RabbitMQ四部曲》系列的终篇,今天的我们一起来体验Rabbit’MQ集群的高可用能力,看看RabbitMQ集群中的部分节点宕机时,是否还能生产和消费消息; 实战概要 今天实战的步骤如下: 制作docker-compose.yml文件,为每个容器配置好参数; 启动所有容器,包括RabbitMQ集群、消息生产者的web应用、消息消费者的web应用; 逐个停止集群中的Rabb…- 12
- 0
-
.Net下RabbitMQ的使用(8) — 远程过程调用RPC
RPC是在计算中是一种常见的模式,是通常我要用消息队列来实现RPC有3个关键点: 服务的寻址 消息的接收 消息的关联 在RabbitMQ的.net客户端里,提供了2个类:SimpleRpcClient 和 SimpleRpcServer 来让我们方便的开发RPC应用。 因为RabbitMQ的RPC一定是基于队列的,所以在客户端和服务端都需要要一个各自的队列,客户端的队列用来接收服务回复的数据,…- 5
- 0
-
.Net下RabbitMQ的使用(3) — 竞争的消费者
在上一篇文章中,演示了一个发送者和一个消费者的情况。这一篇介绍一下多个消费者在同一个消息队列中获取消息的情况。 在有些应用当中,消费端接收到消息任务需要长时间的处理,如果等上一个消息处理完成以后再取下一个数据进行处理的话,势必会有一些延迟。在消息队列中的数据也会不断增多,延迟将越来越大。当然对于一个消费进程来说,在某些情况下可以起多个线程来处理,而在这里将介绍另一种处理方式,多个消费进程的情况…- 13
- 0
-
RabbitMQ消息队列(五):Routing 消息路由
上篇文章中,我们构建了一个简单的日志系统。接下来,我们将丰富它:能够使用不同的severity来监听不同等级的log。比如我们希望只有error的log才保存到磁盘上。 1. Bindings绑定 上篇文章中我们是这么做的绑定: 1channel.queue_bind(exchange=exchange_name, 2 queue=queue_name) 3 绑定其实就是关联了exchange和q…- 8
- 0
-
Ubuntu安装rabbitMq
Ubuntu安装rabbitMq 笔者ubuntu版本为Ubuntu 15.10,查看ubuntu当前版本命令:cat /etc/issue。 由于rabbitMq需要erlang语言的支持,在安装rabbitMq之前需要安装erlang,执行命令: 1sudo apt-get install erlang-nox 2 安装后检查是否安装成功 1erl 2 3 安装rabbit…- 1
- 0
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!














