-
Netty源码分析第2章(NioEventLoop)—->第6节: 执行select操作
Netty源码分析第二章: NioEventLoop ** ** 第六节: 执行select操作 分析完了selector的创建和优化的过程, 这一小节分析select相关操作 跟到跟到select操作的入口,NioEventLoop的run方法: 1protected void run() { 2 for (;;) { 3 try { 4 switch (selectStrategy.c…- 3
- 0
-
Netty源码分析第1章(Netty启动流程)—->第5节: 绑定端口
Netty源码分析第一章:Netty启动步骤 第五节:绑定端口 上一小节我们学习了channel注册在selector的步骤, 仅仅做了注册但并没有监听事件, 事件是如何监听的呢? 我们继续跟第一小节的最初的doBind()方法: 1private ChannelFuture doBind(final SocketAddress localAddress) { 2 //初始化并注册(1) …- 0
- 0
-
Netty In Action中文版 – 第二章:第一个Netty程序
Netty In Action中文版 - 第二章第一个Netty程序 本章介绍 获取Netty4最新版本 设置运行环境来构建和运行netty程序 创建一个基于Netty的服务器和客户端 拦截和处理异常 编写和运行Netty服务器和客户端 本章将简单介绍Netty的核心概念这个狠心概念就是学习Netty是如何拦截和处理异常对于刚开始学习netty的读者利用netty的异常拦截机制来调试程序问题很有帮…- 12
- 0
-
netty 自定义协议
netty 自定义协议 netty 是什么呢? 相信很多人都被人问过这个问题。如果快速准确的回复这个问题呢?网络编程框架,netty可以让你快速和简单的开发出一个高性能的网络应用。netty是一个网络编程框架。那netty又有什么框框呢?主要有二个框。 框1:客户和服务的启动 一切通讯都有收与发,所有的服务端和客户端都是这样的姿势启动。具体的参数可以看文档。 服务端 1 public void b…- 3
- 0
-
Java NIO框架Netty教程(六)-Java NIO Selector模式
看到标题,您可能觉得,这跟Netty有什么关系呢?确实,如果你完全是使用Netty的,那么可能你可以完全不需要了解Selector。但是,不得不提的是,Netty底层关于NIO的实现也是基于Java的Selector的,是对Selector的封装。所以,我个人认为理解好Selector对于使用和理解Netty都是很多有帮助的。当然,如果您确实不关心这些,只想会用Netty就可以了。那么下文,您可以…- 9
- 0
-
Netty之http协议开发
Netty HTTP协议开发应用: 由于Netty的HTTP协议栈是基于Netty的NIO通信框架开发的,因此Netty的HTTP协议也是异步非阻塞的。 HTTP请求消息: HTTP请求由三部分组成,具体如下: HTTP请求行 请求行以一个方法符开头,以空格分开,后面跟着请求的URI和协议的版本,格式为:Method Request-URI HTTP-Version CRLF。 其中Method表…- 9
- 0
-
基于Dubbo框架构建分布式服务
转自:http://shiyanjun.cn/archives/1075.html 很好的文章 Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配置就能够实现分布式服务调用,也就是说服务提供方(Provider)发布的服务可以天然就是集群服务,比如,…- 5
- 0
-
Netty websocket
Network protocols WebSocket是一种高级网络协议,旨在提高Web应用程序的性能和响应能力。 我们将通过编写示例应用程序来探索Netty对它们的支持。 在第12章中,您将学习如何使用WebSocket实现双向数据传输,方法是构建一个聊天室服务器,其中多个浏览器客户端可以实时通信。 您还将看到如何通过检测客户端是否支持它,从应用程序中的HTTP切换到WebSocket协议。 我…- 11
- 0
-
kafka原理系列之(四)ACK机制(数据可靠性和持久性保证)
1、kafka的ack机制的分类 1request.required.asks=0 2 3 当producer向leader发送数据时,可以通过request.required.acks参数来设置数据可靠性的级别: 0:这意味着producer无需等待来自broker的确认而继续发送下一批消息。这种情况下数据传输效率最高, 但是数据可靠性确是最低的。 1(默认):这意味着producer在ISR中…- 114
- 0
-
RabbitMQ VS Apache Kafka (七)—— RabbitMQ消息路由原语与路由保证
路由保证 RabbitMQ和Kafka都提供给了持续的消息路由保证,两者都提供了最多一次和最少一次的路由保证,此外,Kafka还提供了有限应用场景下的仅一次可靠性路由保证。首先,我们看下这三种路由保证的具体含义: 最多一次:一个消息最多被路由不超过一次,消息可能丢失。 最少一次:消息永远不会丢失,但同一个消息可能会被路由到一个消费者多次。 仅一次:消息路由的理想模式,一个消息只被路由一次。 说消息…- 5
- 0
-
Kafka 中使用 Avro 序列化组件(三):Confluent Schema Registry
1. schema 注册表 无论是使用传统的Avro API自定义序列化类和反序列化类还是使用Twitter的Bijection类库实现Avro的序列化与反序列化,这两种方法都有一个缺点:在每条Kafka记录里都嵌入了schema,这会让记录的大小成倍地增加。但是不管怎样,在读取记录时仍然需要用到整个 schema,所以要先找到 schema。有没有什么方法可以让数据共用一个schema? 我们遵…- 130
- 0
-
Kafka发送超过broker限定大小的消息时Client和Broker端各自会有什么异常?
前几天遇到一个bug,查看发送日志发现java.io.IOException: Broken pipe的错误,通过深入了解发现当kafka producer发送的消息体大于Broker配置的默认值时就会报这个异常。如果仅发送一次是不会报这个异常的,要连续发送才会报这个异常。 本博文记录一下当Kafka发送超过broker限定大小的消息时Client和Broker端各自会有什么异常。 Kafka B…- 16
- 0
-
Flume+kafka+spark streaming+Redis实时统计广告投放的pv,uv,click,cost
因为业务逻辑的修改,投放数据存入大数据集群中,因此,需要修改之前的业务逻辑,需要实时知道rtb投放的花费情况。 环境版本: spark: 2.11-2.4.0-cdh6.2.0 kafka: 2.1.0-cdh6.2.0 fluem: 1.9.0-cdh6.2.0 Flume配置 1a1.sources = r1 2 3a1.sinks = k1 4 5a1.channels = c1 6 7#s…- 73
- 0
-
Java使用RabbitMQ(二)–发送和接收信息
发送和接收信息 发送方: 1public class BaseTest2 { 2 public static String queueName="q1"; 3 4 public static ConnectionFactory factory; 5 public static Connection getConnection(String username,String pas…- 7
- 0
-
.Net下RabbitMQ的使用(9) — 在WCF下使用RabbitMQ
RabbitMQ .net客户端通过自定义的Binding和Transport Binding Element扩展了WCF,使之能够在AMQP协议上使用。在WCF中,Binding作为一系列Binding Elements的栈,控制了消息传输的大部分方面如安全,消息格式,事务等等。而Binding中的Transport Binding Element传输绑定元素,则指定了服务端和客户端之间的通信协…- 15
- 0
-
.Net下RabbitMQ的使用(5) — 持久化
消息的持久化是消息队列必备的功能之一。在这篇文章中,就介绍一下RabbitMQ的持久化机制,和它的使用。 队列的持久化 在前几篇的例子中,我们常常看到如下定义queue的方法: 1channel.QueueDeclare("Q1", false, false, false, null); 2 方法的第四的参数autoDelete,一般都会输入false。文档描述这个参数如果是t…- 5
- 0
-
基于Python语言使用RabbitMQ消息队列(四)
路由 在上一节我们构建了一个简单的日志系统。我们能够广播消息给很多接收者。 在本节我们将给它添加一些特性——我们让它只订阅所有消息的子集。例如,我们只把严重错误(critical error)导入到日志文件(存入磁盘空间),但仍然可以打印所有日志消息到控制台。 绑定 前面的例子中我们已经创建了绑定,像下面这样: 1channel.queue_bind(exchange=exchange_name,…- 7
- 0
-
RabbitMQ集群部署
一、搭建单节点的MQ 先到官网下载rabbitMQ安装包,由于我的系统是CentOS6.5 故下载CentOS6.x版本的 1yum install epel-release //安装epel依赖 2 3wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm //下载erlang安装包 4rpm -U…- 23
- 0
-
使用Spring Session和Redis解决分布式Session跨域共享问题
前言 对于分布式使用Nginx+Tomcat实现负载均衡,最常用的均衡算法有IP_Hash、轮训、根据权重、随机等。不管对于哪一种负载均衡算法,由于Nginx对不同的请求分发到某一个Tomcat,Tomcat在运行的时候分别是不同的容器里,因此会出现session不同步或者丢失的问题。 实际上实现Session共享的方案很多,其中一种常用的就是使用Tomcat、Jetty等服务器提供的Sessio…- 5
- 0
-
Mycat 分布式事务的实现
引言:Mycat已经成为了一个强大的开源分布式数据库中间件产品。面对企业应用的海量数据事务处理,是目前最好的开源解决方案。但是如果想让多台机器中的数据保存一致,比较常规的解决方法是引入“协调者”来统一调度所有节点的执行。 本文选自《分布式数据库架构及企业实践——基于Mycat中间件》。 随着并发量、数据量越来越大及业务已经细化到不能再按照业务划分,我们不得不使用分布式数据库提高系统的性能。在分布…- 55
- 0
-
24. Dubbo原理解析-编码解码之编码解码流程
这里把ExchangeCodec和DubboCodec放一起来讲解dubbo传输的底层协议组成以及它的编码解码过程。 传输协议 协议格式<header><bodydata> 协议头 :header 是16个字节的定长数据 = 2 //short类型的MAGIC = (short) 0xdabb 1 //一个字节的消息标志位,用来表示消息是request还是//r…- 10
- 0
-
8. Dubbo原理解析-代理之服务发布
服务发布是服务提供方向注册中注册服务过程,以便服务消费者从注册中心查阅并调用服务。 服务发布方在spring的配置文件中配置如下: <bean id="demoService"class="com.alibaba.dubbo.demo.provider.DemoServiceImpl" /> 上面是在spring中配置的服务的具体实现,是spri…- 9
- 0
-
3. Dubbo原理解析-Dubbo内核实现之动态编译
我们运行的java代码,一般都是编译之后的字节码。Dubbo为了实现基于spi思想的扩展特性,特别是能够灵活添加额外功能,对于扩展或者说是策略的选择这个叫做控制类也好设配类也好的类要能够动态生成。当然对应已知需求如Protocol, ProxyFactory他们的策略选择的设配类代码dubbo直接提供也无妨,但是dubbo作为一个高扩展性的框架,使得用户能够添加自己的需求,根据配置动态生成自己的设…- 9
- 0
-
初识Dubbo 系列之6-Dubbo 配置
配置 Xml配置 配置项说明 详细配置项,请参见:配置参考手册 (+) 1 API使用说明 如果不想使用Spring配置,而希望通过API的方式进行调用,请参见:API配置 (+) 1 配置使用说明 想知道如何使用配置,请参见:快速启动 (+) 1 示例: provider.xml 1<? 2 xml 3 version 4 = 5 "1.0" 6 encoding 7 …- 2
- 0
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!











