公司:兴盛
兴盛优选云原生大型分布式监控告警系统实践
星斗云告警管理平台是一个解决监控指标存储和告警规则配置的平台。它通过自研的告警管理平台实现了动态识别应用负责人联系方式和告警重要程度的能力,并提供用户自定义告警规则。告警消息的处理流程是通过Alertmanager接收并路由告警消息,最后发送给用户。平台使用Kafka消息队列和数据库实现高并发的告警消息通知和存储。文章还分析了Prometheus和Alertmanager的使用情况,并介绍了基于kvass和thanos的解决方案。总的来说,该平台提供了一个大型分布式监控告警系统,解决了云原生下大规模监控告警问题。
兴盛优选推荐系统召回算法实践
通用召回在推荐系统中扮演着重要角色,能够扩展用户兴趣、提供多样化的推荐商品。通过实时热销、热点商品、分享热门和门店热销等方式进行通用召回,跳出用户的惯性购买行为。通用召回不仅简单逻辑,还可支持运营配置,增加商品曝光。召回作为推荐的基础,若质量不好,排序准确也无济于事。因此,召回环节不可疏忽。未来将优化现有召回,并扩展更多召回方式,以保证全面准确的召回结果。
兴盛优选大前端是如何做AB实验的
picasso是一个实验平台,主要面向用户端小程序,提供实验数据和配置。它覆盖了推荐、广告、搜索、UI等业务场景,帮助业务在快速迭代的路上进行实验。未来的发展方向包括简化实验配置、详细的报告体验、用户分群功能、统计学检验和保证服务稳定。picasso团队还将提供更多功能和更好的体验,以帮助业务实现营销增长。
透视InnoDB索引 - 下
这篇文章主要介绍了单表查询中常见的查询类型及其执行方式。除了ref和range查询之外,还介绍了遍历二级索引和遍历全表的方式。当查询字段都是联合索引的字段,并且搜索条件也是联合索引字段之一时,可以通过遍历联合索引树来进行查询,这种方式称为index。而遍历全表的方式则是直接对整个表进行遍历,称为all。总结起来,文章详细解释了单表查询中不同查询类型的操作方法。
透视InnoDB索引 - 上
这篇文章介绍了使用联合索引进行排序和查询优化的注意事项。它涵盖了Explain、Redo、Undo、MVCC、事务等内容。文章强调了基于成本优化查询语句的重要性,并提供了一些具体的优化方法。虽然文章未能详尽地讨论所有细节,但建议读者耐心阅读并追更下篇,以提高对CRUD操作的理解和技能。
Dubbo微服务无损上下线探索和实践
微服务应用在下线过程中存在服务无损的问题。在高并发下,直接下线服务提供端应用实例会导致服务消费端无法实时感知下游实例的状态,继续将请求转发到已下线的实例,导致请求报错和流量损失。为解决这个问题,可以采取两个步骤:1.通过注册中心提供的主动注销接口通知服务下线;2.在注销前手动向注册中心发起注销请求,关闭流量入口。这样能避免请求发送到已下线的实例,并保证流量的正常转移。在Spring+Dubbo架构下,需要拦截下线命令,不直接执行Shutdown操作,并在销毁前手动向注册中心发起注销请求。
兴盛优选研发效能度量实战:度量体系
文章介绍了在公司内部开展度量工作的四个步骤:细化指标、收集度量数据、建立可视化平台和识别瓶颈并持续改进。同时,通过周期控制图和发布频率图可以评估团队的需求响应能力和持续交付能力。周期控制图观察需求交付速度和稳定性,越高越好;发布频率图观察发布次数和稳定性,越高越好。随着时间推移,这些曲线逐步上升,代表团队的响应能力和交付能力在提升。
分级缓存在兴盛优选数据洞察系统中的应用
文章提到了一个问题,即由于没有索引和数据集过大,查询返回较慢。作者提出了两个发展方向来解决这个问题。第一个方向是增加内存索引,以进一步加快查询速度。第二个方向是采用大表的热点缓存策略,将近期的数据放在内存里,历史数据放在外存里,从而提高数据的扩展性和查询响应速度。总的来说,文章探讨了如何通过内存索引和热点缓存来优化查询效率。
MySQL的一些高性能探索
文章提到了关于如何正确使用MySQL的问题,指出仅仅记住规则是不够的,需要对背后的原理进行思考。接着分享了两段SQL优化的实际探索经历,其中一段是关于大表分页的问题。文章解释了使用limit分页的问题和借助id分页的方式,总结了这两种方式的优缺点。
Sentinel中滑动窗口算法实现
滑动窗口算法是一种用于限流的精确度更高的算法。它将时间周期划分为多个小周期,每个小周期对应一个存储计数的桶。当请求到达时,算法会将请求计数加1,并更新窗口。最后,算法会取出统计区间内的有效窗口,并计算总和。在Sentinel中,滑动窗口算法使用定长的数组来存储窗口数据。通过实现核心操作,包括计数窗口的更新和统计区间的求和,Sentinel实现了滑动窗口算法的限流功能。在具体实现中,通过基于当前时间戳求解应属窗口的startTime,可以确定目标窗口的位置,从而进行相应的计数和统计。
兴盛优选大数据安全管控平台实践(DataS)
移动互联网时代,网购兴起,大数据成为关键。然而,数据安全与用户隐私成为挑战。Ranger是大数据用户权限控制工具,保护用户隐私和防止数据泄露。Ranger Admin是核心界面,用户可针对不同Hadoop组件设置安全策略。Agent Plugin定期从Ranger Admin拉取策略并缓存到本地,提供数据服务的权限控制。User Sync将操作系统用户/属组权限数据同步到Ranger数据库。Ranger支持权限管理和数据脱敏。然而,Ranger只适用于Hadoop生态,无法管理其他数据库类型。因此,需要一套综合大数据安全管控平台。
基于Flink+Hudi在兴盛优选营销域实时数仓的实践
Apache Flink是一种流处理系统,用于实时数仓建设。数据同步使用cannal监控数据库的binlog日志,并发送到kafka队列。Flink对数据进行加工打宽,再回写到kafka中。数据的落地使用SparkStreaming写入到hudi。Hudi是幂等的、支持事务的表,适用于电商业务。hudi表可以快照查询、增量查询和读优化。使用OLAP引擎(presto)进行即席查询,也可以将数据同步到华为的Gaussdb,实现秒级时延和更优的查询性能。
兴盛优选数据质量平台(DQC)的建设实践
文章介绍了DQC-Executor的执行流程图和中断功能的实现方式。DQC每天运行监控实例4000+次,发现并告警用户处理了业务核心表的问题,提高了数据的可用性。未来,DQC平台将改进SLA机制,实现多角度的数据质量评价;支持用户自定义模板来完善模板库;并支持实时规则校验。参考资料包括WeBankFinTech和Apache Griffin的GitHub链接,以及阿里云的文档。
兴盛优选数仓体系建设
当前兴盛优选的基础数仓采用了业界标准的数仓分层模型,并结合了Flink++Spark+Hudi的架构,使用了数据湖的功能。基于Flink实现了实时线的数据处理,可以支持秒级可见性延迟;而基于Spark和Hudi实现了批量线的数据处理,可实现5-10分钟的可见性延迟。数仓团队会根据业务需要在不同的线进行开发,以满足不同的业务需求。目前数仓已实现了0到1的建设,数据质量和使用也得到了初步的提升和推广。未来的发展方向包括提升可用性、稳定性和准确性,以及提高便利性,通过丰富多场景的宽表和优化查询方式来满足业务需求。
智能化与低码化在兴盛优选的应用与实践
本文主要介绍了在QCon 2022广州站的演讲分享中讨论的智能化与低码化的应用与探索。文章讨论了前端技术的发展历程以及低代码作为解决方案的特点。作者强调根据不同的业务场景和角色需求,平台需要具备灵活性和组件的插拔式承接性。对于不具备编码能力的运营人员、产品经理和设计师等角色,更适合使用No-Code或Auto-Code的方式,通过内置场景模块、组件和事件流转方案来快速输出产物。作者还提到了混合的建设方式,用不同的模式来解决每个环节的痛点,以实现整体流程的打通。
动态规划入门
文章介绍了动态规划算法的基本概念和解题套路,并通过一个发票项目的例子详细解释了动态规划算法的应用过程。文章强调了动态规划的重要性和挑战性,并鼓励读者通过不断练习和总结来提高动态规划的解题能力。总之,动态规划是解决复杂性问题的有效方法,需要通过状态转移的过程来推导出最终的动态规划代码。