《Apache RocketMQ用户指南》之过滤消息示例

消息过滤示例

原文链接        译者:小村长

在大多数情况下,tag是一种简单而有用的设计,用于选择所需的信息。 例如:

[code lang=”java”]
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("CID_EXAMPLE");
consumer.subscribe("TOPIC", "TAGA || TAGB || TAGC");
[/code]

消费者将收到包含TAGA或TAGB或TAGB的消息. 但限制是一条消息只能有一个标签,而这对于复杂的情况可能无效。 在这种情况下,您可以使用SQL表达式筛选出消息.

阅读全文

《Apache RocketMQ用户指南》之批量消息示例

批量消息示例

原文链接        译者:小村长

 

为什么选择批量消息?

批量发送消息可提高单次发送消息的性能.

阅读全文

《Apache RocketMQ用户指南》之日志追加消息示例

日志追加型日志示例

原文链接        译者:小村长

RocketMQ logappender提供log4j appender,log4j2 appender和logback appender供业务使用,下面是配置示例.

log4j

当使用log4j属性配置文件时,config如下.

[code lang=”java”]
log4j.appender.mq=org.apache.rocketmq.logappender.log4j.RocketmqLog4jAppender
log4j.appender.mq.Tag=yourTag
log4j.appender.mq.Topic=yourLogTopic
log4j.appender.mq.ProducerGroup=yourLogGroup
log4j.appender.mq.NameServerAddress=yourRocketmqNameserverAddress
log4j.appender.mq.layout=org.apache.log4j.PatternLayout
log4j.appender.mq.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-4r [%t] (%F:%L) %-5p – %m%n
[/code]

阅读全文

《Apache RocketMQ用户指南》之日志追加消息示例

OpenMessaging Example

原文链接        译者:小村长

 

OpenMessaging,其中包括建立行业准则和消息传递,流式规范,为金融,电子商务,物联网和大数据领域提供通用框架。 设计原则是分布式异构环境中面向云,简单,灵活和独立于语言的设计原则。 符合这些规范将使在所有主要平台和操作系统上开发异构消息传递应用成为可能。

RocketMQ提供了OpenMessaging 0.1.0-alpha的部分实现,以下示例演示了如何基于OpenMessaging访问RocketMQ。

阅读全文

《Apache RocketMQ用户指南》之有序的消息示例

有序消息

原文链接      译者:小村长

RocketMQ使用FIFO队列提供有序消息.

以下示例演示发送/接收全局和分区有序消息。

阅读全文

《Apache RocketMQ用户指南》之简单消息示例

简单消息示例

原文链接        译者:小村长

 

通过三种方式来发送RocketMQ消息使用: 可靠的同步发送, 可靠的异步发送和单向传输。

这个页面举例说明了这三种消息发送方式. 根据示例找出最适合你的特定用例。

可靠的同步传输

应用:可靠的同步传输广泛应用于重要通知消息,短信通知,短信营销系统等..

阅读全文

《Apache RocketMQ用户指南》之广播消息示例

广播消息

原文链接        译者:小村长

什么是广播

广播是向所有用户发送消息。 如果您希望所有订阅者都能收到有关某个主题的消息,则广播是一个不错的选择。

阅读全文

《软件架构模式》-第四章 微服务框架模式(上)

原文地址  译者:克里斯托刘

微服务架构模式正在迅速成为行业中单一应用程序及面向服务架构的可行的解决方案。因为这个架构模式仍在不断发展,关于这种模式的定义和其实现方式还有很多困惑之处。本章将为您解释其关键概念和基础知识,以理解这种模式的优点以及是否适合您的应用程序。

模式描述

无论选择的拓扑或实施方式如何,有许多普遍的核心概念是适用于所有的该架构模式。第一个概念是独立部署单元。如图4-1所示,每个微服务架构的组件都部署为一个独立的单元,这达到了以下优点:部署简单(通过高效和流水交付管道)、可扩展性增加、以及高度的应用和组件在应用程序内的解耦。

阅读全文

《Thrift官方文档》Thrift 网络栈

