【Azure API 管理】APIM添加Log-to-eventhub的策略后,一些相关APIM与Event Hub的问题

简介: 【Azure API 管理】APIM添加Log-to-eventhub的策略后,一些相关APIM与Event Hub的问题

问题描述

1)    APIM 到Event Hub 写入日志是否有数量限制,比如每秒最大写入数量;

2)    是否可以在同一个APIM配置多个Event Hub,如果可以该APIM写入日志的峰值是否可以是N倍,即和Event Hub数量的倍数;

3)    写入Event Hub 达到峰值时,对APIM的影响有哪些,比如SNAT端口消耗,带宽,后端转发,内存等,对APIM整体影响多大?

4)    如果从APIM写入Event Hub的Message峰值远远大于Event Hub可接受的峰值时,是否会对APIM造成堵塞,APIM是否有限制写入Event hub的限制?

5)    APIM写入Event hub的逻辑/原理;

 

问题解答

问题一:APIM 到Event Hub 写入日志是否有数量限制,比如每秒最大写入数量

Event Hub 通过 Throughput Units 配置可以接收的消息数,一个吞吐量单元的入口限制为每秒1000个事件。APIM本身作为一个客户端并不会主动限制发送消息的数量,但是实际使用中会受到内存,处理器,网络带宽的影响。[ Ingress: Up to 1 MB per second or 1000 events per second (whichever comes first). https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-scalability#throughput-units ]

 

问题二:是否可以在同一个APIM配置多个Event Hub,如果可以该APIM写入日志的峰值是否可以是N倍,即和Event Hub数量的倍数

APIM输出日志到Event Hub需要事先通过REST API配置Logger:https://docs.microsoft.com/en-us/rest/api/apimanagement/2020-12-01/logger/create-or-update#loggertype,文档中并未明确指明仅能创建单个logger。我们理解的是该API可以多次调用,并指定不同的连接字符串(connectionString)以创建多个logger指向不同的EventHub。

配置方法详见 --【Azure API 管理】在APIM 中添加 log-to-eventhub 策略,把 Request Body 信息全部记录在Event Hub中 : https://www.cnblogs.com/lulight/p/15630965.html

注:可以通过调整Event Hub的 Throughput Units 来配置Event Hub 可以处理的消息数量。通常情况下,单个EventHub的处理能力已足以满足绝大多数的应用场景。如果通过创建的多个Event Hub并没别处于不同的命名空间下,那么理论上可以通过叠加提升 Event Hub 侧的处理能力上限。更多时候,需要进行压测检查具体的业务场景下性能瓶颈是否存在,并有针对性的调整客户端(APIM)与服务端(EventHub)使两者处理能力匹配。当在测试中需要通过Trace来查看Log-to-eventhub的执行情况,可以参考博文: https://www.cnblogs.com/lulight/p/15746073.html

 

问题三:写入Event Hub 达到峰值时,对APIM的影响有哪些,比如SNAT端口消耗,带宽,后端转发,内存等,对APIM整体影响多大?

官方文档中描述了APIM在理想状况下的处理能力(Requset per Second)

(Source: https://azure.microsoft.com/en-us/pricing/details/api-management/ )

可以确认的是APIM本身使用独立的公网IP地址,在与EventHub的连接过程中触发SNAT端口耗尽的可能行极小(https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-ip-addresses#ip-addresses-of-api-management-service)。需要注意的是APIM的处理能力会收到多种因素的影响,例如Policy的复杂程度,客户端与APIM以及APIM与后端服务之间的网络连接,并发请求数,请求payload大小等。

PS: 通过AMQP方式连接,使用的端口为5671,5672端口,所以它不会导致APIM 出口IP的SNAT消耗。https://docs.azure.cn/zh-cn/service-bus-messaging/service-bus-amqp-protocol-guide?toc=https%3A%2F%2Fdocs.azure.cn%2Fzh-cn%2Fevent-hubs%2Ftoc.json&bc=https%3A%2F%2Fdocs.azure.cn%2Fzh-cn%2Fbread%2Ftoc.json#amqp-outbound-port-requirements

问题四:如果从APIM写入Event Hub的Message峰值远远大于Event Hub可接受的峰值时,是否会对APIM造成堵塞,APIM是否有限制写入Event hub的限制?

官方文档并未给出具体说明。但根据日志收集的设计理解,logger的写入不会阻塞APIM请求处理的。

 

问题五:请介绍下APIM写入Event hub的逻辑/原理

官方文档未提供关于APIM内部的代码实现的具体细节。但API Management使用的是C#代码,所以可以参考C#的SDK向Event Hub发送消息。

通过代码及SDK向Event Hub发送消息,可以参考文档:https://docs.microsoft.com/en-us/dotnet/api/overview/azure/Messaging.EventHubs-readme#publish-events-to-an-event-hub

var connectionString = "<< CONNECTION STRING FOR THE EVENT HUBS NAMESPACE >>";
var eventHubName = "<< NAME OF THE EVENT HUB >>";
await using (var producer = new EventHubProducerClient(connectionString, eventHubName))
{
    using EventDataBatch eventBatch = await producer.CreateBatchAsync();
    eventBatch.TryAdd(new EventData(new BinaryData("First")));
    eventBatch.TryAdd(new EventData(new BinaryData("Second")));
    await producer.SendAsync(eventBatch);
}
相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
4月前
|
API 网络安全 网络架构
【Azure APIM】解答REST API实现"禁用自签名证书的证书链验证"中的backends参数值从那里取值的问题?
本文介绍APIM服务调用后端API时因自签名证书导致500错误的解决方案。通过REST API禁用证书链验证,关键在于获取正确的backendId(即APIM中配置的Backend名称),并调用PATCH接口设置validateCertificateChain为false,从而解决SSL/TLS信任问题。
207 6
|
5月前
|
人工智能 搜索推荐 算法
唯品会 API 开启唯品会店铺精准营销新策略
在竞争激烈的电商市场中,唯品会作为领先的折扣平台,通过API技术助力商家实现精准营销。API为商家提供用户行为、商品与交易数据,支撑用户画像、个性化推荐、动态定价、跨渠道营销与库存预测等策略,提升转化率与用户忠诚度,推动销售增长与营销智能化升级。
233 1
|
4月前
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
312 6
|
5月前
|
API 网络架构 容器
【Azure Container App】查看当前 Container App Environment 中的 CPU 使用情况的API
在扩展 Azure Container Apps 副本时,因 Container App Environment 的 CPU 核心数已达上限(500 cores),导致扩展失败。本文介绍如何使用 `az rest` 命令调用 Azure China Cloud 管理 API,查询当前环境的 CPU 使用情况,并提供具体操作步骤及示例。
192 16
|
5月前
|
存储 监控 前端开发
淘宝商品详情 API 实战:5 大策略提升店铺转化率(附签名优化代码 + 避坑指南)
本文深入解析淘宝商品详情API的核心字段与实战应用,分享如何通过动态定价、库存预警、差评控制等5大策略提升电商转化率。结合300+店铺实战经验,提供优化代码与避坑指南,助力开发者与运营者实现数据驱动的精细化运营。
|
5月前
|
数据采集 监控 API
亚马逊:对接竞品监控API实时跟踪价格变动,调整定价策略
在电商竞争中,亚马逊通过对接竞品监控API,实现价格实时采集与分析,动态调整定价策略。本文详解其技术实现、商业价值及挑战,展现数据驱动下的智能定价如何提升竞争力与利润。
583 0
|
5月前
|
人工智能 算法 搜索推荐
拼多多:通过用户分组API实施差异化营销策略,提高客单价
拼多多通过用户分组API实现差异化营销,精准提升客单价。基于用户行为数据自动分类,针对不同群体推送专属优惠,如高频用户推高端商品、新用户送礼包、低频用户唤醒激励。结合满减、捆绑销售等策略,有效提高单笔订单金额。该策略提升营销效率,增强用户粘性,助力平台实现数据驱动的可持续增长。
365 0
|
5月前
|
供应链 算法 API
网易严选 API 助力,品质电商商品选品策略升级
在电商竞争激烈背景下,网易严选通过开放商品数据API,提供动态选品解决方案,助力合作伙伴精准决策,实现效率与品质双提升,推动电商战略升级。
145 0
|
5月前
|
数据采集 JSON 监控
利用唯品会 API 接口,实现唯品会店铺商品折扣策略精准制定
在电商竞争激烈的背景下,唯品会店铺如何通过API接口实现商品精准折扣策略成为关键。本文结合数学模型与Python代码,系统讲解从数据获取、模型构建到策略实施的全流程,助力提升利润与运营效率。
140 0
|
4月前
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。

热门文章

最新文章