分类 总结 中的文章

RabbitMQ connection channel 的关系

Rabbit java client 发送消息代码如下 1 2 3 4 5 6 7 8 Connection connection = connectionFactory.newConnection(); Channel channel = connection.createChannel(); AMQP.BasicProperties basicProperties = new AMQP.BasicProperties().builder() .messageId(UUID.randomUUID().toString()) .build(); channel.basicPublish("biz","dev.hello",false,basicProperties,"Hello World".getBytes()); channel.close(); connection.close(); 对于 AMQP 0-9-1 网络连接,一个客户端会与 Broker 建立一个 Tcp 长连接(Connection),并使用轻量级连接(Channel)来实现多路复用的效果。……

阅读全文

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) 属性抽取值并结合高频……

阅读全文

2021 年终总结

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

阅读全文

Cypress 实践总结

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

阅读全文

年终总结

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

阅读全文

使用 cucumber 进行行为驱动开发(BDD)

前言 保证软件质量的方式多种多样,根据测试金字塔上所描绘的,单元测试是最有效的,但是在公司内部实践的时候却遇到了一些问题,比如赶进度来不及写单元测试、改了代码逻辑单元测试也需要跟着变、验收时同样会有很多 bug,总结下来大概有几个原因: 需求分析时有很多细节没有考虑到(这个不可避免) 测……

阅读全文

微服务应用集成 SpringCloud 步骤

前言 微服务开发模式能够将复杂的业务拆分成独立的更细粒度服务,一定程度上降低了业务复杂度,但是随之而来的是如何保证各个服务的可靠性和稳定性,SpringCloud 出现的目的是为了解决这些在服务拆分后会遇到的通用问题。配置中心能让同一服务多实例间无需重启快速更新配置、注册中心能对应用……

阅读全文

通过一道数值转换题重温计算机补码

问题 昨天同事和我聊了他偶然间看到的一道面试题,引出了后面的深入分析。 1 System.out.println(Integer.valueOf((char)-1)); //output: 65535 为什么输出是 65535 而不是 -1 呢? 分析 先回顾一下计算机相关的知识点: 原码(True form) 原码是指一个二进制数左边加上符号位后所得到的码,且当二进制数大于0时,符号位为0;二进制数小于0时,符号位为1;二进制数等于0时……

阅读全文