分布式消息系统
文章平均质量分 69
快乐的霖霖
一个人默默的奋斗者
展开
-
libeasy网络框架简介
libeasy网络框架简介原创 2014-08-12 15:46:47 · 8076 阅读 · 1 评论 -
libev ev_io源码分析
libev ev_io源码分析1. ev_watcher和ev_loopev_watcher:libev中所有事件的基础类型ev_watcher,所有的事件都可以通过(W)watcher转换成ev_watcher,大写的W在libev定义的是ev_watcher *。抽象出ev_watcher作用是所有的watcher都可以共用ev_start、ev_stop函原创 2015-10-14 22:42:38 · 1682 阅读 · 0 评论 -
基于go+protobuf实现的多种持久化方案的mq框架:kiteq
基于go+protobuf实现的多种持久化方案的mq框架:kiteq简介* 基于zk维护发送方、订阅方、broker订阅发送关系、支持水平、垂直方面的扩展* 基于与topic以及第二级messageType订阅消息* 基于mysql、文件存储方式多重持久层消息存储* 保证可靠异步投递* 支持两阶段提交分布式事务工程结构kiteq/原创 2015-03-17 14:44:55 · 2311 阅读 · 0 评论 -
RPC调用的流程
RPC调用的流程 要让网络通信细节对使用者透明,我们自然需要对通信细节进行封装,我们先看下一个RPC调用的流程:1)服务消费方(client)调用以本地调用方式调用服务;2)client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;3)client stub找到服务地址,并将消息发送到服务端;4)server stub收到消息后原创 2016-07-03 15:33:55 · 2123 阅读 · 0 评论 -
读《携程异步消息系统实践》之总结
读《携程异步消息系统实践》之总结 消息系统: 批量,insertOnly, 索引 消息投递: Partition Stick, 写入事件截获,预期, Long polling 集群管理: Lease原创 2016-06-18 00:38:01 · 1146 阅读 · 0 评论 -
phxrpc解析
phxrpc解析 phxrpc是腾讯微信开源的一个简单的rpc框架,总体来说实现的比较简单。 实现的功能有: 使用Protobuf作为IDL用于描述RPC接口以及通信数据结构。 基于Protobuf文件自动生成Client以及Server接口,用于Client的构建,以及Server的实现。 半同步半异步模式,采用独原创 2016-11-27 11:37:10 · 2862 阅读 · 0 评论 -
协程实现的基础与方式
协程实现的基础摘录: http://tech.uc.cn/?p=1055#more-10551. 寄存器%ebp和%esp 一直对寄存器ESP和EBP的概念总是有些混淆,查看定义ESP是栈顶指针,EBP是存取堆栈指针。还是不能很透彻理解。之后借于一段汇编代码,总算是对两者有个比较清晰的理解。下面是按调用约定__stdcall 调用函数test(int原创 2015-09-29 11:08:05 · 1291 阅读 · 0 评论 -
协程库libco
协程库libcolibco是微信后台大规模使用的c/c++协程库,2013年至今稳定运行在微信后台的数万台机器上。libco在2013年的时候作为腾讯六大开源项目首次开源,最近做了一次较大的更新。libco支持后台敏捷的同步风格编程模式,同时提供系统的高并发能力。libco支持的特性支持CGI框架,轻松构建web服务(New);支持gethost原创 2016-11-22 00:54:08 · 4489 阅读 · 0 评论 -
协程的理解
协程的理解什么是协程协程是在线程之上由“用户”构建的并发单元,对OS来说无感知,协程的切换由用户自己管理和调度。(这里的用户是相较于内核而言的,一些通用库这里也理解为用户) C/C++怎么实现协程作为一个C++后台开发,我知道像go, lua之类的语言在语言层面上提供了协程的api,但是我比较关心C++下要怎么实现这一点,下面的讨论都是从C/C+原创 2016-11-27 23:11:11 · 1473 阅读 · 1 评论 -
RPC-client异步回调原理
RPC-client异步回调原理见下面的设计图:所谓异步回调,在得到结果之前,不会处于阻塞状态,理论上任何时间都没有任何线程处于阻塞状态,因此异步回调的模型,理论上只需要很少的工作线程与服务连接就能够达到很高的吞吐量。 上图中左边的框框,是少量工作线程(少数几个就行了)进行调用与回调。中间粉色的框框,代表了RPC-client组件。右转载 2017-06-03 19:48:27 · 6443 阅读 · 0 评论 -
Libev源码分析—常用watcher
Libev源码分析—常用watcher在上一篇文章里,我们分析了libev整体设计思想和主循环的工作原理,也提到了watcher是衔接开发者代码的主要入口。watcher与开发者最接近,也与具体事件处理逻辑最接近。所以,watcher的具体实现,与性能的关系也相当密切。下面,我们就来分析一下,libev中常用的几种watcher的设计与实现。ev_ioev_io原创 2015-10-14 22:07:07 · 1509 阅读 · 0 评论 -
利用Libev写一个简单的client和server程序
利用Libev写一个简单的client和server程序common.h程序:#ifndef _COMMON_H_#define _COMMON_H_#include #include #include #include #include #include #include #include #include #include namespace com原创 2015-11-08 23:09:29 · 4539 阅读 · 0 评论 -
新浪微博新兵训练营系列课程——平台RPC框架介绍
新浪微博新兵训练营系列课程——平台RPC框架介绍课程大纲1、RPC简介1.1 什么是RPC1.2 RPC与其他远程调用方式比较2、Motan RPC框架2.1 RPC服务框架2.2 Motan RPC框架中的角色2.3 Motan RPC的调用流程3、Motan RPC中各角色介绍3.1 注册中心3.2 RPC Service3.3 RP转载 2015-08-15 18:41:49 · 1582 阅读 · 0 评论 -
Google Protobuf自动反射功能
Google Protobuf自动反射功能原创 2014-08-15 10:15:47 · 4792 阅读 · 0 评论 -
Go语言的RPC介绍(含Protobuf-RPC)
Go语言的RPC介绍(含Protobuf-RPC)参考下面网址http://my.oschina.net/chai2010/blog/191484#OSC_h2_3原创 2014-08-20 11:25:37 · 1114 阅读 · 0 评论 -
Libev源码分析 -- 整体设计
Libev源码分析 -- 整体设计转载 2014-08-29 14:46:28 · 1327 阅读 · 0 评论 -
Protocol Buffers 中实现ZeroCopyStream 来减少内存拷贝
Protocol Buffers 中实现ZeroCopyStream 来减少内存拷贝转载 2014-09-23 11:47:28 · 5269 阅读 · 0 评论 -
基于protobuf的RPC实现
基于protobuf的RPC实现google protobuf只负责消息的打包和解包,并不包含RPC的实现,但其包含了RPC的定义。假设有下面的RPC定义:service MyService { rpc Echo(EchoReqMsg) returns(EchoRespMsg) }那么要实现这个RPC需要最少做哪些事?总结起来需要完成以下几原创 2014-11-08 22:53:41 · 2011 阅读 · 0 评论 -
Libev事件库源码阅读笔记
Libev事件库源码阅读笔记IntroLibev是一个基于Reactor模式的事件库,效率较高(Benchmark)并且代码精简(4.15版本8000多行),是学习事件驱动编程的很好的资源。本文不会介绍Reactor模式,也不会介绍Libev的API,主要内容是我学习libev后的一些总结,介绍了Livev的设计方法和实现方法,并对一部分核心代码进行了注解。转载 2015-02-01 10:45:52 · 988 阅读 · 0 评论 -
大规模分布式消息中间件简介
大规模分布式消息中间件简介当前各种 RPC 中间件技术已经广泛应用于各个领域。其中,服务器之间消息通讯这种功能广泛应用于这些中间件中,于是,将这种面向消息的中间件( Message Oriented Middleware , MOM )抽象出来,形成通用的消息中间件,成为业内主流。目前消息中间件的标准主要有: JMS 和 AMQP 。实现则是百花齐放。消息中间件从功能上需要解决原创 2015-02-26 18:18:51 · 1634 阅读 · 0 评论 -
Google gRPC 简介
Google gRPC 简介1. 简介 Google 刚刚开源了grpc, 一个基于HTTP2 和 Protobuf 的RPC 实现。 其中github地址: https://github.com/grpc/grpc Protobuf 本身虽然提供了RPC 的定义语法,但是一直以来,Google 只开源了Protob原创 2015-03-03 17:30:16 · 4068 阅读 · 0 评论 -
使用 libevent 和 libev 提高网络应用性能——I/O模型演进变化史
使用 libevent 和 libev 提高网络应用性能——I/O模型演进变化史 看到一篇非常好的介绍I/O模型演变的博文。 请参见链接:http://blog.csdn.net/hguisu/article/details/38638183转载 2015-07-12 23:44:56 · 817 阅读 · 0 评论 -
PhxQueue:高可用、高可靠、高性能的分布式队列
PhxQueue:高可用、高可靠、高性能的分布式队列1. 整体架构2. 详细说明PhxQueue 由下列5个模块组成。Store - 队列存储Store 作为队列存储,引入了 PhxPaxos 库,以 Paxos 协议作副本同步。只要多数派节点正常工作及互联,即可提供线性一致性读写服务。为了提高数据可靠性,同步刷盘作为默认转载 2017-09-18 23:48:44 · 4487 阅读 · 0 评论