本教程以云视频会议的会议状态事件为例,说明事件总线EventBridge如何根据事件规则将云视频会议事件路由到指定的HTTP网关,从而实现事件驱动架构。
前提条件
背景信息
- 事件驱动架构:以事件驱动架构设计和管理您的服务可以很好的实现服务模块之间解耦,提高服务整体的稳定性和灵活性。所有的业务数据都可以映射到事件上来,所有的业务事件按照业务领域划分为多个事件类型。更多信息,请参见事件驱动架构。
- 云视频会议:云视频会议是阿里云提供的开放、可靠、智能的会议PaaS服务,基于阿里集团数年视频会议技术及应用积累、全球部署的网络节点覆盖及AI技术,您可快速构建多端互通与简单易用的会议协作应用。
云视频会议定义的事件类型如下表所示。
事件类型 事件类型描述 事件触发场景 会议状态 会议开始或结束事件 - 会议开始,即从第一个人进入会议,推送“时间、MeetingUUID、MeetingName、action”。
- 会议结束,即从最后一个人离开会议(不论是主动还是被动),推送“时间、MeetingUUID、MeetingName、action”。
成员状态 会议成员状态事件 - 成员入会,推送“时间、MeetingUUID、MeetingName、userID、groupId、action”。
- 成员离会,推送“时间、MeetingUUID、MeetingName、userID、groupId、action”。
成员操作 会议成员会中操作事件 - 静音或取消静音,推送“时间、MeetingUUID、MeetingName、userID、groupId、action”。
- 打开或关闭扬声器,推送“时间、MeetingUUID、MeetingName、userID、groupId、action”。
- 打开或关闭摄像头,推送“时间、MeetingUUID、MeetingName、userID、groupId、action”。
- 打开或关闭共享屏幕,推送“时间、MeetingUUID、MeetingName、userID、groupId、action”。
会议统计 会议统计数据发布事件 每天推送一次最高并发。
注意事项
云视频会议作为阿里云官方事件源,目前只对中国香港和华东1(杭州)两个地域开放。
云视频会议事件通知事件流
本文以云视频会议为例,为您介绍阿里云服务接入事件总线EventBridge的流程。
步骤一:创建事件规则
云视频会议事件会发布到云服务专用总线。事件总线EventBridge为您内置了云服务专用总线default,您无需再创建。为云服务专用总线创建事件规则的步骤如下:
- 登录事件总线EventBridge控制台。
- 在左侧导航栏,单击事件总线。
- 在顶部菜单栏,选择地域。
- 在事件总线页面,单击云服务专用事件总线default。
- 在左侧导航栏,单击事件规则。
- 在事件规则页面,单击创建规则。
- 在创建规则页面,完成以下操作:
步骤二:使用HTTP网关接收事件
使用HTTP网关接收事件。
示例代码如下所示。
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@SpringBootApplication
@Slf4j
public class EventProcessingApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@PostMapping("/eventBridge/processEvent")
@ResponseBody
public String receiveMessage(@RequestBody String data) {
log.info("receiveEvent");
log.info(data);
return "received";
}
}