Herbie是分布式服务体系结构中业务数据的中心数据存储。

herbie的Python项目详细描述


赫比

CI Build

赫比是什么?在

Herbie是一个抽象的数据层,它使得跨分布式系统之间的数据交换变得更加容易。您可以将“customer”或“order”之类的业务实体定义为JSON模式,存储在中央模式注册表中。Herbie可以监听一个系统中的数据更新,并根据您的业务规则将新数据发布到其他系统。在

你为什么要用赫比

它简化了为所有系统构建集成和连接器的过程。也许你想在MailChimp和Salesforce之间建立一个连接器,也可以在MailChimp和Shopify之间,也可以在Salesforce和shoppify之间建立一个连接器。每次,您都必须根据两个系统的要求自定义连接器。如果所有的系统都连接到一个中央数据层呢?-那是赫比。在

一旦你所有的系统都连接到赫比,它们就可以互相交谈了。一旦系统可以订阅另一个系统中的更改。刚刚更新了你在Salesforce的联系人?您的MailChimp连接器可以监听更改并相应地更新MailChimp数据库。在

概述

Herbie使用schema registrycentral datastore相结合的业务 实体。在

  • 它是用Django构建的,并附带一个用于创建业务实体的简单API。在

  • json schema集成允许您定义定制的模式定义,Herbie使用这些定义来验证实体。在

  • 默认情况下,我们提供对Google Pub/SubAWS SNS/SQS的支持,以提供event streams—您的服务可以订阅这些事件流并了解某个实体类型何时更新。在

    但是,您不必使用Google Pub/Sub,您还可以将Herbie更新为use your preferred messaging system。在

赫比背后的哲学是要避免那些看起来像是“黑匣子”的行为,相反,这种行为是建立在 简单明了,遵循Django最佳实践。它也意味着它是可扩展的,易于适应。在

进一步阅读:

入门

快速启动

启动一个新项目最简单也是推荐的方法是克隆sandbox存储库并按照说明操作。在

分步指南

  1. Herbie基于Django框架,因此第一步是使用^{str1}$postgres作为数据库技术启动new Django project。在

  2. 设置好Django框架之后,可以使用pip之类的公共包管理器来安装Herbie。在

    python -m pip install herbie
    

    你也可以把赫比加入你的requirements.txt。在

  3. 下一步是相应地配置设置:

    a)在已安装的应用程序中注册Herbie和django rest框架。在

    ^{pr2}$

    b)为提供的Herbie API设置令牌身份验证:

    REST_FRAMEWORK={'DEFAULT_AUTHENTICATION_CLASSES':('rest_framework.authentication.TokenAuthentication',),}

    c)定义模式包

    d)选择一种排队技术(AWS SNS/SQS vs.Google Pubsub)

    e)在您的网址.py公司名称:

    fromherbie_coreimporturlsasherbie_urlsurlpatterns=[# ...path('api/',include(herbie_urls)),]
  4. 通过将架构添加到远程存储库或本地包来添加架构。在

  5. 以首选方式运行Django应用程序->link

  6. 当应用程序运行时,执行以下命令:

    1. 为Herbieschemas package中包含的示例业务对象生成模型类。在

      python manage.py generatemodels
      
    2. 创建并执行迁移文件以初始化数据库

      python manage.py makemigrations
      python manage.py migrate
      
    3. 将架构加载到数据库:

      python manage.py import_json_schemas
      
    4. 创建一个管理员用户,以便您可以登录到管理仪表板。在

      python manage.py createsuperuser --username "username" --email "email@email-address.com"
      

更改信息系统

默认情况下,Herbie sandbox安装程序使用Google Pubsub进行分发 JSON格式的业务实体消息。但它应该很容易用其他的 信息系统:

不同的消息传递系统以Python包的形式分发,并且也基于Django。使用或添加一个新的 很容易注册一个新的Django应用程序。在

有关详细说明,请查看Google Pubsub adapter存储库。在

管理面板

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java中STDIN的不同方式是什么   java有没有办法让程序将文本文件中的“\n”识别为换行代码?   java JList不显示项目   java试图反转句子中的字符   infinte列表中的java搜索策略   java使用motionevents模拟鼠标单击   java使用Spring@Cacheable和@PostFilter   java如何使用枚举名获取枚举id   Java无法找到并加载CSV文件   CyclicBarrier上的java可见性同步?   如何将java与javascript调用解耦?小程序正在等待自己!   java如何向被请求方发送客户端的SOAP响应   java安卓:固定位置工具栏