Kafka Java 客户端 Producer 原理分析

Kafka 是我认为最值得深入研究的一个消息队列,它的官方文档写的非常详尽,从配置到使用,从设计到实现无不体现研发的技术功底。 Kafka 已经发展到 3.x 时代,增加了很多的功能,比如幂等、事务等,如今已经能够保证消息 100% 消费了。 阅读源码能够有两点好处:一个是能够在工作中对 Kafka 进行深度优化,二是能够学习到消息……

阅读全文

RabbitMQ 和 Kafka 应用原理简单对比

在实际工作中用到了 RabbitMQ 和 Kafka,本篇文章围绕二者在使用上的一些认知进行展开,不涉及技术细节,仅做实践上的参考。 RabbitMQ 多用于处理业务系统之间的信息交互,所以需要保证消息的可靠性和幂等性,我在项目中实际使用的是 at-least-once 投递方式,然后针对每条消息做幂等处理。 在使用 Spring Boot AMQP 或者其他 Rabbit clien开发……

阅读全文

阿里云 OpenSearch 介绍

阿里云 OpenSearch 是一款基于 Ha3 引擎研发的商用搜索产品。在使用上给我的个人感受可以说 OpenSearch 是一套企业级搜索的完整解决方案的落地。下面我们来看一下 OpenSearch 有哪些功能。 现行搜索逻辑 下拉提示 使用 OpenSearch 官方算法模型,针对标题(title)、分类(category lines)、品牌(brand) 属性抽取值并结合高频……

阅读全文

Golang Array 和 Slice 区别

开始学习 Golang 时,对于 array 和 slice 的理解并不深入,还有很多疑惑的困扰着我。于是就深入的研究了一下。 Array 与 Slice 的 区别 array 是固定长度的,声明时必须是常量大小,定义好后不可更改,更不会扩容,超出访问地址后会 panic; array 是值类型,将旧的 array 赋值给新的 array 相当于两个完全独立的 array; slice 是 struct 类型,可动态声……

阅读全文

Mac OS 下打造 golang nvim 编程环境之基础配置

目的 为了提升编程效率,本着少即是多的原则,开始打造自己的精兵利器。 先看效果 使用 vim 的好处就是不需要再依赖于鼠标或者妙控板之类的外设,能专注于编码工作,所见即所得。 依赖环境 对于本次配置,基本上采用的都是就目前来说最新的版本,如下 checklist: Golang v1.18 iterm2 Oh-my-zsh brew Vim NeoVim Ctags vim-plug vim-go coc-go Hack Nerd Font 为了不受……

阅读全文

电商搜索技术总结

回顾 本篇文章我们针对于上文”电商搜索业务总结“中的业务需求进行拆解,并以技术角度进行分析。 对于关系好的商户我想把他们的品牌优先展示,增加曝光率 新上架一款商品,我想立即在平台上搜索到 当我使用具体款号搜索时,我希望只展示这一款的商品 我希望在搜索结果页中看到更多的品牌,而不是整页都是同……

阅读全文

电商搜索业务总结

在电商领域中,搜索和推荐是主要的流量入口,是每个电商平台不可或缺的部分,搜索功能是在用户明确意图下,尽可能的给其提供想要的商品,从而促成下单。本篇文章主要讲的是搜索的业务,涉及的技术方面将放到后面的章节中。 流量入口 以上品折扣这个网站为例,先来看一下电商搜索的入口都有哪些: 首页 首页……

阅读全文

2021 年终总结

2021 年对我个人来说是很精彩的一年,下面将以时间线的方式记录几个重要的时刻。 买了第一辆摩托车 买了第二辆摩托车 ’ 做公益项目 做公益项目给我印象最深的是我和朋友深夜 12 点吃着从便利蜂买的关东煮,坐在公司旁边的咖啡厅外的桌子上讨论技术问题,但是当产品孵化完成的喜悦是真的很有自豪感的。 偶然的机会……

阅读全文

Cypress 实践总结

前言 最近接手了一个前端的项目,这个项目使用宜搭低代码平台进行搭建,由于每次修改代码或者调整组件时都有可能造成其他问题,影响整体的项目质量,然而又不想每次都进行手动的“点点点”操作,于是就打算研究一下如今流行的前端自动化框架 cypress。 下载 使用 npm 进行下载并运行 1 2 3 4 5 6 mkidr automation-test cd……

阅读全文

年终总结

2020 年注定是不平凡的一年,在新冠疫情的影响下,居家隔离、办公、最低工资等等,企业即要保护打工人的安全又要保障公司的生存,可谓是手段频出。 今年是以自我提升为主。学习了极客时间的设计模式专栏,对设计模式有了新的认知,行为型、结构型、创建型各自的用途,以及为什么要使用设计模式,最后在实际……

阅读全文