Skip to content

中间件开发利器: ware swift 简单介绍

pbting edited this page Jun 10, 2019 · 2 revisions

本文开始,将陆陆续续给大家介绍中间件开发利器: ware-swift 开发框架。其旨在让天下没有难开发的中间件。

通过本文的简单介绍,你将可以了解:

  • ware-swift 到底是什么
  • ware-swift 能够解决日常工作的哪些问题
  • 如何快速使用 ware-swift 开发属于自己的一款中间件

ware-swift 是什么

ware-swift 它是一个系统中间件一站式的开发框架及解决方案,他的愿景是让天下没有难开发的中间件。就像 spring cloud 或者 dubbo 一样,基于它可以快速的来构建你的微服务应用,帮你屏蔽了一次 RPC 调用的全部细节,就像本地调用一样简单。犹如 netty 一样,基于它可以快速的来构建你的网络应用程序,帮你处理复杂的数据编解码以及拆包/粘包等问题。同样,基于 ware-swift,也可以快速的来构建某个特定领域的中间件。这些个中间件包含但不限于(根据作者的工作经验评估):

  1. 分布式任务调度
  2. 四层/七层的网络代理(四层的网络代理,比较典型的有 redis/memcache; 七层的网络代理,典型的有 http 网关)
  3. 服务注册中心
  4. 应用配置中心
  5. MQ(ware-swift 没有实现存储系统,可借助现有的存储系统来实现)
  6. 分布式锁服务
  7. 分布式缓存
  8. 分布式热点数据服务
  9. 分布式 session 管理
  10. 集群间的数据同步
  11. 统一的日志收集与处理的日志服务
  12. 基于 Lucene 来实现高度可定制化的全文搜索服务
  13. ......(可充分发挥你的主观能动性,来实现属于你们公司指定业务场景下的中间件)

可以发现,几乎所有的基于数据的中间件,都可以跑在 ware-swift 之上。

ware-swift 一站式的开发框架及解决方案

如果仔细注意过一些中间件,基本上都可以发现他们都有一些共同的问题需要解决。

  1. 架构问题

    一个分布式系统中间件,架构的选型大部分都在 Leader-Follower 架构或者 Decentration(去中心化架构)两者之间。Leader-Follower 结构的典型代表有 zookeeper,去中心架构的典型代表有 Cassandra 。

  2. 高可用

    一个分布式系统中间件,高可用可是一个非常刚需的功能,如果某个节点挂了系统不能及时响应,那么严重情况下可能会带来巨额的经济损失。

  3. 数据冗余机制

    对于数据存储类型的中间件,数据的冗余通常是必须的。因此如何快速简单的在多个节点间进行数据备份成为了一个常态化需要解决的问题。

  4. 集群节点之间的通信

    不管是用来数据冗余备份,还是通过 Goosip 协议来实现集群节点之间的自发现,还是来感知整个集群节点的上下线状态,都离不开集群节点间的通信。

  5. 集群扩缩容

    当整个集群的数据存储或者请求处理能力达到瓶颈时,这个时候继续整个集群应该能够快速扩容的能力,当峰值点过后,又需要集群缩容。整个集群应该能够轻松的来应对流量洪海峰下的场景。

  6. 数据一致性问题。CP 或者 AP

    基于数据的系统中间件,CP 和 AP 能力模型是一个老生常态的问题。可以根据系统的特点分别来实现适应不同场景下的分布式系统。

  7. 数据的存储

    不管是事务日志也好,还是是一个实实在在的数据存储类型的中间件,都依赖于底层的数据存储。

  8. 容灾(同城/异地)

    对于数据(例如: 涉及到金钱交易型的数据)非常重要的系统,容灾能力是一个非常重要的维度,往往也就决定整个系统的成败,说大点甚至整个公司的命运。

  9. 同城/异地多活

    受业务的高速增长,能够把服务器部署到多个机房,此外一个更重要的原因是,整个机房级别的故障时有发生,每次都会带来严重的后果,我们需要在发生故障时,能够把一个机房的业务全部迁移到别的机房,保证服务可用。因此异地多活的功能诞生了。

    注意:中间一段是引用 李双涛 同学 在这篇文章中的分享,非常感谢!

如何快速使用 ware-swift

可参考 这里