- 德赢体育app
- Java
这篇文章不是关于K8S,也不是关于AWS。它不是关于容器——也不是关于管理大型应用程序的一些新的“酷”技术。相反,这篇文章是关于我们如何将一个高度复杂的Java服务,一个每天都在积极开发的重型服务,部署到我们遍布全球的7个数据中心的1000多个服务器上。那么问题是什么呢?获取服务器列表,让版本部署并使用像ansible这样的自动化工具运行还不够吗?好吧,这并不像看起来那么简单。该服务提供Taboola的建议,每秒响应数十万个请求。服务必须快——快到它的p95应该低于每请求500毫秒。这意味着我们根本不能有任何停机时间,甚至负担不起更慢的[…]
故事从参数开始。每个成熟的软件公司都需要一个度量系统来监控资源的利用。在某些时候,我们注意到spark执行器及其cpu的利用率不足。通常,为了通过共享提高CPU利用率,使用动态分配而不是静态资源分配。在这篇博文中,我们将定义问题,分享我们的工作目标,并强调许多与动态分配使用相关的技术特性。在Taboola,我们使用Grafana、Prometheus以及基于kafka的管道来收集来自世界各地多个数据中心的参数。大规模度量是一个非常有趣的话题,它本身涉及到多个问题,我们之前在博客和meetup演示中已经讨论过这些问题。我们的数据平台包括几个计算数据投影的服务,重要的是,这些服务都是具有长寿命spark上下文的长时间运行的流程。当被触发时,这些服务会周期性地处理新的数据块,[…]
新闻编辑室一直承受着不断的压力,要尽可能地提供最新的、相关的、吸引人的信息。在Taboola,我们正在构建工具,让这变得更快、更容易,而且现在可以预测。一旦一篇文章发表,团队就会对参与数据进行批判。尽快了解文章性能对于指导内容策略至关重要。一些文章立即得到广泛的关注,在几分钟内吸引了数十万的页面浏览量,而另一些文章可能在几个小时后才看到第一个页面浏览量。Taboola的目标是进一步缩小这一差距,通过利用机器学习模型来预测文章的阅读性能。继续阅读关于我们的最新研究和关于预测文章性能的迷人发现的细节!文章数据Taboola Newsroom是一个实时优化技术,授权编辑团队与可操作的数据围绕什么故事,标题,[…]
几个月前,我的团队有了第一次使用Java纤维的经验,我们需要使我们的主应用程序异步工作。在这个由3部分组成的系列文章中,我将分享我的团队的经验,以及我们如何在生产环境中部署和实现Java纤维。在第1部分中,我们讨论了什么是高级纤维,它们如何与线程相比较,以及为什么我们开始研究它们。在第2部分中,我们进一步深入了解了纤维与线程的区别、如何创建纤维、如何使用它们以及它们如何工作的基本概念。在这一部分中,我们将讨论在纤维中到底发生了什么,并深入探讨纤维如何工作的实现,以及在使用它们的过程中我们吸取了什么教训。我们还将看到这个魔术是如何发生的…在引擎盖下纤维是通过仪器实现的[…]
几个月前,我的团队有了第一次使用Java纤维的经验,我们需要使我们的主应用程序异步工作。在这个由3部分组成的系列文章中,我将分享我的团队的经验,以及我们如何在生产环境中部署和实现Java纤维。在前一部分(第1部分)中,我们讨论了什么是高级纤维,它们与线程的比较以及为什么我们开始研究它们。在这一部分中,我们将进一步深入讨论纤维以及它们与线程的区别,我们将看到如何创建纤维,如何使用它们,以及它们如何工作的基本概念。我们寻找了为什么不继续使用线程的原因。我们研究了使用线程与使用纤维的成本和性能损失。我们想要找到证据,证明纤维可以比线更好地工作,或者至少在[…]
几个月前,我的团队有了第一次使用Java纤维的经验,我们需要使我们的主应用程序异步工作。在这个由3部分组成的系列文章中,我将分享我的团队的经验,以及我们如何在生产环境中部署和实现Java纤维。我们将涵盖纤维是什么,如何使用它们,它们的优点和缺点,以及它们的内部,所有在指南和博客之间的混合描述我们的经验。纤程是一种轻量级的线程,旨在解决应用程序的性能、伸缩性和代码结构问题,它们可以一起工作或替代线程。如果您正在处理并发性、代码结构和异步挑战,或者您只是对学习这种技术感兴趣,那么本博客系列文章就适合您。本系列的第一部分概述了纤维是什么,接下来的部分将深入研究技术和[…]
作为Taboola研发的Scale Performance Data组的一名成员,我有机会开发了一种优先使用Kafka主题的机制。我这样做是为了解决我们所面临的一个挑战,即处理由我们基于时间序列的后端服务器从世界各地的数百个前端服务器发送的消息。在这篇文章中,我将着重于三件事。为什么我们需要这样一个机制-问题代码片段显示我如何把说的机制在适当的地方-解决方案的问题,我面对Kafka -保险杠的方式解决方案先决条件假设你有基本的知识在:Java多线程Java Kafka中的多线程来自世界各地的数据需要按分钟划分Taboola有几百个前端服务器。他们每分钟提供超过50万个请求,而且这个数字还在稳步增长。[...]
回归测试复杂的UI Web应用程序是一堆有害的东西。当他们出生时,他们通常是小的,干净的和有秩序的,但他们可能长大成为复杂和容易出错的怪物。每添加一个功能,就会增加出现新bug的机会,这通常是实现的承诺。当开发一个大型而复杂的web应用程序时,我们需要能够不断地检查回归,并验证到目前为止有效的所有内容仍然有效。这样至少我们不会破坏太多。Taboola是一家网络公司,必须以非常快的速度交付。我们在连续的基础上发布了许多功能。在这种情况下,无论你的QA团队有多大,它都不可能覆盖所有交付的功能。这意味着一个广泛的测试自动化框架是必须的。[...]