nameko微服务框架的Django集成。
nameko-django的Python项目详细描述
django nameko公司
特拉维斯CI
Branch | Build status |
---|---|
master | |
develop |
名字科·詹戈
nameko微服务框架的Django集成
使用自定义gpkombu序列化对象
此序列化程序与msgpack完全兼容,因此可以这样使用它:
serializer:'django_msgpackpickle'ACCEPT:['msgpack','django_msgpackpickle']SERIALIZERS:msgpack:encoder:'nameko_django.serializer.dumps'decoder:'nameko_django.serializer.loads'content_type:'application/x-msgpack'content_encoding:'binary'
为了迁移现有的微服务堆栈(使用msgpack
序列化程序)来使用这个新的序列化程序
首先安装并设置所有项目
这将接受msgpack
和django_msgpackpickle
,但只接受使用msgpack
的结果组合的输出
一旦所有服务迁移,然后切换到第一个配置
特点
此序列化程序将自动编码和解码:
- 日期时间,日期,时间,持续时间: 对象将转换为与兼容的字符串表示形式django.utils.dateparse 然后用django.utils.dateparse()
- 十进制: 对象将被转换为字节字符串,然后恢复为十进制
- Django ORM实例: 对象将使用python cPickle/pickle库进行pickle,并重新pickle回ORM模型实例
- Django ORM查询集: 对象将变形为Model+Query,然后进行pickle以避免发送实例列表
字符串求值
此序列化程序可以计算与django.utils.dateparse
格式兼容的字符串
并自动将字符串转换为DateTime
、Date
、Time
、Duration
对象。在
它还可以使用如下格式计算字符串:
"<app_name.model_name.ID>"
这将转换为ORM实例:使用Model.objects.get(pk=ID)
例如:<auth.User.1>
"(app_name.model_name: RAW_QUERY_WITHOUT_SELECT_FROM)"
这将转换为ORM查询集
例如:(auth.User: id >= 1 and date_joined > '2018-11-22 00:47:14.263837')
- 项目
标签: