Herbie是分布式服务体系结构中业务数据的中心数据存储。
herbie的Python项目详细描述
赫比
赫比是什么?在
Herbie是一个抽象的数据层,它使得跨分布式系统之间的数据交换变得更加容易。您可以将“customer”或“order”之类的业务实体定义为JSON模式,存储在中央模式注册表中。Herbie可以监听一个系统中的数据更新,并根据您的业务规则将新数据发布到其他系统。在
你为什么要用赫比
它简化了为所有系统构建集成和连接器的过程。也许你想在MailChimp和Salesforce之间建立一个连接器,也可以在MailChimp和Shopify之间,也可以在Salesforce和shoppify之间建立一个连接器。每次,您都必须根据两个系统的要求自定义连接器。如果所有的系统都连接到一个中央数据层呢?-那是赫比。在
一旦你所有的系统都连接到赫比,它们就可以互相交谈了。一旦系统可以订阅另一个系统中的更改。刚刚更新了你在Salesforce的联系人?您的MailChimp连接器可以监听更改并相应地更新MailChimp数据库。在
概述
Herbie使用schema registry与central datastore相结合的业务 实体。在
- 在
它是用Django构建的,并附带一个用于创建业务实体的简单API。在
在 - 在
json schema集成允许您定义定制的模式定义,Herbie使用这些定义来验证实体。在
在 - 在
默认情况下,我们提供对Google Pub/Sub或AWS SNS/SQS的支持,以提供event streams—您的服务可以订阅这些事件流并了解某个实体类型何时更新。在
但是,您不必使用Google Pub/Sub,您还可以将Herbie更新为use your preferred messaging system。在
在
赫比背后的哲学是要避免那些看起来像是“黑匣子”的行为,相反,这种行为是建立在 简单明了,遵循Django最佳实践。它也意味着它是可扩展的,易于适应。在
进一步阅读:
入门
快速启动
启动一个新项目最简单也是推荐的方法是克隆sandbox存储库并按照说明操作。在
分步指南
- 在
Herbie基于Django框架,因此第一步是使用^{str1}$postgres作为数据库技术启动new Django project。在
在 - 在
设置好Django框架之后,可以使用pip之类的公共包管理器来安装Herbie。在
python -m pip install herbie
你也可以把赫比加入你的
在requirements.txt
。在 - 在
下一步是相应地配置设置:
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)),]
在 - 在
通过将架构添加到远程存储库或本地包来添加架构。在
在 - 在
以首选方式运行Django应用程序->link
在 - 在
当应用程序运行时,执行以下命令:
- 在
为Herbieschemas package中包含的示例业务对象生成模型类。在
在python manage.py generatemodels
- 在
创建并执行迁移文件以初始化数据库
在python manage.py makemigrations python manage.py migrate
- 在
将架构加载到数据库:
在python manage.py import_json_schemas
- 在
创建一个管理员用户,以便您可以登录到管理仪表板。在
在python manage.py createsuperuser --username "username" --email "email@email-address.com"
- 在
更改信息系统
默认情况下,Herbie sandbox安装程序使用Google Pubsub进行分发 JSON格式的业务实体消息。但它应该很容易用其他的 信息系统:
不同的消息传递系统以Python包的形式分发,并且也基于Django。使用或添加一个新的 很容易注册一个新的Django应用程序。在
有关详细说明,请查看Google Pubsub adapter存储库。在
管理面板
- 项目
标签: