消息队列是面试中一定会被问到的技术模块,虽然它在面试题占比不及并发编程和数据库,但也属于面试中的关键性问题。所以今天我们就来看一道,MQ 中高频,但可能会打破你以往认知的一道面试题。...Kafka 生产者发送消息的执行流程如下:默认情况下,所有的消息会先缓存到 RecordAccumulator 缓存中,再由 Sender 线程拉取消息发送到 Kafka 服务器端,通过 RecordAccumulator...特定大小的 ByteBuffer 会被缓存起来,以便后续消息发送时重复使用。...① acks=0生产者在将消息发送到网络缓冲区后,立即认为消息已被提交,不会等待任何来自服务器的响应。这时设置的重试次数 retries 无效。...课后思考Kafka 服务器端和消费者如何保证消息不丢失呢?
你的开发人员开始工作,他们设计网站,他们在AWS或任何云计算服务上配置一个新的虚拟服务器来托管它,以及一个存储桶来存储网站的数据。...假设你还有一个移动应用程序将数据发送到该竞选网站,因此主机名也会成为该应用程序的代码。由于统计数据跟踪或数据库备份等原因,你还有其他内部应用程序和工具需要与网站集成。...去年,宾夕法尼亚州立大学的一组研究人员通过在亚马逊的美国东部地区部署300万台EC2服务器来分析公共云上IP重复使用的风险,这些服务器获得了150万个唯一的IP地址,约占该地区可用池的56%。...IP重用和DNS方案似乎是最普遍的,可以通过以下几种方式缓解:使用云提供商保留的IP地址,这意味着在公司显式释放它们之前,它们不会被释放回共享池,通过将它们自己的IP地址传输到云,当用户不需要直接访问这些服务器时...,通过在服务之间使用私有(内部)IP地址,或者通过使用由云提供商提供的IPv6地址,因为它们的数量太大,不太可能永远被重复使用。
主要有这两种情景: 向前兼容变更:使用新的.proto文件来写数据 --- 从旧的.proto文件读取数据 向后兼容变更:使用旧的.proto文件来写数据 --- 从新的.proto文件读取数据 有时候这两种情况同时存在...而这时,如果把新的消息发送到旧的代码的时候,旧代码不知道2这个数字tag对应的是什么,所以name这个字段就会被忽略掉。...但是,在删除字段的时候,你应该一直都保留字段的数字tag以及字段名,像这样: ? 这样做是防止数字tag和名称被重复使用,避免在以后的代码库里造成冲突。...使用OBSOLETE 之前说了,可以把字段名改为 OBSOLETE_字段名 来代替删除字段,但是这样做的缺点就是:你还是需要把这个字段的值计算出来。...保留字段数字tag的目的就是防止数字tag被重复使用; 而保留字段名的目的就是防止出现一些程序bug; 注意:一定不要移除reserved的数字tags。
本文详细介绍了迪士尼API服务团队如何实现Kinesis数据流的自动缩放功能,保证流量高峰时的数据传输效率,并有效降低成本。本文来自迪士尼技术博客。...在本篇文章中,将详细介绍迪士尼流媒体服务的API服务团队是如何实现Kinesis数据流的自动缩放功能的,这项功能使我们能够在流量高峰时段稳定地传输数据,同时保持成本效益。...问题 团队的工作 在迪士尼流媒体服务中,我们的API服务团队(包括我自己)负责那些向客户端公开公共API的应用程序,这意味着我们将大量参与客户端通信协议、支持流量需求的扩展、通过回退和降级提供可靠性以及安全性...我们还研究了AWS Labs提供的一个应用程序Kinesis Scaling Utility,它可以通过CloudWatch来监控指标,并根据配置扩展Kinesis流。...如果批处理中的任何日志事件未能发送到Kinesis流(带有错误代码返回),则日志处理器Lambda将使用指数退避和抖动算法来尝试将失败的日志事件重新发送到Kinesis流。
作为 TGS 服务票证请求的一部分,将无 PAC TGT 与伪造的 PAC 作为授权数据一起发送到 DC。...当服务使用显式凭据启动时,凭据会加载到 LSASS 中,以便服务在这些凭据的上下文中运行。对此计算机具有管理员权限(或本地系统)的人可以从 LSASS 转储凭据,并可以重复使用这些凭据。...网络登录通过向远程服务器证明您拥有用户凭证而不将凭证发送到该服务器来工作(请参阅Kerberos和NTLM身份验证)。...网络明文登录通过将用户的明文密码发送到远程服务器来工作。使用 CredSSP 时,服务器 A 将收到用户的明文密码,因此能够向服务器 B 进行身份验证。双跳有效!...使用Microsoft LAPS之类的产品,工作站和服务器上的所有本地管理员帐户密码都应该是长的、复杂的和随机的。 配置组策略以防止本地管理员帐户通过网络进行身份验证。
在网络协议栈中,TCP负责决策,而IP负责执行,即IP有一种能力,能够较大概率地将数据从主机A跨网络地发送到主机B,通过这个能力,我们就知道了IP协议不提供可靠性。...④8位服务类型(Type Of Service): 3位优先权字段(已经弃用), 4位TOS字段, 和1位保留字段(必须置为0)。...通过16位标识和13为偏移和3位标志,就能确定哪些报文是需要组装的(即哪些报文是独立的,哪些是分片的),其组装顺序是如何的。最后,通过升序完成组装。...2.私有IP地址可以重复使用,而公网IP不能重复使用,每个公网IP地址只能分配给一个设备使用。 3.私有IP地址可以通过NAT技术进行转换,从而访问公网,而公有IP地址不需要。...如何判定当前这个数据包该发送到哪里呢? 这个就依靠每个节点内部维护一个路由表。
工作近十年来,开源关系数据库PostgreSQL一直是OneSignal的核心部分。多年来,我们已经在近40台服务器上扩展了多达75 TB的存储数据。...现在,运行VACUUM此表上允许的空间内,该表为将来重复使用INSERT或UPDATE,但如果,例如,你有第二个大表,可以使用一些额外的空间,这些网页将无法使用。...那么什么时候真空不是一个足够好的解决方案呢?这将取决于数据的形状和相应的访问模式。对于我们的某些数据集,我们开始无限期地或长时间保留,后来决定添加保留策略。...3 防止溢出 在应对膨胀时,“最好的进攻是良好的防守”。如果您可以避免一开始就创建它,那么您将不需要任何精美的解决方案来摆脱它。...切换或正常切换到热备用。为了实现正常切换,与内置的逻辑复制功能相比,pgologic扩展 提供了更多的旋钮来调整复制流的应用方式以及如何处理冲突。 但是,有一个主要警告。
你的开发人员开始工作,他们设计站点,并在 AWS 或任何云计算服务上设置新的虚拟服务器来托管它,以及用于存储站点数据的存储桶。 ...然后,为 S3 存储桶创建一个子域和一个 DNS CNAME 记录,以将其指向存储桶的 AWS 主机名。假设你还有一个移动应用程序,该应用程序将数据发送到此网站,因此主机名也将其放入应用程序的代码中。...他们可以注册具有相同名称的 S3 存储桶,因为他们在你的应用程序代码中找到了一个引用,现在你的应用程序正在将敏感数据发送到他们拥有的存储桶。 ...IP 重用和 DNS 方案似乎是最普遍的,可以通过多种方式缓解:通过使用云提供商提供的保留 IP 地址,这意味着在组织明确释放它们之前,它们不会被释放回共享池,通过将自己的 IP 地址传输到云,在用户不需要直接访问这些服务器时在服务之间使用专用...组织还应强制实施一项策略,防止在应用程序内对 IP 地址进行硬编码,而应将 DNS 名称用于其所有服务。
笔者在前文《Azure AI 服务之文本翻译》中简单介绍了 Azure 认知服务中的文本翻译 API,通过这些简单的 REST API 调用就可以轻松地进行机器翻译。...LongDictation 模式支持最长两分钟的语音。语音数据被分块发送到服务器,根据服务端分辨出的语句间的停顿,客户端会受到多个部分结果和多个最终结果。...bytesRead = fileStream.Read(buffer, 0, buffer.Length); // 通过 DataRecognitionClient 类型的实例把语音数据发送到服务端...服务器端通过 OnPartialResponseReceived 事件不断把识别的结果发送到客户端。...AI 的兴起让我们看到了一线希望,在介绍了 Azure AI 的语音识别服务后,让我们接着探索如何通过 AI 让程序理解文本的内容。
可观测性监控如何实施?认知一个新事物是从了解到熟悉的过程,了解的过程,我认为就是可观测性。图片对于自然界里的物质,其可观测性的对象是物质,而对云原生世界里的物质,观测对象应该是微服务架构里的应用。...利用Zabbix的HTTP方式来查询多个Prometheus的接口,通过Zabbix现有的监控模板功能、预处理和自动发现功能,通过Prometheus API,用Prometheus把不同的监控项获取数据在...在查询时,以最低标准来查询,如:CPU使用率是80%或90%,告警的时候只需60%。...搭建Webserver,将相应的数据进行梳理修正为Zabbix_sender的数据格式发送到Zabbix的服务器上,服务器同样利用监控模板和监控模板里配置的预处理及自动发现功能,监控项是自动实时创建的不需要手动创建...Skywalking也有HTTP的输出的能力,可以输出到falsk,构建外部服务器,进行数据修正,将Skywalking的告警文件数据修正为Zabbix支持的方式,发送到Zabbix Server上,进行监控模板预处理
与大多数互联网标准一样,保留IP地址是通过名为征求意见或RFC的文件建立的。 事实证明,让一台计算机与自己对话而不是与另一台计算机对话通常是有用的。...主机环回指的是,地址为127.0.0.1的数据包不应离开计算机(主机)发送,而不是发送到本地网络或internet,它只是在自身上“环回”,发送数据包的计算机成为收件人。...如何使用127.0.0.1 那么为什么要让数据包循环回同一台计算机呢?有一些常见的用例。...第一个是测试目的——如果你最终打算通过LAN或Internet托管服务器或网站,你可以在同一台计算机上运行服务器和客户端,以确保所有基础首先正常工作。...例如,如果你在本地计算机上托管了一个专用的Minecraft服务器,你可以通过输入127.0.0.1作为IP地址来连接到它。这同样适用于几乎所有本地托管的服务器。
我使用我最熟悉的 Ubuntu 18.04 版本测试了这些步骤,但这些步骤也适用于其他 Linux 发行版。 1、运行更新 开发者们不断地寻找方法,通过修补已知的漏洞,使服务器更加稳定、快速、安全。...enable 3、加强密码保护 实施强有力的密码政策是保持服务器安全、防止网络攻击和数据泄露的一个重要方面。...为防止密码重复使用: 在同一个文件(/etc/pam.d/common-password)中,添加 remember=x 行。...例如,如果你想防止用户重复使用他们最后 5 个密码中的一个,使用 remember=5。 要强制要求密码年龄: 在 /etc/login.defs 文件中找到以下几行,并用你喜欢的时间(天数)替换。...对于这样简单的自动化,你可以使用 systemd 定时器 或者你的 喜欢的 cron 来做到。 保证你的服务器安全 我们不能把保护服务器安全的责任只交给一个人或一个组织。
客户端:本地 stub 包含实现的服务方法,客户端可以直接调用 stub 的相应方法,以 pb 消息类型包装请求参数发送到服务器,同时返回服务器返回的结果。...5、Deadlines/Timeouts gRPC 允许客户端声明超时(请求 DEADLINE_EXCEEDED 异常之前等待的时间)。服务端可以通过此来判定请求是否超时及剩余处理时间。...key 大小写敏感,不能以 grpc- 做前缀(保留),二进制 value 的 key 以 -bin 结尾。 gRPC 不会使用用户自定义的元数据。 元数据使用,不同开发语言可能不同。...(python 除外) 4、每一个 gRPC channel 可以使用 0 个或多个 HTTP/2 链接,每个链接可以承载一定数量的的并发数据流。...使用 gRPC 连接池来均衡处理请求(需要特定的处理来避免重复使用同一个 channel) 5、对于 Java 语言 使用非阻塞 stubs 来并行处理 RPC 请求。
解决此问题的一种有价值的方法是对神经元活动如何在体素水平上进行建模,包括考察体素大小,认知功能的分布和血管舒张反应如何影响模拟体素活动模式中保留的信息。...例如,与测试更抽象的构造(例如预测误差或置信度)相比,如何设计实验来测试大脑区域参与彩色视觉的过程似乎会更清楚。...实时功能磁共振成像是SaaS的一个很好的例子,因为需要快速,可扩展和有弹性的计算。每个获取的脑影像将被发送到云服务器上进行分析,并在完成收集下一个脑影像之前返回结果,以进行神经反馈或实验调整。...fMRI扫描仪通过互联网将采集到的脑影像数据发送到中央系统上,然后由系统返回神经反馈。...每个扫描仪都使用服务器集群来获取自己的数据分析结果(此处为FCMA),实时提供神经反馈,并通过重复的特征选择和分类器训练来持续地更新分类器。 总结: 功能磁共振成像存在了不到二十年。
大家可以通过白名单的方式来严格控制无需授权的 API 接口的访问;除非资源完全对外开放,否则访问默认都要授权,尤其是访问用户的资源或者受限制资源。...注入当不受信任的数据作为命令或查询的一部分发送到解释器时会发生注入缺陷,例如 SQL、NoSQL 的命令注入等。攻击者的恶意数据可能会诱使解释器执行非预期的命令,或未经授权访问数据。...大多数人都会选择把钱存到可信的环境中,在需要支付时采用分开的方式授权和验证支付。API 安全防护与之相似,所以,我们需要一个具有验证和授权策略的可信环境。接下来,我们来聊聊如何去营造这样的一个环境。...防止漏洞利用API 通过消除 Web 表单或移动应用程序来简化攻击过程,从而使攻击者更容易利用目标漏洞。因此,保护 API 端点免遭业务逻辑滥用和其他漏洞利用是关键的 API 安全缓解要求。...数据防泄漏防止由于编程错误或安全控制漏洞而产生的 API 暴露或非授权访问,是防止数据泄露或丢失的一项至关重要的安全要求。
我 10 年的基础设施管理经验告诉我,可以通过以下策略来优化云基础设施的效率和安全性。...对 IaC 采用这种模式有助于通过模块化组件来避免重复代码,从而显着提高可维护性。 随着基础设施规模的扩大,管理具有重复组件的大型代码库变得繁琐且容易出错。...这将导致更有效的开发周期、更快的部署时间以及在更新期间降低引入错误的风险。 例如,虚拟私有云 (VPC) 模块可以在项目之间重复使用,从而防止每个团队成员创建单独的 VPC。...这种做法可以维护文件的完整性,并确保正确应用更改。 定期备份和版本控制:定期备份状态文件以防止数据丢失。对存储桶启用版本控制,以自动保留状态文件的先前版本。...这样可以在意外删除或损坏的情况下轻松恢复。 保护状态文件:确保状态文件已加密,并且访问权限仅限于授权用户和服务。加密状态文件可以保护敏感信息(例如访问密钥和凭据)免遭未经授权的访问。
基本防火墙工作在 OSI 模型的第 3 层和第 4 层,即它们可以根据源/目标 IP 地址和源/目标 TCP/UDP 端口允许或阻止 IP 数据包。...例如,如果内部主机成功通过防火墙访问 Internet 网站,则后者会将连接保留在其连接表中,这样来自外部 Web 服务器的回复数据包将被允许传递到内部主机,因为它们已经属于已建立的联系。...通过交换机的流量也同时发送到IDS进行检查,如果在网络流量中检测到安全异常,IDS 只会发出警报(向管理员),但无法阻止流量。...与 IPS 类似,IDS 设备也主要使用已知安全攻击和漏洞的特征来检测入侵企图。 为了向 IDS 发送流量,交换机设备必须配置一个SPAN端口,以便复制流量并将其发送到 IDS 节点。...由于现在大多数网站都使用 SSL (HTTPS),因此 WAF 还能够通过终止 SSL 会话并检查 WAF 本身的连接内的流量来提供 SSL 加速和 SSL 检查。
最后,为终端用户、服务提供商和身份提供商提出了一些有用的做法,以防止这种身份帐户不一致的威胁。...最后提出了几种有用的做法来减轻身份帐户不一致的威胁。 SP 和 IdP 都应采取必要的机制来防止在线帐户因用户身份和帐户信息不一致而受到损害。...例如,如果攻击者获得了由 Google 或 Microsoft 托管的重复使用的电子邮件地址,他们可以通过 Deseat.me轻松获得与重复使用的电子邮件地址相关联的帐户列表。...一旦假设生效,攻击者就可以开始通过 SSO 对相关的在线帐户(属于受害者)进行身份验证。与密码恢复攻击的区别:通过简单地重置或恢复帐户密码,重复使用的电子邮件地址可以直接用于劫持在线帐户 。...如果电子邮件被禁用,用户将无法接收更多服务,但身份信息仍保留在数据库中。更改电子邮件地址:终端用户请求修改他们的电子邮件地址是很常见的。
审视现实-数据仓库和数据湖之间的区别 这种必须在数据湖和数据仓库之间二选一的认知错误地限制了讨论的框架。当人们通过询问数据仓库是否过时来开启讨论时,似乎在告知是时候抛弃你的企业级数据仓库。...可以通过Athena这类的查询引擎或者像Redshift、BigQuery、Snowflake等“仓库”来查询数据湖数据内容,这些服务提供计算资源,而不是提供一个数据湖。...这种清晰源自努力实践的经验教训,很大程度上是通过失败来获得成功。 结果,数据湖的技术术语、最佳实践和致力于构建更好平台的投资都在改进。...在深入了解如何构建数据湖或如何和企业定制数据湖之前,我们有一些技巧可以帮助你进行规划。...实验: 将你的解决方案和现代BI分析工具(如Tableau、Power BI、Amazon Quicksight或Looker)结合起来,这可以让非技术用户有机会通过访问数据湖来测试和探索数据,同时也有助于你利用不同的用户群来评估性能瓶颈
速率限制通过限制在给定时间段内可以到达您的 API 的请求数量来保护您的 API 免受意外或恶意过度使用。在没有速率限制的情况下,任何用户都可以用请求轰炸您的服务器,从而导致其他用户饿死的峰值。...防止资源匮乏:速率限制的最常见原因是通过避免资源匮乏来提高基于 API 的服务的可用性。如果应用速率限制,则可以防止基于负载的拒绝服务 (doS) 攻击。...防止运营成本:在按使用付费模式自动扩展资源的情况下,速率限制通过对资源扩展设置虚拟上限来帮助控制运营成本。如果不采用速率限制,资源可能会不成比例地扩展,从而导致指数级的账单。...然后我们计算日志的总和来确定请求率。如果请求将超过阈值速率,则保留它,否则提供服务。 该算法的优点是不受固定窗口边界条件的影响。速率限制的执行将保持精确。...您可以在此处阅读有关粘性会话的更多信息 集中式数据存储:使用 Redis 或 Cassandra 等集中式数据存储来处理每个窗口和消费者的计数。
领取专属 10元无门槛券
手把手带您无忧上云