目录

  1. RocketMQ简介和集群架构与原理(本篇)

  2. 理解RocketMQ的消息模型并与Spring集成

  3. RocketMQ源码解析

  4. RocketMQ生产环境常见问题总结

主要内容

这一部分主要是了解RocketMQ和熟悉RocketMQ的部署。从安装搭建到部署监控平台,可以快速上手这一优秀的消息组件。

阅读全文 »


目录

  1. Kafka简介和安装以及原生命令行客户端

    这块主要是一个Kafka所包含的内部元素的介绍以及简单的使用。

  2. Java客户端以及Spring集成

    Java客户端其实就是原生命令行的一种封装,学习如何使用即可,Spring就是在这个基础上再进行了对象的管理,使用起来并不难。

  3. Kafka集群架构设计

    Kafka在设计之初就是为了高吞吐、高性能、高可扩展,所以它的集群架构是非常值得学习的。

  4. Kafka日志索引详解(本篇)

    Broker能够高效地处理和保存消息,是Kafka高性能的保障。我们从可见的log文件入手,去研究一下Kafka是如何保证消息高效的流转。

主要内容

Kafka的高性能,有很大一部分就是由他的消息存储实现的。只有设计一套高效的处理和存储方案,才能支撑起它的高吞吐量。

阅读全文 »


目录

  1. Kafka简介和安装以及原生命令行客户端

    这块主要是一个Kafka所包含的内部元素的介绍以及简单的使用。

  2. Java客户端以及Spring集成(本篇)

    Java客户端其实就是原生命令行的一种封装,学习如何使用即可,Spring就是在这个基础上再进行了对象的管理,使用起来并不难。

  3. Kafka集群架构设计

    Kafka在设计之初就是为了高吞吐、高性能、高可扩展,所以它的集群架构是非常值得学习的。

  4. Kafka日志索引详解

    Broker能够高效地处理和保存消息,是Kafka高性能的保障。我们从可见的log文件入手,去研究一下Kafka是如何保证消息高效的流转。

主要内容

这一部分主要是介绍Kafka在Java客户端上的使用,包括Java客户端和Spring的集成,从客户端的角度去更深入的理解Kafka。同时还会有不同调用参数的介绍,用来实现不同的业务细节。

阅读全文 »


目录

  1. Kafka简介和安装以及原生命令行客户端

    这块主要是一个Kafka所包含的内部元素的介绍以及简单的使用。

  2. Java客户端以及Spring集成

    Java客户端其实就是原生命令行的一种封装,学习如何使用即可,Spring就是在这个基础上再进行了对象的管理,使用起来并不难。

  3. Kafka集群架构设计(本篇)

    Kafka在设计之初就是为了高吞吐、高性能、高可扩展,所以它的集群架构是非常值得学习的。

  4. Kafka日志索引详解

    Broker能够高效地处理和保存消息,是Kafka高性能的保障。我们从可见的log文件入手,去研究一下Kafka是如何保证消息高效的流转。

主要内容

这一部分主要是理解Kafka的服务端重要原理。但是Kafka为了保证高吞吐,高性能,高可扩展的三高架构,很多具体设计都是相当复杂的。我们会从数据存储入手一起探讨Kafka的集群设计。

阅读全文 »


目录

  1. Kafka简介和安装以及原生命令行客户端(本篇)

    这块主要是一个Kafka所包含的内部元素的介绍以及简单的使用。

  2. Java客户端以及Spring集成

    Java客户端其实就是原生命令行的一种封装,学习如何使用即可,Spring就是在这个基础上再进行了对象的管理,使用起来并不难。

  3. Kafka集群架构设计

    Kafka在设计之初就是为了高吞吐、高性能、高可扩展,所以它的集群架构是非常值得学习的。

  4. Kafka日志索引详解

    Broker能够高效地处理和保存消息,是Kafka高性能的保障。我们从可见的log文件入手,去研究一下Kafka是如何保证消息高效的流转。

主要内容

这一部分主要是接触Kafka并熟悉Kafka的使用方式。从安装搭建开始到基础使用,快速感受Kafka的功能,可以帮助理解基于Kafka的解决方案。

阅读全文 »


浅谈短链接设计

文章主要框架

  • 短链接介绍
  • 基本原理和设计
  • 功能优化和附属功能
  • 总结
  • 参考资料

前言

为什么会写这篇文章

前段时间,客户提出了一个需要将二维码链接放在短信里发送给用户的需求。依照最简单的思路即长链hash后转62进制短链,很快实现了功能便交付了,需求的并发量也不高,并没有产生什么性能问题。如今,再回想一下当时设计的功能,还有诸多可以改进的地方,这里就写一篇文章把想到的点拿出来讨论一下。

为什么要用短链接

当我们在日常生活和工作中分享链接时,长链接可能会带来一些不便。这种不便主要体现在以下几个方面:

  1. 便于分享: 长链接通常包含大量字符,不仅难以记忆,而且在一些字符限制的场景(比如微博、短信)中可能无法完整显示。生成短链接可以有效缩短字符长度,使得分享更加方便和顺畅。
  2. 提升美观性: 在一些场合,长串字符的链接可能显得杂乱,不够美观。通过转换成短链接,我们可以使得外观更整洁,更符合审美,从而提升用户体验。
  3. 易于记录: 无论是口头传递还是手写记载,短链接更容易被记录和传递。人们可以迅速记住短链接,而无需费心记忆冗长的字符序列。
  4. 监测和统计: 使用短链接服务通常可以提供链接点击统计和监测功能,帮助发布者了解链接的点击情况、受众行为等信息。这对于推广、营销和数据分析非常重要。
  5. 防止链接截断: 在一些应用中,长链接可能因为字符数限制而被截断,导致链接无法正常跳转,如短信内容过长导致分两条短信发送,此时链接正好被截断便无法直接点开。通过使用短链接,可以规避这个问题,确保链接的有效性。
阅读全文 »


题目1:替换空格

请实现一个函数,把字符串中的每个空格替换成"%20"。例如,输入“We are happy.”,则输出“We%20are%20happy.”。

示例 1:

1
2
输入:path = "We are happy."
输出:"We%20are%20happy"
阅读全文 »


题目:二维数组中的查找

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

1
2
3
4
5
6
7
[
[1, 4, 7, 11, 15],
[2, 5, 8, 12, 19],
[3, 6, 9, 16, 22],
[10, 13, 14, 17, 24],
[18, 21, 23, 26, 30]
]

示例 1:

1
2
输入:plants = [[2,3,6,8],[4,5,8,9],[5,9,10,12]], target = 8
输出:true

示例 2:

1
2
输入:plants = [[1,3,5],[2,5,7]], target = 4
输出:false
阅读全文 »
0%