小盒子的技术分享_社区达人页

个人头像照片
小盒子的技术分享
已加入开发者社区2004

勋章 更多

个人头像照片
专家博主
专家博主
个人头像照片
星级博主
星级博主
个人头像照片
技术博主
技术博主
个人头像照片
初入江湖
初入江湖

成就

已发布133篇文章
3条评论
已回答0个问题
0条评论
已发布0个视频
github地址

我关注的人 更多

技术能力

兴趣领域
擅长领域
技术认证

暂时未有相关云产品技术能力~

公众号:小盒子的技术分享

暂无精选文章
暂无更多信息

2022年08月

  • 08.29 20:49:14
    发表了文章 2022-08-29 20:49:14

    一文弄懂 Spring WebFlux 的来龙去脉

    本文将通过对 Reactive 以及相关概念的解释引出 Spring-WebFlux,并通过一些示例向读者解释 基于 Spring-WebFlux 如何进行反应式编程实践,同时会讨论相关技术的优缺点及技术原理。

2022年04月

  • 04.24 20:34:34
    发表了文章 2022-04-24 20:34:34

    Redis 内存回收策略

    删除策略的目标:在内存占用与CPU占用之间寻找一种平衡,顾此失彼都会造成整体redis性能的下降,甚至引发服务器宕机或内存泄露。
  • 04.24 20:29:04
    发表了文章 2022-04-24 20:29:04

    电商黑话之 spu sku

    SPU = Standard Product Unit (标准化产品单元),SPU是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的基本特性。因此在电商类产品库建立时,通常会根据SPU来建立。
  • 04.24 20:26:23
    发表了文章 2022-04-24 20:26:23

    灰度发布、蓝绿部署、金丝雀都是啥?

    在滚动部署中,应用的新版本逐步替换旧版本。实际的部署发生在一段时间内。在此期间,新旧版本会共存,而不会影响功能和用户体验。这个过程可以更轻易的回滚和旧组件不兼容的任何新组件。
  • 04.24 17:54:35
    发表了文章 2022-04-24 17:54:35

    Executor框架及线程池总结

    Executor作为一个灵活且强大的异步执行框架,其支持多种不同类型的任务执行策略,提供了一种标准的方法将任务的提交过程和执行过程进行了解耦开发,基于生产者和消费者模型,还提供了对生命周期的支持,以及统计信息收集,应用程序管理机制和性能检测等机制。
  • 04.24 17:43:44
    发表了文章 2022-04-24 17:43:44

    再聊聊ThreadLocal

    只要线程处于活动状态并且 ThreadLocal 实例可访问,那么每个线程都持有对其线程局部变量(thread-local)副本的隐式引用。在线程消失后,它的所有线程局部变量(thread-local)副本都将被垃圾回收(除非存在对这些副本的其他引用)
  • 04.24 17:31:03
    发表了文章 2022-04-24 17:31:03

    再聊聊Netty

    虽然 JAVA NIO 和 JAVA AIO 框架提供了 多路复用 IO/异步 IO 的支持,但是并没有提供上层“信息格式”的良好封装。例如前两者并没有提供针对 Protocol Buffer、JSON 这些信息格式的封装,但是 Netty 框架提供了这些数据格式封装(基于责任链模式的编码和解码功能)
  • 04.24 17:17:20
    发表了文章 2022-04-24 17:17:20

    Unix 网络 IO 模型

    文件描述符(file descriptor,简称 fd)在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。但是文件描述符这一概念往往只适用于 UNIX、Linux 这样的操作系统。
  • 04.24 16:38:15
    发表了文章 2022-04-24 16:38:15

    再聊 HashMap

    HashMap特点: KV 结构,K、V 都允许 null 值; 线程不安全,运行速度快,存取速度快; 非线程安全的
  • 04.24 16:28:03
    发表了文章 2022-04-24 16:28:03

    有关 COW (CopyOnWrite) 的一切

    写入时复制(英语:Copy-on-write,简称COW)是一种计算机 [程序设计]领域的优化策略。其核心思想是,如果有多个调用者(callers)同时请求相同资源(如内存或磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者试图修改资源的内容时,系统才会真正复制一份专用副本(private copy)给该调用者,而其他调用者所见到的最初的资源仍然保持不变。这过程对其他的调用者都是 [透明]的。此做法主要的优点是如果调用者没有修改该资源,就不会有副本(private copy) 被创建,因此多个调用者只是读取操作时可以共享同一份资源。
  • 04.24 16:03:44
    发表了文章 2022-04-24 16:03:44

    ohmyzsh 新功能解决文件全路径拷贝痛点

    Alfred 插件 在终端打开 Finder ,或在 Finder 跳转到终端 首先要有 Alfred, 这个一般 mac 用户都装过,然后安装插件 :https://github.com/LeEnno/alfred-terminalfinder 你可以在终端和文件夹自由切换了
  • 04.24 16:00:38
    发表了文章 2022-04-24 16:00:38

    缓存一致性协议-MESI

    带有高速缓存的CPU执行计算的流程 程序以及数据被加载到主内存 指令和数据被加载到CPU的高速缓存 CPU执行指令,把结果写到高速缓存 高速缓存中的数据写回主内存
  • 04.24 15:56:12
    发表了文章 2022-04-24 15:56:12

    synchronized 锁的是什么?(二)

    每个对象都存在着一个 Monitor 对象与之关联。执行 monitorenter 指令就是线程试图去获取 Monitor 的所有权,抢到了就是成功获取锁了;执行 monitorexit 指令则是释放了 Monitor 的所有权。
  • 04.24 15:50:53
    发表了文章 2022-04-24 15:50:53

    synchronized 锁的是什么?(一)

    JOL 的全称是 Java Object Layout。是一个用来分析 JVM 中 Object 布局的小工具。包括 Object 在内存中的占用情况,实例对象的引用情况等等。
  • 04.24 15:39:10
    发表了文章 2022-04-24 15:39:10

    Redis 分布式解决方案

    将数据集分散到多个节点上,每个节点负责整体的一部分,即为数据分区。分区就会涉及到分区规则,Redis 常用的是哈希分区规则,哈希分区规则比较常见的有 节点取余分区 一致性 hash 算法 虚拟槽分区
  • 04.24 15:33:46
    发表了文章 2022-04-24 15:33:46

    自顶向下学习 RocketMQ(十):消息重投和消息重试

    生产者在发送消息时,同步消息失败会重投,异步消息有重试,oneway 没有任何保证。消息重投保证消息尽可能发送成功、不丢失,但可能会造成消息重复,消息重复在 RocketMQ 中是无法避免的问题。消息重复在一般情况下不会发生,当出现消息量大、网络抖动,消息重复就会是大概率事件。另外,生产者主动重发、consumer 负载变化也会导致重复消息。
  • 04.24 15:26:06
    发表了文章 2022-04-24 15:26:06

    自顶向下学习 RocketMQ(九):回溯消费

    回溯消费是指 Consumer 已经消费成功的消息,由于业务上需求需要重新消费,要支持此功能,Broker 在向 Consumer 投递成功消息后,消息仍然需要保留。并且重新消费一般是按照时间维度,例如由于 Consumer 系统故障,恢复后需要重新消费 1 小时前的数据,那么 Broker 要提供一种机制,可以按照时间维度来回退消费进度。RocketMQ 支持按照时间回溯消费,时间维度精确到毫秒。
  • 04.24 15:23:25
    发表了文章 2022-04-24 15:23:25

    自顶向下学习 RocketMQ(八):事务消息原理分析

    事务消息发送步骤如下: 生产者将半事务消息发送至消息队列 RocketMQ 版服务端。 消息队列 RocketMQ 版服务端将消息持久化成功之后,向生产者返回 Ack 确认消息已经发送成功,此时消息为半事务消息。 生产者开始执行本地事务逻辑。 生产者根据本地事务执行结果向服务端提交二次确认结果(Commit 或是 Rollback)
  • 04.24 15:20:50
    发表了文章 2022-04-24 15:20:50

    自顶向下学习 RocketMQ(七):事务消息

    RocketMQ 事务消息(Transactional Message)是指应用本地事务和发送消息操作可以被定义到全局事务中,要么同时成功,要么同时失败。RocketMQ 的事务消息提供类似 X/Open XA 的分布事务功能,通过事务消息能达到分布式事务的最终一致。
  • 04.24 15:18:17
    发表了文章 2022-04-24 15:18:17

    自顶向下学习 RocketMQ(六):定时消息

    定时消息会暂存在名为 SCHEDULE_TOPIC_XXXX 的 topic 中,并根据 delayTimeLevel 存入特定的 queue,queueId = delayTimeLevel – 1,即一个 queue 只存相同延迟的消息,保证具有相同发送延迟的消息能够顺序消费。broker 会调度地消费 SCHEDULE_TOPIC_XXXX,将消息写入真实的 topic。
  • 04.24 15:15:39
    发表了文章 2022-04-24 15:15:39

    自顶向下学习 RocketMQ(五):顺序消息原理

    在 MQ 的模型中,顺序需要由 3 个阶段去保障: 消息被发送时保持顺序 消息被存储时保持和发送的顺序一致 消息被消费时保持和存储的顺序一致
  • 04.24 15:11:37
    发表了文章 2022-04-24 15:11:37

    JVM 调优之 glibc 引发的内存泄露

    Pmap 提供了进程的内存映射,pmap 命令用于显示一个或多个进程的内存状态。其报告进程的地址空间和内存状态信息
  • 04.24 15:06:19
    发表了文章 2022-04-24 15:06:19

    JVM调优之G1换CMS

    SIZE: 进程使用的地址空间,如果进程映射了 100M 的内存,进程的地址空间将报告为 100M 内存。事实上,这个大小不是一个程序实际使用的内存数。
  • 04.24 15:02:02
    发表了文章 2022-04-24 15:02:02

    自顶向下学习 RocketMQ(四):顺序消息

    顺序消息是消息队列 RocketMQ 提供的一种对消息发送和消费顺序有严格要求的消息。对于一个指定的 Topic,消息严格按照先进先出(FIFO)的原则进行消息发布和消费,即先发布的消息先消费,后发布的消息后消费。
  • 04.24 14:38:02
    发表了文章 2022-04-24 14:38:02

    lo4j2 漏洞复现过程及解决方案

    复现的具体流程: 先写一段想要被远程执行的 java 代码,然后编译成 class 文件 将 HTTP Server 启动,保证可以通过 Http Server 访问到这个 class 文件。 将 LDAP Server 启动,并将 Http Server 上的那个 class 文件注册上去。 启动 java 应用程序,利用 log4j2 写日志,日志内容包括如 ${jndi:ldap://127.0.0.1:1389/#Exploit} 这样的内容。 观察结果,看 class 文件中的程序逻辑有没有被执行。
  • 04.24 14:21:52
    发表了文章 2022-04-24 14:21:52

    自顶向下学习 RocketMQ(三):消息存储

    消息在 broker 上的每个分区都是组织成一个文件列表,消费者拉取数据需要知道数据在文件中的偏移量,这个偏移量就是所谓 offset。Offset 是绝对偏移量,服务器会将 offset 转化为具体文件的相对偏移量 , 消费者消费消息队列的偏移量 , 通过 offset 找到 message
  • 04.24 14:09:45
    发表了文章 2022-04-24 14:09:45

    自顶向下学习 RocketMQ(二)SpringCloud 整合 RocketMQ

    RocketMQ 主要由 Producer、Broker、Consumer 三部分组成,其中 Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息。Broker 在实际部署过程中对应一台服务器,每个 Broker 可以存储多个 Topic 的消息,每个 Topic 的消息也可以分片存储于不同的 Broker。Message Queue 用于存储消息的物理地址,每个 Topic 中的消息地址存储于多个 Message Queue 中。ConsumerGroup 由多个 Consumer 实例构成。
  • 04.24 14:06:15
    发表了文章 2022-04-24 14:06:15

    自顶向下学习 RocketMQ(一): QuickStart

    采用源码编译安装,注意请提前将 maven 安装调试好。 操作系统 macOS RocketMQ 版本:4.9.2 Maven 版本 3.3.9 JDK 版本 1.8.0_181
  • 04.24 14:02:52
    发表了文章 2022-04-24 14:02:52

    我就想存个文件,怎么这么麻烦 ?- k8s PV、PVC、StorageClass 的关系

    当我们使用 Docker 时,设置数据卷(Volume)还是比较简单的,只需要在容器映射指定卷的路径,然后在容器中使用该路径即可。
  • 04.24 13:58:50
    发表了文章 2022-04-24 13:58:50

    istio 原理简介

    Istio 的架构分为控制平面和数据平面 数据平面:由一组智能代理(Envoy)以 sidecar 模式部署,协调和控制所有服务之间的网络通信。 控制平面:负责管理和配置代理路由流量,以及在运行时执行的政策。
  • 04.24 13:54:40
    发表了文章 2022-04-24 13:54:40

    幂等解决方案集合(二)消息幂等

    msgId 一定是全局唯一标识符,但是实际使用中,可能会存在相同的消息有两个不同 msgId 的情况(消费者主动重发、因客户端重投机制导致的重复等),这种情况就需要使业务字段进行重复消费。
  • 04.24 13:38:50
    发表了文章 2022-04-24 13:38:50

    Kubernetes监控体系总结

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux/Windows/Mac 机器上。容器镜像正成为一个新的标准化软件交付方式。为了能够获取到 Docker 容器的运行状态,用户可以通过 Docker 的 stats 命令获取到当前主机上运行容器的统计信息,可以查看容器的 CPU 利用率、内存使用量、网络 IO 总量以及磁盘 IO 总量等信息。
  • 04.24 13:30:42
    发表了文章 2022-04-24 13:30:42

    幂等解决方案集合(一)

    在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。
  • 04.24 13:25:13
    发表了文章 2022-04-24 13:25:13

    几个在 Mac 电脑上提高程序员开发效率的小工具

    快速打开多个 idea 工程 或前端 vscode 工程 前提是你安装了 iterm + oh my zsh 这个组合,后面就比较简单了 vscode 比较简单,打开后先 command+shift+p , 然后输入 shell command 提示安装 code 命令。 安装好后,在 iterm 终端界面,找到想打开的文件或目录,用 code 命令加参数打开即可。
  • 04.24 13:15:50
    发表了文章 2022-04-24 13:15:50

    百度 UidGenerator 源码解析

    Twitter 实现中使用前 5 位作为数据中心标识,后 5 位作为机器标识,可以部署 1024 (2^10)个节点。意思就是最多代表 2 ^ 5 个机房(32 个机房),每个机房里可以代表 2 ^ 5 个机器(32 台机器)。具体的分区可以根据自己的需要定义。比如拿出 4 位标识业务号,其他 6 位作为机器号。
  • 04.24 13:08:32
    发表了文章 2022-04-24 13:08:32

    iptables 常用命令

    使用 -t 选项指定了要操作的表,此处指定了操作 filter 表,与之前的查看命令一样,不使用-t 选项指定表时,默认为操作 filter 表。 使用-I 选项,指明将”规则”插入至哪个链中,-I 表示 insert,即插入的意思,所以-I INPUT 表示将规则插入于 INPUT 链中,即添加规则之意。 使用-s 选项,指明”匹配条件”中的”源地址”,即如果报文的源地址属于-s 对应的地址,那么报文则满足匹配条件,-s 为 source 之意,表示源地址。
  • 04.24 13:04:28
    发表了文章 2022-04-24 13:04:28

    如何利用 VsCode + evernote + markdown 将自己的博客自动同步成笔记

    本文介绍利用 VsCode + evernote + markdown 将自己的博客自动同步成笔记的方法。
  • 04.24 12:53:02
    发表了文章 2022-04-24 12:53:02

    Spring Boot 整合 OpenFeign + Nacos 的坑

    先在本地部署 Nacos server,然后在 springBoot 项目中添加依赖,理想情况下,服务会自动会注册到注册中心。 环境 SpringBoot 版本:2.3.1.RELEASE Nacos server 版本:2.0.3 nacos-discovery-spring-boot-starter 版本:0.2.10
  • 04.24 12:48:26
    发表了文章 2022-04-24 12:48:26

    多租户系统设计

    多租户可以分为几个不同的类别: 云中的简单虚拟化,其中只对硬件进行共享。 共享应用程序,对每个租户使用不同的数据库。 共享应用程序和数据库(效率最高,真正的多租户)。
  • 04.24 12:45:15
    发表了文章 2022-04-24 12:45:15

    记一次 OpenFeign 线上乱码问题

    Accept-Encoding 和 Content-Encoding 是 HTTP 中用来对采用何种压缩格式传输正文进行协定的一对 header。工作原理如下: 浏览器发送请求,通过 Accept-Encoding 带上自己支持的内容编码格式列表 服务端从中挑选一个用来对正文进行编码,并通过 Content-Encoding 响应头指明响应编码格式。 浏览器拿到响应正文后,根据 Content-Encoding 进行解压缩。服务端若响应未压缩的正文,则不允许返回 Content-Encoding。
  • 04.24 12:41:31
    发表了文章 2022-04-24 12:41:31

    OpenFeign 如何设置动态 URL?

    本文介绍如何在OpenFeign中设置动态 URL
  • 04.24 09:22:36
    发表了文章 2022-04-24 09:22:36

    ShardingSphere 分库分表(2)-单表分表解决方案

    老表 id 根据情况迁移到新表后可以用原始 id 值,也可以重新生成新的 id。如果你的业务并没有用老表 id 作任何业务操作只是一个主键标识,那么无所谓改不改,如果为了统一也可以重新用算法生成新的 id。而如果老表 id 本身有参与业务,比如你的 SQL 里面有利用这个字段关联表,那么就不要动了,因为成本非常高,改的东西很多,个人认为没有必要。
  • 04.24 09:18:22
    发表了文章 2022-04-24 09:18:22

    订单号和 id 列可不可以是同一列?

    在分布式场景中,单表已经不能满足我们的需求了,所以用自增 id 的方案也就不合适了。当比如我们进行分表设计时,主键列到底如何生成就成了一个问题,流行的方法是利用像 snowflake 这样的算法计算出一个趋势有序的值作为 id。(当然还有其他多种方法)这样就满足了扩展性和一定程度上解决了检索性能的问题。
  • 04.24 09:14:57
    发表了文章 2022-04-24 09:14:57

    ShardingSphere 分库分表--第(1)篇

    传统数据库软件开发中,主键自动生成技术是基本需求。而各个数据库对于该需求也提供了相应的支持,比如 MySQL 的自增键,Oracle 的自增序列等。数据分片后,不同数据节点生成全局唯一主键是非常棘手的问题。同一个逻辑表内的不同实际表之间的自增键由于无法互相感知而产生重复主键。虽然可通过约束自增主键初始值和步长的方式避免碰撞,但需引入额外的运维规则,使解决方案缺乏完整性和可扩展性。
  • 04.24 09:10:54
    发表了文章 2022-04-24 09:10:54

    ShardingSphere 实现数据加密(脱敏)第二篇

    通过 Apache ShardingSphere,针对新增的数据,会把明文写到 pwd 列,并同时把明文进行加密存储到 pwd_cipher 列。此时,由于 queryWithCipherColumn 设置为 false,对业务应用来说,依旧使用 pwd 这一明文列进行查询存储,却在底层数据库表 pwd_cipher 上额外存储了新增数据的密文数据
  • 04.24 09:05:30
    发表了文章 2022-04-24 09:05:30

    ShardingSphere 实现数据加密(脱敏)第一篇

    Apache ShardingSphere 通过对用户输入的 SQL 进行解析,并依据用户提供的加密规则对 SQL 进行改写,从而实现对原文数据进行加密,并将原文数据(可选)及密文数据同时存储到底层数据库。在用户查询数据时,它仅从数据库中取出密文数据,并对其解密,最终将解密后的原始数据返回给用户。Apache ShardingSphere 自动化 & 透明化了数据加密过程,让用户无需关注数据加密的实现细节,像使用普通数据那样使用加密数据。此外,无论是已在线业务进行加密改造,还是新上线业务使用加密功能,Apache ShardingSphere 都可以提供一套相对完善的解决方案。
  • 04.24 09:02:38
    发表了文章 2022-04-24 09:02:38

    SpringBoot + ShardingSphere-JDBC 实现读写分离

    上一篇我们用 ShardingSphere-Proxy实现了读写分离 ShardingSphere 实战之读写分离 这一次我们用 ShardingSphere-JDBC 来实现一下
  • 04.24 08:59:52
    发表了文章 2022-04-24 08:59:52

    ShardingSphere 实战之读写分离

    采用 ShardingShpere 的 Sharding-Porxy(透明化的数据库代理端) 模式在本地实现 mysql 数据库读写分离,并通过 java 应用程序连接.
  • 发表了文章 2022-08-29

    一文弄懂 Spring WebFlux 的来龙去脉

  • 发表了文章 2022-04-24

    Redis 内存回收策略

  • 发表了文章 2022-04-24

    电商黑话之 spu sku

  • 发表了文章 2022-04-24

    灰度发布、蓝绿部署、金丝雀都是啥?

  • 发表了文章 2022-04-24

    Executor框架及线程池总结

  • 发表了文章 2022-04-24

    再聊聊ThreadLocal

  • 发表了文章 2022-04-24

    再聊聊Netty

  • 发表了文章 2022-04-24

    Unix 网络 IO 模型

  • 发表了文章 2022-04-24

    再聊 HashMap

  • 发表了文章 2022-04-24

    有关 COW (CopyOnWrite) 的一切

  • 发表了文章 2022-04-24

    ohmyzsh 新功能解决文件全路径拷贝痛点

  • 发表了文章 2022-04-24

    缓存一致性协议-MESI

  • 发表了文章 2022-04-24

    synchronized 锁的是什么?(二)

  • 发表了文章 2022-04-24

    synchronized 锁的是什么?(一)

  • 发表了文章 2022-04-24

    Redis 分布式解决方案

  • 发表了文章 2022-04-24

    自顶向下学习 RocketMQ(十):消息重投和消息重试

  • 发表了文章 2022-04-24

    自顶向下学习 RocketMQ(九):回溯消费

  • 发表了文章 2022-04-24

    自顶向下学习 RocketMQ(八):事务消息原理分析

  • 发表了文章 2022-04-24

    自顶向下学习 RocketMQ(七):事务消息

  • 发表了文章 2022-04-24

    自顶向下学习 RocketMQ(六):定时消息

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息