超级管理员

超级管理员

Netty 源码分析之 Promise 与 Future

Future和Promise的关系 Netty内部的io.netty.util.concurrent.Future 继承自java.util.concurrent.Future,而Promise是前者的一个特殊实现。 Java原生Future Java并发编程包下提供了Future接口。Future

Netty 源码分析之TCP粘包和拆包

一、基本介绍 1、TCP 是面向连接的,面向流的,提供高可靠性服务。收发两端(客户端和服务器端)都要有一一成对的socket,因此,发送端为了将多个发给接收端的包,更有效的发给对方,使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据,合并成一个大的数据库,然后进行封包。这样做虽然提高了

Netty 源码分析之TCP粘包和拆包解决方案

一、解决方案 1、使用 自定义协议 + 编解码器 来解决 2、关键就是要解决 服务器端每次读取数据长度的问题,这个问题解决,就不会出现服务器多读或少读数据的问题,从而避免了 TCP粘包和拆包 二、应用实例 1、要求客户端发送 5 个 Message 对象,客户端每次发送一个 Message 对象 2

Netty入门

01、Netty入门 - Netty介绍 Netty的介绍 1、 Netty是由jboss提供的一个Java开源框架,现在Github上的独立项目; 2、 Netty是一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络IO程序; 3、 Netty主要针对在TCP协议下,面向c

Netty 源码分析之Handler

回忆handler 链式结构 我们先来回忆下在Netty 源码分析之 ChannelPipeline(一) 提到过来的handler链式结构: handler分为实现ChannelInboundHandler接口的入站处理器和实现ChannelOutboundHandler接口的出站处理器; han

那些年我们遇到的Redis高频面试题精选

本文是技术面试系列Redis篇,你在面试中关于Redis被常问的高频面试题都有哪些?下面一文带你详细了解,欢迎收藏! Redis与Memcache的区别? Redis的单线程问题? Redis的持久化方案由哪些?

面试官:MQ如何保证消息的有序性?

面试官心理剖析 面试官提出这个问题的目的是想了解对于消息队列的了解程度以及如何在分布式系统中保证消息的有序性的思考。在回答这个问题时,可以按照以下思路进行回答: 了解消息队列的特性:可以先介绍消息队列的基本概念和特性,如异步通信、解耦和可靠性等。这样可以展示对于消息队列的基本了解。 引出有序性问题:

面试官:MQ如何确保消息的不丢失?

面试官心理剖析 当面试官问到关于如何确保消息不丢失的问题时,他们可能正在评估面试者对消息队列(MQ)的理解、故障处理机制以及他们如何设计健壮的系统来避免数据丢失。以下是可能的心理剖析: 基础理解:面试官想要确认面试者是否理解MQ的基本概念,如生产者、消费者、队列、消息持久性等。 故障处理:他们想要了

面试官:MQ如何保证的高可用?

面试官心理剖析 当面试官问及MQ如何保证高可用性时,他们通常希望了解对MQ系统的深入理解,以及他们在实际应用中如何运用这些知识。面试官可能会期望能够: 理解基本概念:解释什么是高可用性和消息持久化,并说明它们对于MQ系统的重要性。 具备实践经验:分享在之前项目中是如何配置和使用MQ系统来保证高可用性

面试官:MQ如何避免消息堆积?

面试官心理剖析 面试官通过询问如何避免消息堆积的问题,旨在全面了解应聘者的技术能力、问题解决能力、系统设计能力、经验、压力测试与性能调优能力,以及沟通与合作能力。应该通过实例和经验展示自己在这些方面的实力。这样才能让面试官对自己的专业能力有更深入的了解,从而提高获得offer的可能性。 MQ实现策略

面试官:MQ如何防止消息被重复消费?

面试官心理剖析 面试官在询问如何防止MQ消息被重复消费时,其实是在考察候选人对消息队列、分布式系统设计以及容错机制的理解,通过这些问题,面试官可以全面了解候选人在处理MQ消息重复消费问题时的思考方式、技术能力和实践经验,从而评估其是否适合担任相关岗位。 MQ实现策略 MQ提供了以下几种方式来防止消息

面试沟通技巧

1. 如果正确做⾃我介绍 1.1 如何做自我介绍 注意事项 ⾃我介绍的时间控制在3分钟内。话太少:我是谁,我哪个学校毕业的,⼯作哪⾥的,结束活太多:我喜欢打篮球;社会实践,星巴克打⼯⾯试是⼀个证明题,证明你能够胜任当前岗位:达到要求:通过没有达到要求:不通过 • 只谈跟⼯作相关的内容,其它的不要过多

【web前端面试】什么是函数柯里化?一文详细讲解

什么是函数柯里化 函数柯里化(Currying)是一种在函数式编程中使用的技术,其主要目的是将一个接受多个参数的函数转换成一系列使用一个参数的函数。 这样做的好处是允许你创建一些部分应用的函数,预先固定一些参数,使得代码更简洁,便于复用和组合。 柯里化快速入门 接下来,我们来通过一个简单的示例,让大

【web前端面试】一文读懂前端数据加密

那么到底有没有必要做前端数据的加密?前端做数据的加密有时候显得多此一举,但有时又显得极为重要。很多科技和金融公司经常会问到这个问题。 前端数据加密老兵整理了以下五种方法: • HTTPS 加密传输:使用 HTTPS 协议发送请求,所有的数据都会在传输过程中进行加密,从而保护数据不以明文形式传输。这样

【web前端面试】Vue父子,子父,兄弟组件传参详细讲解

当做到比较大的项目时,一个vue文件里面可能要包含上千行代码,这样不利于后期维护与问题定位,抽离成组件就尤其重要了,重中之重的就是组件之间数据传递的几种方式。 父子传参、子父传参、兄弟传参、事件总线/事件车(EventBus)、Vuex。

【web前端面试】谈谈你对闭包(closure)得理解

闭包是JavaScript中一个重要的概念,闭包对于大部分的初学者来说理解起来十分的困难和晦涩,

JVM垃圾回收算法

标记-清除(Mark-Sweep) 概述:这是最基础的垃圾回收算法。它分为两个阶段:标记阶段和清除阶段。在标记阶段,从根对象开始,标记所有可达的对象;在清除阶段,清除所有未被标记的对象。这个算法的问题是会产生大量不连续的内存碎片,可能会导致“内存碎片化”。 优点:实现简单,容易理解。 缺点:会产生内

程序员界爆笑段子,不好笑算我输!!

程序员爱情观 爱情就是死循环,一旦执行就陷进去了;爱上一个人,就是内存泄漏–你永远释放不了;真正爱上一个人的时候,那就是常量限定,永远不会改变;女朋友就是私有变量,只有我这个类才能调用;情人就是指针用的时候一定要注意,要不然就带来巨大的灾难。 最牛叉的代码