Thrift 网络栈

下图是一个Thrift网络栈的简单描述

+-------------------------------------------+
| 服务器层                                  |
| (单线程由消息驱动)                        |
+-------------------------------------------+
| 处理层                                    |
| (由编译器自动生成的)                      |
+-------------------------------------------+
| 协议层                                    |
| (JSON格式可压缩)                          |
+-------------------------------------------+
| 传输层                                    |
| (TCP、HTTP协议)                           |
+-------------------------------------------+

阅读全文

Leader-Follower线程模型概述

一、前言

IO线程模型一直在演化,由最开始的单线程模型,到BIO方式的单线程接受请求线程池线程具体处理单个请求的读写事件,再到NIO的单线程接受请求线程池里面的单个线程可以处理不同请求的读写事件,一个字没有最快,只有更快。最近发现还有个Leader-follower线程模型,其的出现是为了解决单线程接受请求线程池线程处理请求下线程上下文切换以及线程间通信数据拷贝的开销,并且不需要维护一个队列。 阅读全文

《Apache Thrift官方文档》简介

Apache Thrift

最后修改时间: 2017-11-11

 

简介

Thrift是一个轻量级、语言无关的软件栈,它具有一套为RPC通信生成代码的机制。Thrift为数据的传输、序列化,以及应用层处理提供了干净的抽象。采用这种抽象栈,它的代码生成器仅使用一种简洁的定义语言作为输入,便能够生成跨编程语言的代码,以构建互操作的RPC客户端和服务器。

Apache Thrift层级架构

阅读全文

《RabbitMQ官方指南》安装指南

原文链接   翻译:xiezc

目录(其中的文章后续翻译):

  • Windows下安装
  • Debian / Ubuntu下安装
  • 基于RPM的Linux下安装
  • Mac OS X下安装
  • Homebrew安装
  • Windows(手动)下安装
  • 通用Unix安装
  • So​​laris下安装
  • EC2安装
  • 升级
  • Blue-green (一种安全部署应用的方法)
  • 支持的平台
  • 更新日志
  • Erlang版本
  • 签名软件包
  • Java客户端下载
  • .NET客户端下载
  • Erlang客户端下载
  • 社区插件
  • 快照

阅读全文

在Windows上安装RabbitMQ

原文链接    翻译:xiezc

  下载服务器

描述 下载
Windows系统安装程序(来自Bintray 的RabbitMQ的服务器-3.7.4.exe (签名)
Windows系统安装程序(来自GitHub 的RabbitMQ的服务器-3.7.4.exe (签名)

阅读全文

动手实现一个 LRU cache

前言

LRU 是 LeastRecentlyUsed 的简写,字面意思则是 最近最少使用。通常用于缓存的淘汰策略实现,由于缓存的内存非常宝贵,所以需要根据某种规则来剔除数据保证内存不被撑满。如常用的 Redis 就有以下几种策略:

策略 描述
volatile-lru 从已设置过期时间的数据集中挑选最近最少使用的数据淘汰
volatile-ttl 从已设置过期时间的数据集中挑选将要过期的数据淘汰
volatile-random 从已设置过期时间的数据集中任意选择数据淘汰
allkeys-lru 从所有数据集中挑选最近最少使用的数据淘汰
allkeys-random 从所有数据集中任意选择数据进行淘汰
no-envicition 禁止驱逐数据

摘抄自:github

阅读全文

《Thrift官方文档》Thrift支持的语言

Apache Thrift 支持语言

最后修改时间: 2018-03-06

Thrift支持多种编程语言,它具有一组引人注目的测试套件,展示了大量案例用法,这些案例包含了在不同语言、协议、传输器的数千种可能组合中的大多数。对每种语言,一般有一个Thrift所需的最低版本和支持类库,有些库是必需的、有些是可选的。下面的信息可以帮你评估能否在你的项目中使用Thrift。很明显,要维护这样一个矩阵是很复杂的,在某些情况下信息可能不准确。如果你发现有错误,请通过邮件列表告知我们。

阅读全文

return top