python开源ESB项目Zato技术分享
来源:互联网 发布:java将map转换成json 编辑:程序博客网 时间:2024/04/19 10:54
官网:https://zato.io
个人感觉这个项目不适合在生产环境使用
安装,配置,稳定性都不好 很容易出现问题
如果非要使用ESB 建议使用java的
简介:
Zato是一个用Python编写的开源ESB和应用服务器。按照设计,它用于构建后端应用程序(即仅是API)和在SOA中整合系统
什么是ESB和SOA?
https://zato.io/docs/intro/esb-soa.html (牛逼的看这个)
http://my.oschina.net/u/618083/blog/196523 (谦虚低调的看这个吧)
http://www.infoq.com/cn/presentations/electricity-supplier-in-the-enterprise-service-bus (视频介绍)
简单来说就是因为多系统相互访问很乱 所以做了这么一个用来管理所有相互访问的系统
警告:
在现在我写这篇博客为止,Zato支持ubuntu12.04LTS和14.04LTS版本 mac和windows下是通过安装虚拟机方式实现。
亲测其他版本确实不可用 我是在12.04LTS下安装成功的
创建项目
Zato如何创建项目请参考官网的part1 和part2
part1有一篇中文的翻译各位有兴趣的可以自己搜索
备注:创建项目需要输入4次密码 前两次postgresql后两次redis redis密码空 回车跳过
web-admin界面简单描述
首先去修改admin密码 具体见update password
打开http://127.0.0.1:8183web界面登录
几个关键点说明
Load-balancer:修改Plait http 0.0.0.0 允许外部服务器访问 不改只允许本级访问
Connections中
Definitions定义配置
Channels:配置对外的接口,队列守护进程
Outgoing:Zato读取的外部接口供内部调用,定义队列
一个异步酒店同步事例项目
1.安装rabbitmq
2.配置rabbitmq
3.在Zato中定义消息队列
4.Zato中定义一个lezyo.py文件 写入消息到消息队列 备注:Zato不会自动创建队列 需要自己在终端创建好消息队列 否则无法写入 并且日志不会报错
5.把刚配置的lezyo.py文件配置到外部可访问
6.通过curl的方式或者py文件测试可用
curl localhost:11223/notice/oe -d '{}'
上面几步完成了外部写入到Zato的消息写入
7.配置一个url在消息队列回调的时候触发 通知另外一个系统有同步信息
8.Zato中定义一个回调函数调用7配置的外部访问地址
9.配置8中写的回调函数到守护进程
到此写入消息到Zato的消息队列 并触发相关调用完成
下面几步是如何开发一个信息由Zato提供给外部读取
10.开发一个对外的酒店信息
这步图片略过 自己配置
11.在Zato中配置10中设置的url
12.在Zato中定义py读取10,11中开放给Zato的接口
备注:参数通过下图11行发送 返回数据参考12行
13.开放接口供外部访问
到此 参考6中的方式 可以提供给外部访问酒店信息
14.将对外开放的接口增加安全验证 (我只看懂了第二个配置 其他的方式欢迎分享)
15.修改接口 增加安全验证
16.外部调用代码事例 在头信息中增加X_ZATO_USER和X_ZATO_PASSWORD
- python开源ESB项目Zato技术分享
- ESB 案例解析和项目实施经验分享
- ESB 案例解析和项目实施经验分享
- ESB 案例解析和项目实施经验分享
- ESB 案例解析和项目实施经验分享,第 2 部分: 刚柔相济,构建企业联邦 ESB
- ESB 案例解析和项目实施经验分享,第 3 部分: ESB 项目需求分析和方案设计浅谈
- 开源ESB项目中的领头羊
- ESB只是技术
- 【技术名词】ESB
- 【python 爬虫】Python爬虫技术分享
- 五大开源ESB项目
- 开源ESB
- iOS项目开发技术讨论与分享
- iOS项目开发技术讨论与分享
- React-Native项目实战技术分享
- SOA与ESB技术应用
- SOA与ESB技术应用
- test-关于soa,esb技术
- pureftp虚拟用户管理手动安装
- C语言指针使用经验总结之悬垂指针
- 【Objective-C】04-第一个OC程序解析
- 【Objective-C】05-第一个OC的类
- ROOT大师PC版 v1.7.6.7190 绿色免费版
- python开源ESB项目Zato技术分享
- linux内核的一些预定义(非常易懂)
- 【Objective-C】06-点语法
- 孤独的自由
- PowerDesigner15导出HTML时包含表、列的备注信息
- 搭建Git服务器
- [leetcode]3Sum Closest
- qq游戏大厅2014 v3.4 官方正式版
- 温柔