-
Spring Cloud构建微服务架构:消息驱动的微服务(入门)【Dalston版】
之前在写Spring Boot基础教程的时候写过一篇《Spring Boot中使用RabbitMQ》。在该文中,我们通过简单的配置和注解就能实现向RabbitMQ中生产和消费消息。实际上我们使用的对RabbitMQ的starter就是通过Spring Cloud Stream中对RabbitMQ的支持来实现的。下面我们就通过本文来了解一下Spring Cloud Stream。 Spring Cl…- 1
- 0
-
Spring Cloud构建微服务架构:分布式配置中心【Dalston版】
info: profile: default info: profile: dev org.springframework.cloud spring-cloud-config-server @EnableConfigServer @SpringBootApplication public class Application { public static void main(String[] ar…- 1
- 0
-
ASP.NET Core微服务之基于Consul实现服务治理(2)
Tip: 此篇已加入.NET Core微服务基础系列文章索引 上一篇发布之后,很多人点赞和评论,不胜惶恐,这一篇把上一篇没有弄到的东西补一下,也算是给各位前来询问的朋友的一些回复吧。 一、Consul服务注册之配置文件方式 1.1 重温Consul实验集群 这里我们有三个Consul Server节点,一个Consul Client节点,在Client节点上跑了两个ClientService实例,…- 3
- 0
-
Netty游戏服务器实战开发(6):Netty整合Zookeeper实现分布式服务发现与注册
1:Zookeeper基础 安装zookeeper。当然,很多时候我们会在Windows上开发,所以,我们需要在本地搭建一个zookeeper环境。方便开发过程中的测试。 首先我们去Apache上下载zookeeper。https://zookeeper.apache.org/ 下载下来后解压得到如下文件 打开conf里面的zoo_simple.cfg ,拷贝一份,重新命名为zoo.cfg修改如下…- 34
- 0
-
Netty源码分析第4章(pipeline)—->第2节: handler的添加
Netty源码分析第四章: pipeline 第二节: Handler的添加 添加handler, 我们以用户代码为例进行剖析: 1.childHandler(new ChannelInitializer<SocketChannel>() { 2 protected void initChannel(SocketChannel ch) throws Exception …- 7
- 0
-
Netty源码分析第2章(NioEventLoop)—->第6节: 执行selector操作
Netty源码分析第二章: NioEventLoop 第六节: 执行select操作 分析完了selector的创建和优化的过程, 这一小节分析select相关操作 跟到跟到NioEventLoop的run方法: 1protected void run() { for (;;) { try { switch (selectStrategy.calculateStrategy(selec…- 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原理系列之(三)replication机制(复制原理)和ISR机制(同步机制)
Kafka的高可靠性的保障来源于其健壮的副本(replication)策略。通过调节其副本相关参数, 可以使得Kafka在性能和可靠性之间运转的游刃有余。Kafka从0.8.x版本开始提供partition级别的复制, replication的数量可以在$KAFKA_HOME/config/server.properties中配置。 1default.replication.refactor 2 …- 112
- 0
-
RabbitMQ VS Apache Kafka (六)—— Kafka路由拓扑与消息模式
路由拓扑与消息模式 上一章我们介绍了有关RabbitMQ消息拓扑与路由模式,本章我们讨论Kafka的消息路由方式,我们将对比两者之间的不同。注意,接下来的对比将基于这样的一个上下文前提,应用是事件驱动架构而非数据处理作业流,尽管这两种类型的应用的区分界限并不是那么明朗。 第一个不同点在于对于Kafka来说,并没有重试和延迟消息模式。在RabbitMQ中,消息都是瞬时的,所以对于RabbitMQ来说…- 11
- 0
-
Kafka 中使用 Avro 序列化框架(二):使用 Twitter 的 Bijection 类库实现 avro 的序列化与反序列化
使用传统的 avro API 自定义序列化类和反序列化类比较麻烦,需要根据 schema 生成实体类,需要调用 avro 的 API 实现 对象到 byte[] 和 byte[] 到对象的转化,而那些方法看上去比较繁琐,幸运的是,Twitter 开源的类库 Bijection 对传统的 Avro API 进行了封装了和优化,让我们可以方便的实现以上操作。 1. 添加 Bijection 类库的依赖…- 9
- 0
-
Kafka的Leader的选举机制
卡夫卡的领袖是什么 首先卡夫卡会将接收到的消息分区(分区),每个主题(主题)的消息有不同的分区。这样一方面消息的存储就不会受到单一服务器存储空间大小的限制 ,另一方面消息的处理也可以在多个服务器上并行。 其次为了保证高可用,每个分区都会有一定数量的副本(复制品)。这样如果有部分服务器不可用,副本所在的服务器就会接替上来,保证应用的持续性。 但是,为了保证较高的处理效率,消息的读写都是在固定的一个副…- 62
- 0
-
Kafka实战-实时日志统计流程
1.概述 在《Kafka实战-简单示例》一文中给大家介绍来Kafka的简单示例,演示了如何编写Kafka的代码去生产数据和消费数据,今天给大家介绍如何去整合一个完整的项目,本篇博客我打算为大家介绍Flume+Kafka+Storm的实时日志统计,由于涉及的内容较多,这里先给大家梳理一个项目的运用这些技术的流程。下面是今天的内容目录: 项目流程 Flume Kafka Storm 下面开始今天的内容…- 3
- 0
-
Spring Boot整合Kafka
Kafka是一个分布式的、可分区的、可复制的消息系统,下面是Kafka的几个基本术语: Kafka将消息以topic为单位进行归纳; 将向Kafka topic发布消息的程序成为producers; 将预订topics并消费消息的程序成为consumer; Kafka以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个broker。 producers通过网络将消息发送到Kafka集群,集…- 17
- 0
-
C# 操作rabbitmq(二)
接着上一篇继续分析rabbitmq的使用,此篇介绍rabbitmq的publish/Subcribe 一、 Exchange rabbitmq建议消息的producer不要直接的把消息发送给queue,而是把消息发送给Exchange。 Exchange一边接收来自producer的消息,一边将消息push给queue。 rabbitmq提供了四种exchange type: direct :第三…- 1
- 0
-
AMQP-RabbitMQ/2/工作队列
2. 工作队列 Work queues Distributing tasks among workers 消息将发送给c1或者c2 个人理解 生产者定义Queue,并向该队列发送消息 多个消费者可以从指定的同一个Queue中读取消息。每条消息只会发送给其中某一个消费者。 生产者 1package com.futao.springmvcdemo.mq.rabbit.workqueue; 2 3imp…- 9
- 0
-
基于Python语言使用RabbitMQ消息队列(三)
发布/订阅 前面的教程中我们已经创建了一个工作队列。在一个工作队列背后的假设是每个任务恰好会传递给一个工人。在这一部分里我们会做一些完全不同的东西——我们会发送消息给多个消费者。这就是所谓的“发布/订阅”模式。 为了解释这种模式,我们将会构建一个简单的日志系统。它包含两个程序——第一个产生日志消息,第二个接收并把他们打印出来。 在我们的日志系统中,每一个接收程序的正在运行的拷贝都会获知消息,那样我…- 17
- 0
-
分布式Session的几种实现方式
一。分布式Session的几种实现方式 1.基于数据库的Session共享 2.基于NFS共享文件系统 3.基于memcached 的session,如何保证 memcached 本身的高可用性? 基于resin/tomcat web容器本身的session复制机制 基于TT/Redis 或 jbosscache 进行 session 共享。 基于cookie 进行session共享 或者是: 一…- 13
- 0
-
RabbitMQ基本概念
RabbitMQ基本概念 RabbitMQ简介 RabbitMQ的特点 RabbitMQ核心概念 Producer(生产者) 和 Consumer(消费者) Exchange(交换器) Queue(消息队列) Broker(消息中间件的服务节点) RabbitMQ简介 RabbitMQ是采用Erlang语言实现AMQP(Advanced Message Queuing Protocol)的消息中间…- 29
- 0
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!












