随笔分类 - 中间件服务架构
摘要:在介绍ActiveMQ-CP之前,先介绍下CMS(C++ Messaging Service),CMS是C++程序与消息中间件进行通信的一种标准接口,可以通过CMS接口与类似ActiveMQ这样的消息中间件进行通信,它能够让C++程序与消息中间件之间的交互更加优雅和便捷。 ActiceMQ-CPP是
阅读全文
摘要:1. 抽象TP传输层设计 在使用epoll实现实际的传输层之前,先设计一个抽象的传输层,这个抽象的传输层是传输层实现的接口层。 接口层中一共有以下几个通用的类或者接口: (1)Socket:通用的套接字层,用于封装本地套接字,同时会在析构时自动关闭套接字,避免资源泄漏 (2)DataSink:通用的
阅读全文
摘要:1. ActiveMQ简介 ActiveMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信。ActiveMQ使用Apache提供的授权,任何人都可以对其实现代码进行修改。 ActiveMQ的设计目标是提供标准的,面向消
阅读全文
摘要:1. 什么是序列化? 程序员在编写应用程序的时候往往需要将程序的某些数据存储在内存中,然后将其写入文件或是将其传输到网络中的另一台计算机上以实现通讯。这个将程序数据转换成能被存储并传输的格式的过程被称为序列化(serialization),而它的逆过程被称为反序列化(deserialization)
阅读全文
摘要:一、NoSQL的风生水起 1.1 后Web2.0时代的发展要求 随着互联网Web2.0网站的兴起,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的Web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题: (1)对数据库高并发读写的需求 网站要根据用户个性化信息来
阅读全文
摘要:1. 启动Memcache常用参数 2. 基本命令 五种基本 memcached 命令执行最简单的操作。这些命令和操作包括: 前三个命令是用于操作存储在 memcached 中的键值对的标准修改命令。它们都非常简单易用,且都使用如下 所示的语法: 3. telnet测试 (1)检测telnet-se
阅读全文
摘要:1. memcache简介 memcache是danga.com的一个项目,它是一款开源的高性能的分布式内存对象缓存系统,,最早是给LiveJournal提供服务的,后来逐渐被越来越多的大型网站所采用,用于在应用中减少对数据库的访问,提高应用的访问速度,并降低数据库的负载。 为了在内存中提供数据的高
阅读全文
摘要:一、ZooKeeper 的实现 1.1 ZooKeeper处理单点故障 我们知道可以通过ZooKeeper对分布式系统进行Master选举,来解决分布式系统的单点故障,如图所示。 那么我们继续分析一下,ZooKeeper通过Master选举来帮助分布式系统解决单点故障, 保证该系统中每时每刻只有一个
阅读全文
摘要:1. 内容思维导图 2. ZooKeeper提供了什么? 2.1 设计原则 (1)最终一致性 client不论连接到哪个Server,展示给它的都是同一个视图 (2)可靠性 具有简单、健壮、良好的性能,如果消息messgae被一台服务器接受,那么它将被所有的服务器接受 (3)实时性 Zookeepe
阅读全文
摘要:1. 内容思维导图 2. 分布式协调技术 在进程间通讯中为了防止资源的竞争和抢占,我们有很多方法(如原子函数,互斥锁,事件,信号等)去实现临界资源的有序访问。那么处于分布式的环境中时,我们又该如何去处理各服务之间的协调关系呢? 图中有三台机器,每台机器各跑一个应用程序。然后我们将这三台机器通过网络将
阅读全文
摘要:正所谓“工欲善其事,必先利其器”, 我们在实现通信设计任务的过程中需要一些基础工具来帮助我们搭建部分基础组件,这些基础工具包括消息队列,线程池,缓冲区抽象,事件循环和日志工具。接下来对这部分基础工具进行描述和实现。 1. 消息队列 1.1 linux消息队列应用 (1)成员函数和数据结构 (2)示例
阅读全文