在上篇BPMN 2.0之Event Base Gateway(基于事件的网关)说了Event Base Gateway在流程流转中间的使用,Event Base Gateway的另一个用途是可以启动流程。
more
当Event Base Gateway被设置成启动流程时,它的图标会改变同时上游也不允许有流入的Sequence Flow。下面是个例子:
当上图的流程部署后,就会等待Email或电话请求。如果Email来了,就实例化一个流程实例,并从Task1开始执行。如果电话请求来了就再实例化一个流程实例从Task2开始执行。
缺省设置下,启动流程的Event Base Gateway是互斥的。可以用多个Start Even
继续阅读 »
gateway的初步想法
已有一套基于epoll event的框架, 打算gateway在这个基础上, 配合boost::asio做。雏形先做个socket proxy出来.
TODO:
1,设计一个AsioClient类, 它是gw到后端具体gs的连接封装. AsioClient类想到2个方案:
a, 在原来的面向玩家的SClientSocket类和AsioClient类之间做friend, asio_write, asio_read, asio_connect的callback中, 回调SClientSocket中的对应Write, Read达到与epoll 事件打通, 因此打通玩家到后端gs的proxy
继续阅读 »
网关编码一
拆了又补, 补了又拆,边拆边想,发现之前用asio socket的方式做gateway, 有不少问题。
1. 如果用asio做连接upstream server的socket, 还需要把byte buffer实现一遍,
虽然已有现成的buffer代码, 不过生搬过去还是显的略繁琐;
2. 如果用asio, 下游用的是epoll, 要在asio的async_read_some, 和epoll的 OnRead, OnWrite间穿梭,
感觉好脑残,之前的想法果然傻逼, 当然推翻它重来了;
3. 改成都用epoll监听, 方便很多。基本上就是设计一个新类 ProxySClientSocket 继承SClie
继续阅读 »
Zabbix JMX
官方文档: https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/jmx_monitoring
注意点
对于JMX, Zabbix server需要向Zabbix Java Gateway查询,而不是Zabbix Agent。
Java gateway 跟被监控应用的JMX management api的调用应该是畅通无阻的,网络上不应该被防火墙阻塞。如果JMX需要认证的话,是要能通过的。如果只是用在非生产环境,也可以取消认证。
~~~java
java \
-Dcom.sun.management.jmxremote
继续阅读 »
前段时间一直在忙team的项目,在我们基于OpenStack的公有云(Catalyst Cloud)上部署Swift服务。由于历史原因,我们的公有云之前提供的对象存储是基于Ceph Object Gateway(RGW),所以我们已经有大量的用户在Ceph上存储的数据,并且每天都会有更新,总容量有十几个T。我在这个项目中的任务就是完成数据迁移。在Ceph集群之外,我们部署了独立的Swift集群,所以准确的说,我们需要做的是数据拷贝,而并非数据迁移。
继续阅读 »
去年做了一个多平台的(Android/iOS/Windows)基于 WebRTC 的多人音视频通话的项目,客户端基于 WebRTC 最新的客户端代码封装业务逻辑,自己写信令对接 SFU,SFU 最初是对接的 Janus Gateway(所以我才会去给 Janus 提 PR),但 Janus 在中弱网下(ping 4% 丢包 100ms RTT)的表现非常差,一直处于卡死状态。
继续阅读 »
之前没事看了一点 flask 和 werkzeug 的源码, 就想着试一下做一个简单的 WSGI Server。
说到 WSGI, 可以先从 CGI 说起,所谓 CGI(Common Gateway Interface),可以理解为 Web Server 调用本地的可执行文件来参生动态内容的方式。
参考 CGI-维基百科。
继续阅读 »
Janus Gateway 支持 server 端录制,保存的文件格式是对 RTP 报文的一种自定义封装格式(MJR),音视频数据单独存储,官方提供了一个 janus-pp-rec 的程序,可以把 MJR 格式的文件转换为其他封装格式的文件,然后我们可以利用 ffmpeg 把音视频文件合并为一个文件,命令如下(以 H.264 和 OPUS 编码为例):
继续阅读 »