0%

简介

Apache Kakfa 是一个分布式流处理平台,既可以当做普通的消息中间件用于消息发布订阅,也可以存储并处理流式数据,其分布式设计使得其有较好的容错性,水平拓展性等。 通常可以用于当做消息订阅发布用于业务系统中,或者用于大数据方向,接受存储大量的流式数据并和对应的大数据处理框架结合使用,eg. Kafka + Samza

从物理部署层面来讲,其主要有如下几个模块:

  1. ZooKeeper 用于元数据保存以及事件通知
  2. Broker Kafka 的核心部分,用 scala 实现,负责处理客户端请求,持久化消息数据等
  3. Client(Consumer & Producer) 客户端,Java 实现。生产者消费者实现

下面分别从这几个模块来讲解 Kafka 相关的实现[基于 Kafka 2.4]。

阅读全文 »

简介

Apache RocketMQ 是阿里开源的一款高性能、高吞吐量的分布式消息中间件。相比于 Kafka,其拥有更好的实时性和消息可靠性。更适用于和 Money 相关的系统。它支持如下特性:

  • 订阅/发布模式的消息

    支持消费组模式的消费,即一个消费组集群内只有一个实例会收到那一条消息。

  • 延时消息

    只支持特定 Level 的延时设置,默认有 “1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h” 18个 Level。先扔到对应的延时队列,后台线程根据延时再将其挪到实际的 Topic 中。

  • 顺序消息

    只保证在单个 Broker 的单个 Queue 内是有序的,全局不保证有序。和 Kafka 一样.。

  • 消息持久化

    [主从同步 + 同步刷盘] 模式保证了持久数据的安全性。4.5 版本后加入 Dleger 更是支持了 主从自动切换。

  • 消息过滤

    RocketMQ的消费者可以根据Tag进行消息过滤,也支持自定义属性过滤。消息过滤目前是在Broker端实现,减少了r无用消息的网络传输。

  • 消息回溯

    已消费过的消息,可以根据时间或 key 等维度来重新消费。在处理系统环境异常时很有用。

  • 事务消息

    先发送到一个特殊的系统 Topic 中,然后利用 2PC + 事务回查机制,判断将消息转到真正的 Topic 还是抛弃。

  • 死信队列

    消费失败并重试一定次数还是失败的的消息会先放到死信队列,需要手动进行重发

  • 消息重试

    每个消费组有一个 “%RETRY%+consumerGroup” 的重试队列。重试的消息会按照延迟的时间先放到 “SCHEDULE_TOPIC_XXXX” 队列中,然后才会被保存至 “%RETRY%+consumerGroup” 的重试队列中。

  • At-Least-Once

    消息消费有 ACK 机制,消费结束才返回对应的 ACK 相应。和 Kafka 不太一样,Kafka 追求消息的大量快速处理,默认都是异步,整合成一批来消费生产的。

阅读全文 »

起因

最近自己的香港阿里云服务器到期了,也不打算续期了,是在太贵。最低配一年一千多,其实我也没啥事要做,再续期的话就不划算了,遍放弃了。但是,科学上网的需求还是有的啊。于是便想要买个 VPS 自己整个跳转用用,对于这个 VPS 我只有两个要求:

  1. 便宜,一定要便宜!!!!毕竟自己需求较小,花多了钱觉得不划算
  2. 流量要不限量。(虽然我也不咋用,但是我就是想要不限量)

VPS 购置

挑选 VPS

首先我是按照自己的要求 google 了一番合适的 VPS 的,有下面几个链接比较有用:

  1. 2019 年最好的国外 VPS 推荐
  2. 10美元以下国内VPS/美国VPS推荐
  3. 老左常用国内/国外便宜VPS主机商家推荐整理

当然,按照我的要求,我选择了 BuyVM 家最便宜的一个 VPS。配置收费如下:

  • $2 USD/Month,年付更优惠:$18.68 USD/Year ,支持支付宝付款
  • 流量不限
  • 512M 内存
  • 10G 存储
  • KVM 架构
  • 1 核 CPU

这个配置用来部署一些小工具和用来科学上网是足够了。(这个,有个比较坑的地方就是,他的网速貌似不是很稳定,下载速度有时候有 1M/s,有时候只有 50k/s 这样子。。。。)

阅读全文 »

问题出现

一次项目更新后,发现项目无法正常 build 了,出现如下报错:

1
2
error: cannot access DoNotMock
class file for com.google.errorprone.annotations.DoNotMock not found

问题定位

  1. Review 代码更新,寻找可疑点

    这一步 review 没有发现什么特殊的改动,只是更改了几个 proto 文件的定义。但是回退代码后却又能正常 build,所以说明构建失败的确是此次更新引入的问题。

阅读全文 »

名词解释

  • OTA
    Online Travel Agency:在线旅游(OTA,全称为Online Travel Agency),是旅游电子商务行业的专业词语。 指“旅游消费者通过网络向旅游服务提供商预定旅游产品或服务,并通过网上支付或者线下付费,即各旅游主体可以通过网络进行产品营销或产品销售”。

  • LCC
    Low-cost carrier:低成本航空公司(廉航)
    List of LCC

  • PNR
    Passenger Name Record:旅客订座记录,它反映了旅客的航程,航班座位占用的数量,及旅客信息。适用民航订座系统

  • GDS
    Global Distribution System: 全球分销系统,是应用于民用航空运输及整个旅游业的大型计算机信息服务系统。 通过GDS,遍及全球的旅游销售机构可以及时地从航空公司、旅馆、租车公司、旅游公司获取大量的与旅游相关的信息,从而为顾客提供快捷、便利、可靠的服务。 目前主要的 GDS。1A-Amadeus、1B-Sabre/Abacus、1E-TravelSky(中航信)、1G-伽利略。

    阅读全文 »