![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 87
倾听铃的声
想了解更多相关学习资料请点赞收藏+评论转发+关注我之后点进我的主页右上角私信,即刻领取免费资
展开
-
Zookeeper 集群部署的那些事儿
简介额。。。。, &*$% 淘气!ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效、高可用的分布式协调服务。ZooKeeper 本质上是一个分布式的小文件存储系统。提供类似于文件系统目录树方式的数据存储,并且可以对书中的节点进行有效管理。从而用来维护和监控存储的数据的状态变化,通过监控这些数据状态的变化,实现基于数据的集群管理。运行模式ZooKeeper 运行模式有三种:单机模式、伪集群模式、集群模式单机模式: ...原创 2022-05-15 14:00:00 · 288 阅读 · 0 评论 -
你还没会吗?这几张图揭晓 RocketMQ 存储设计的奥妙
RocketMQ 作为一款基于磁盘存储的中间件,具有无限积压能力,并提供高吞吐、低延迟的服务能力,其最核心的部分必然是它优雅的存储设计。1、存储概述RocketMQ 存储的文件主要包括 Commitlog 文件、ConsumeQueue 文件、Index 文件。RocketMQ 将所有主题的消息存储在同一个文件中,确保消息发送时按顺序写文件,尽最大能力确保消息发送的高可用性与高吞吐量。但消息中间件一般都是基于主题的订阅与发布模式,消息消费时必须按照主题进行帅选消息,显然从 Commitl..原创 2022-05-11 19:25:46 · 70 阅读 · 0 评论 -
不服不行,黑马 java 教学多线程 pdf,腾讯 T5 高级程序员总结
正文在写这个文章之前,我花了点时间,自己臆想了一个电商系统,基本上算是麻雀虽小五脏俱全,我今天就用它开刀,一步步剖析,我会讲一下我们可能会接触的技术栈可能不全,但是够用,最后给个学习路线。Tip:请多欣赏一会,每个点看一下,看看什么地方是你接触过的,什么技术栈是你不太熟悉的,我觉得还算是比较全的,有什么建议也可以留言给我。不知道大家都看了一下没,现在我们就要庖丁解牛了,我从上到下依次分析。前端你可能会会好奇,你不是讲后端学习路线嘛,为啥还有前端的部分,我只能告诉你,傻瓜,原创 2022-05-11 17:01:22 · 131 阅读 · 0 评论 -
MySql 优化:MySQL 体系结构及存储引擎总结
一、MySQL 结构体系Java 面试准备准确的说这里又分为两部分: Java 刷题 算法刷题Java 刷题:此份文档详细记录了千道面试题与详解;总体上, 我们可以把 MySQL 分成三层,分层再详细一点的话可以将存储引擎层再分为引擎层和存储层:连接层最上层是一些客户端和链接服务,包含本地 sock 通信和大多数基于客户端/服务端工具实现的类似于 TCP/IP 的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线...原创 2022-05-11 16:39:09 · 231 阅读 · 0 评论 -
All in one:如何搭建端到端可观测体系
可观测的前生今世系统的可观测与故障可分析作为系统运维中重要的衡量标准,随着系统在架构、资源单位、资源获取方式、通信方式演进过程,遇到了巨大挑战。而这些挑战,也在倒逼着运维相关技术发展。在正式开始今天的内容前,我们来讲讲可观测的前世今生,纵观整个运维监控发展历程,监控与可观测已经发展了近 30 年。上世纪 90 年代末,随着计算从大机(mainframe)逐渐转移到桌面电脑,client-server 架构的应用开始盛行,大家开始关注网络性能和主机资源。为了更好的监控这种 CS 的应用,第一代 APM原创 2022-05-11 15:47:02 · 123 阅读 · 0 评论 -
Java 架构师面试问些什么?微服务之 springcloud 面试题(共 22 题
7、微服务之间是如何独立通讯的 1) 远程过程调用(Remote Procedure Invocation) 也就是我们常说的服务的注册与发现,直接通过远程过程调用来访问别的 service。 优点: 简单,常见,因为没有中间件代理,系统更简单 缺点: a. 只支持请求/响应的模式,不支持别的,比如通知、请求/异步响应、发布/订阅、发布/异步响应; b. 降低了可用性,因为客户端和服务端在请求过程中必须都是可用的 2) 消息 使用异步消息来做服务间通信。服务间通过消息管道来交换消息,从而通信。 优...原创 2022-05-10 20:29:17 · 320 阅读 · 0 评论 -
2022最新基于 Spring Cloud 的微服务架构分析,java 技术经理岗位职责
构建在开发团队之外的 API 网关必须具备负载均衡能力,可以配置多个 IP 地址。通过该 API 网关也最好具备和 Docker 容器扩展后的服务自动注册和地址加入扩展能力。Eureka 的竞品分析:Nacos、ZooKeeper、Etcd服务发现是一个古老的话题,当应用开始脱离单机运行和访问时,服务发现就诞生了。目前的网络架构是每个主机都有一个独立的 IP 地址,那么服务发现基本上都是通过某种方式获取到服务所部署的 IP 地址。DNS 协议是最早将一个网络名称翻译为网络 IP 的协议,在最初的原创 2022-05-10 17:23:15 · 352 阅读 · 0 评论 -
46 道面试题带你了解高级 Java 面试,linux 教程视频合集
正文?作为后端开发,日常操作数据库最常用的是写操作和读操作。读操作我们下边会讲,这个分类里我们主要来看看写操作时为什么会导致 SQL 变慢。刷脏页脏页的定义是这样的:内存数据页和磁盘数据页不一致时,那么称这个内存数据页为脏页。那为什么会出现脏页,刷脏页又怎么会导致 SQL 变慢呢?那就需要我们来看看写操作时的流程是什么样的。对于一条写操作的 SQL 来说,执行的过程中涉及到写日志,内存及同步磁盘这几种情况。这里要提到一个日志文件,那就是 redo log,位于存储引擎层,用来原创 2022-05-09 15:48:46 · 78 阅读 · 0 评论 -
Java垃圾回收机制你还不明白?一线大厂面试必问的
什么是自动垃圾回收?自动垃圾回收是一种在堆内存中找出哪些对象在被使用,还有哪些对象没被使用,并且将后者删掉的机制。所谓使用中的对象(已引用对象),指的是程序中有指针指向的对象;而未使用中的对象(未引用对象),则没有被任何指针给指向,因此占用的内存也可以被回收掉。在用 C 之类的编程语言时,程序员需要自己手动分配和释放内存。而 Java 不一样,它有垃圾回收器,释放内存由回收器负责。本文接下来将介绍垃圾回收机制的基本过程。标记垃圾回收的第一步是标记。垃圾回收器此时会找出哪些内存在使用中,还原创 2022-05-08 20:23:27 · 93 阅读 · 0 评论 -
学习Java的程序员该怎么自学java怎么入门?
一、JavaSE基础篇JavaSE就是一种标准版,是Java语言的基础部分,Java衍生出来的各种框架(如Spring系列)各种产品都是基于JavaSE标准,JavaSE是Java向上发展的基础,Java任何高级产品的底层基础都是JavaSE,通俗来讲这是所有孩子的“爹”。JavaSE如果学不好,理解不透彻,后面学习框架时就有如天书一般,所以JavaSE这部分的重要性是不言而喻的。主要包含内容:数据类型、基础语法、运算符、流程控制、数组、面向对象、常用类、异常处理、集合、IO流、多线程、反射、注解、原创 2022-05-08 16:09:54 · 288 阅读 · 0 评论 -
程序员红利怎么吃?如何在法国当程序员?
程序员真的是一个红利吗?对于下周一还要去做颈椎肩膀复建的我来说,也许真是我“身在福中不知福”。程序员这个身份的确给了我经济保障与底气,但它大量占据我的时间,消磨我的精力,造成我过劳肥+身体损伤。重要的是我没有那么喜欢编程,它只是一个比较体面的养家糊口的“营生”,一碗不咋美味的青春饭。除了钱,它带给我许多麻烦。但是如果有人是觉得这是“红利”,干嘛自己不吃呢,还要埋怨干这行的人呢?他们可能自己想转入“程序员”的行列,却没什么方法。所以觉得程序员是个上好的职业,只是与自己无缘。因此我写了这篇文章...原创 2022-05-08 14:45:36 · 1263 阅读 · 0 评论 -
膜拜-华为内部都在强推的 783 页大数据处理系统:Hadoop 源代码 pdf
第 3 章 Hadoop 集群和 YARN,虽然 Hadoop 也可以在单机上运行,但是这个平台的典型运行场景无疑是在多机的集群(Cluster)上。我们把运行着 Hadoop 平台的集群,就 Hadoop 平台的边界所及,称为“Hadoop 集群”。其中的每台机器都成为集群的一个“节点(node)”,节点之间连成一个局域网。这个局域网一般都是交换网,而不是路由网。这就是说,集群中只有交换机(switch),一般是二层交换机,也可能是三层交换机,但是没有普通的路由器,因为那些路由器引入的延迟太大了。不过这也原创 2022-05-06 20:40:04 · 1802 阅读 · 0 评论 -
2022 最新中高阶 Java 面试题总结,牛笔了
数据库 2.1 池化技术:如何减少频繁创建数据库连接的性能损耗? 2.2 数据库优化方案(一):查询请求增加时,如何做主从分离? 2.3 数据库优化方案(二):写入数据量增加时,如何实现分库分表? 2.4 发号器:如何保证分库分表后 ID 的全局唯一性? 2.5 NoSQL:在高并发场景下,数据库和 NoSQL 如何做到互补? 缓存 3.1 缓存:数据库成为瓶颈后,动态数据的查询要如何加速? 3.2 缓存的使用姿势(一):如何原创 2022-05-05 20:15:28 · 193 阅读 · 0 评论 -
搞懂钩子方法和模板方法,看完这篇就够了
通常的模板方法模式中会设计一个 abstract 的抽象方法,交给它的子类实现,这个方法称为模板方法。而钩子方法,是对于抽象方法或者接口中定义的方法的一个空实现,也是模板方法模式的一种实现方式。1 模板方法模式中的钩子方法我们以网络课程创建流程为例:发布预习资料 → 制作课件 PPT → 在线直播 → 提交课堂笔记 → 提交源码 → 布置作业 → 检查作业。首先创建 AbastractCourse 抽象类。public abstract class AbastractCourse ...原创 2022-05-04 20:55:27 · 415 阅读 · 0 评论 -
我在组内的 Nacos 分享
Nacos 简介Nacos : Naming and Configuration Service,可打包部署配置中心和注册中心,也可独立部署其中之一,配置中心、控制台依赖 mysql,由阿里巴巴 2018 年 8 月开源,github 19.1k star(截止 2021.08.24)小伙伴们有兴趣想了解内容和更多相关学习资料的请点赞收藏+评论转发+关注我,后面会有很多干货。我有一些面试题、架构、设计类资料可以说是程序员面试必备!所有资料都整理到网盘了,需要的话欢迎下载!私信我回复【000...原创 2022-05-04 20:31:08 · 115 阅读 · 0 评论 -
JavaScript中的继承和组合
继承与组合都是面向对象中代码复用的方式,了解各自有什么特点,可以让我们写出更简洁的代码,设计出更好的代码架构。“我应该怎么使用继承和组合”这是一个常见的问题,不仅是JavaScript相关,但是本篇我们只讨论JavaScript相关的内容和示例。如果你不知道什么是组合或继承,我强烈推荐你去查看相关内容,因为本文的主要讲的就是怎么使用和如何选择它们,但是为了确定我们在一个频道,让我们先了解一下组合和继承吧。继承是面向对象编程核心概念之一,可以帮助我们避免代码重复。主要的思想是我们可以创建...原创 2022-04-30 16:26:19 · 1237 阅读 · 0 评论 -
985 研究生入职电网 6 个月,牛客网面经下载,血与泪的总结
什么是 RPC?RPC 原理是什么?什么是 RPC?RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。比如两个不同的服务 A、B 部署在两台不同的机器上,那么服务 A 如果想要调用服务 B 中的某个方法该怎么办呢?使用 HTTP 请求 当然可以,但是可能会比较慢而且一些优化做的并不好。 RPC 的出现就是为了解决这个问题。RPC 原理是什么? 服务消费方(client)调用以本地调用方..原创 2022-04-29 21:22:15 · 134 阅读 · 0 评论 -
2022 年金三银四最新美团、字节、阿里,阿里巴巴 java 面试流程
一面====== 一道算法题,十分钟左右时间,要求能正常运行,通过给出的测试用例。 最近做过的最有挑战的项目,有哪些难点? 结合项目细聊系统的设计,根据你的设计提出疑问。 你们项目中是如何保证数据一致性的? 代码在执行 SQL 语 句时,数据库连接出现了超时异常,但是你不知道这条 SQL 语句在数据库中究竟有没有执行成功,这种情况怎么保证数据的一致性? 你们系统中分布式锁是如何实现的?(当时回答采用 redis 实现,set(ke原创 2022-04-29 21:17:13 · 487 阅读 · 0 评论 -
Saleforce 基于 Kotlin 构建数据管道的探索和实践
直到最近,我们都和许多公司一样在基于 Java 或 Scala 的那几种技术(包括 Apache Spark、Storm 和 Kafka)中选一种来构建我们的数据管道。但 Java 是一种非常冗长的语言,因此用 Java 编写这些管道时需要大量样板代码。例如,bean 类这么简单的东西也需要编写多个常规的 getter 和 setter 以及多个构造器和/或构建器。一般来说,哈希和相等方法必须用一种很平常但啰嗦的方式覆盖掉。此外,所有函数参数都需要检查是否为“null”,为此需要多个污染代码的分支运算符..原创 2022-04-29 21:10:06 · 2314 阅读 · 0 评论 -
社招和校招有什么不同?阿里美团等大厂 JAVA 社招面经分享
多线程并发编程:线程池的构造参数及其含义,如何确定线程池中线程的个数等 定时线程池如何实现的? synchronized,volatile 关键字 原子性,可见性与有序性 可重入的锁 ReentrantLoc ThreadLocal 的实现原理 AQS 底层实现,与 ReentrantLock 的关系JVM 知识点:内存区域划分 OOM 介绍 对象分配与回收 CMS 和 G1 垃圾收集器 对象可达性分析 类加载机制 JVM 调优参数 Full GC,Minor ...原创 2022-04-29 20:53:24 · 2463 阅读 · 0 评论 -
【基础 01】Android 开发到底是做什么?
二、Android 相关技术Android 的能力很复杂,不同分类的 App 会偏重不同的技术点,但基本的功能是相似的,基础的部分我们只谈所有 App 都必须用到的技术,实践部分再根据情况展开。1. 前提:开发环境和编程语言Android 开发有唯一官方指定 IDE:Android Studio,Android Studio 支持 Windows、Mac 以及 Linux,所以开发机的选择范围非常广泛,但考虑到编译的时间和开发时的体验,至少要保证 8G 内存。开发语言可以选择 J原创 2022-04-28 16:55:20 · 922 阅读 · 0 评论 -
华为架构师亲手操刀,世界五百强都在用的 kafka 也就那么回事
Broker 概述======== Broker 的启动 Broker 内部的模块组成 Broker 的基本模块=========== ?SocketServer ?KafkaRequestHandlerPool 3KafkaApis ?KafkaHealthcheck Broker 的控制管理模块============= ?KafkaController 的选举策略 ?原创 2022-04-28 16:50:49 · 596 阅读 · 0 评论 -
阿里二面:redis分布式锁过期了但业务还没有执行完,怎么办
面试官:你们系统是怎么实现分布式锁的?我:我们使用了redis的分布式锁。具体做法是后端接收到请求后加入一个分布式锁,如果加锁成功,就执行业务,如果加锁失败就等待锁或者拒绝请求。业务执行完成后释放锁。面试官:能说一下具体使用的命令吗?我:我们使用的是SETNX命令,具体如下:SETNX KEY_NAME VALUE设置成功返回1,设置失败返回0。如下图,客户端1加锁成功,客户端2获取锁失败:面试官:这样设置会不会有问题呢?如果加锁成功的客户端挂了怎么办?我:比如上图中的客户原创 2022-04-27 21:36:23 · 319 阅读 · 0 评论 -
2022Java 常见笔试题, java 编程题送信,字节 Java 面试题
第一家是美团美团的话,三面下来,设计的内容知识也是挺广的吧,有 MySQL、Redis、Kafka、线程、算法、+、volatile、线程、并发、设计模式等等...一面问题:MySQL+Redis+Kafka+线程+算法 mysql 知道哪些存储引擎,它们的区别 mysql 索引在什么情况下会失效 mysql 在项目中的优化场景,慢查询解决等 mysql 有什么索引,索引模型是什么 B-树与 B+树的区别?为什么不用红黑树 mysql原创 2022-04-27 17:00:13 · 410 阅读 · 0 评论 -
html5 移动端开发 2022,跳槽大厂必看
Android 开发面试的几部分1、基础知识基础知识包括几个部分:Java(JDK、JVM)、Android、数据结构和算法、计算机基础、设计模式,有的还会问 Flutter。Java 部分:不太推荐这部分只看博客,因为很多博客并不系统也不完整,推荐完整看一遍《深入理解 Java 虚拟机》这本书,基本上这里面涵盖了 JVM 相关的所有面试问题,包括内存分区、GC 机制、内存模型、锁、字节码、类加载等。JDK 的部分会杂一些,基本上可以归类为几种:容器(必问 HashMap原创 2022-04-27 16:55:40 · 313 阅读 · 0 评论 -
【TcaplusDB 知识库】MySQL Driver 使用入门
兼容 MySQL 协议是 TcaplusDB 的新特性,目前支持的 SQL 功能有限,包括以下 7 个要点: 支持单表的 SELECT、INSERT、DELETE、UPDATE 语句; SELECT、DELETE、UPDTATE 操作的 WHERE 子句中必须明确指定一个或多个主键,详见后文《SQL 语法使用参考》; 在配置了全局索引的情况下,支持基础的聚合函数,详见后文《全局索引查询》; 暂不支持 prepared statement; 暂不支持 DDL,原创 2022-04-27 16:52:24 · 452 阅读 · 0 评论 -
7 张图揭晓 RocketMQ 存储设计的精髓
RocketMQ 作为一款基于磁盘存储的中间件,具有无限积压能力,并提供高吞吐、低延迟的服务能力,其最核心的部分必然是它优雅的存储设计。存储概述RocketMQ 存储的文件主要包括 Commitlog 文件、ConsumeQueue 文件、Index 文件。RocketMQ 将所有主题的消息存储在同一个文件中,确保消息发送时按顺序写文件,尽最大能力确保消息发送的高可用性与高吞吐量。但消息中间件一般都是基于主题的订阅与发布模式,消息消费时必须按照主题进行帅选消息,显然从 Commitlo...原创 2022-04-27 16:41:17 · 164 阅读 · 0 评论 -
Flink 的容错管理详细剖析
1. Checkpoint 介绍checkpoint 机制是 Flink 可靠性的基石,可以保证 Flink 集群在某个算子因为某些原因(如 异常退出)出现故障时,能够将整个应用流图的状态恢复到故障之前的某一状态,保 证应用流图状态的一致性。Flink 的 checkpoint 机制原理来自“Chandy-Lamport algorithm”算法。小伙伴们有兴趣想了解内容和更多相关学习资料的请点赞收藏+评论转发+关注我,后面会有很多干货。我有一些面试题、架构、设计类资料可以说是程序员面试...原创 2022-04-27 16:36:37 · 243 阅读 · 0 评论 -
Nginx面试,java锁机制面试题
前言面试前就有听说过字节比较考验算法,面试的时候果然是,还好自己刷题比较多,这也验证了一个说法,大家在面试字节等目前比较火的互联网公司,一定要记得多刷题,文末会有自己面试的时候准备好的面试题PDF文档,有注意各位查漏补缺,有需要的可以找我免费获取到,这次面试的答案我也已经整理出来了,文末会有获取方式! 具体的面试题,大家看正文吧!拼多多一面首先自我介绍 参加过哪些项目 并发编程三要素? 实现可见性的方法有哪些? 多线程的价值? 创建线程的三种方式的对比? 画出线程的状态流转图 常用的原创 2022-04-26 15:14:17 · 73 阅读 · 0 评论 -
轻量级DI框架Guice使用详解
背景#在日常写一些小工具或者小项目的时候,有依赖管理和依赖注入的需求,但是Spring(Boot)体系作为DI框架过于重量级,于是需要调研一款微型的DI框架。Guice是Google出品的一款轻量级的依赖注入框架,使用它有助于解决项目中的依赖注入问题,提高了可维护性和灵活性。相对于重量级的Spring(Boot)体系,Guice项目只有一个小于1MB的核心模块,如果核心需求是DI(其实Guice也提供了很低层次的AOP实现),那么Guice应该会是一个合适的候选方案。小伙伴们有兴趣想了解内容和更多相原创 2022-04-25 20:59:27 · 827 阅读 · 0 评论 -
今日头条一面:十道经典面试题解析,Redis 如何实现高可扩展
4.3 虚拟内存如何映射到物理内存?如下图,CPU 里有一个内存管理单元(Memory Management Unit),简称为 MMU,虚拟内存不是直接送到内存总线,而是先给到 MMU,由 MMU 来把虚拟地址映射到物理地址,程序只需要管理虚拟内存就好,映射的逻辑自然有其它模块自动处理。5.一台机器最多可以建立多少个 tcp 连接,client 端,server 端,超过了怎么办 TCP 连接的客户端机:每一个 ip 可建立的 TCP 连接理论受限于 ip_local_port原创 2022-04-25 16:20:53 · 1426 阅读 · 0 评论 -
Oracle 数据库访问性能优化
全模糊查询是无法优化的,一定要使用的话建议使用搜索引擎。4、?or 语句使用不当会引起全表扫描原因:where 子句中比较的两个条件,一个有索引,一个没索引,使用 or 则会引起全表扫描。例如:where A=:1 or B=:2,A 上有索引,B 上没索引,则比较 B=:2 时会重新开始全表扫描5、组合索引排序时应按照组合索引中各列的顺序进行排序,即使索引中只有一个列是要排序的,否则排序性能会比较差。例如:create index skip1 on原创 2022-04-25 16:15:09 · 807 阅读 · 0 评论 -
阿里初面被两道编程题给干掉?,再次内推终上岸(已拿电子 offer)
前言之前阿里正式批笔试 4 道编程题只干掉了了 2 道题,然后就被刷了刷的题还不够,感觉还是太菜了,本来对阿里不抱太大希望,毕竟竞争太大。后来看到有朋友能内推,抱着试一试的心态投了,然而几天过去毫无反应,20 天后突然告诉我进行面试3.14 一面,3.15 二三面,3.17 晚上收到电话,拿到电子 offer。坐标杭州,岗位 Java 后端开发一面 同步与异步区别? Java 的线程池说一下,各个参数的作用,如何进行的? Java 中 wai...原创 2022-04-25 16:12:11 · 550 阅读 · 0 评论 -
Redis高级客户端Lettuce详解
前提#Lettuce是一个Redis的Java驱动包,初识她的时候是使用RedisTemplate的时候遇到点问题Debug到底层的一些源码,发现spring-data-redis的驱动包在某个版本之后替换为Lettuce。Lettuce翻译为生菜,没错,就是吃的那种生菜,所以它的Logo长这样:既然能被Spring生态所认可,Lettuce想必有过人之处,于是笔者花时间阅读她的官方文档,整理测试示例,写下这篇文章。编写本文时所使用的版本为Lettuce 5.1.8.RELEASE,SpringBoot原创 2022-04-24 21:15:46 · 6250 阅读 · 5 评论 -
[JAVA后端进] 946页神仙文档,连阿里P8面试官都说太详细了,搞懂这些直接是P6+
前言应广大粉丝要求,网上太多资料不够详细,不够全面,花了很多心思去收集,到头来发现并不全面,于是出现了本文,笔者在GitHub上找了很久终于找到了三份最全的Java学习笔记,总页数946页!涵盖知识:面试必问的:Java基础、高并发、多线程、分布式、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat等等知识原创 2022-04-22 13:55:42 · 1202 阅读 · 0 评论 -
netty 系列之:netty 中常用的字符串编码解码器
简介字符串是我们程序中最常用到的消息格式,也是最简单的消息格式,但是正因为字符串 string 太过简单,不能附加更多的信息,所以在 netty 中选择的是使用 byteBuf 作为最底层的消息传递载体。虽然底层使用的 ByteBuf,但是对于程序员来说,还是希望能够使用这种最简单的字符串格式,那么有什么简单的方法吗?以下Java面试题是今年最新的,需要的小伙伴可以后台撩我拿 关键词 “免费”? 即可!netty 中的字符串编码解码器为了解决在 netty 的 chann..原创 2022-04-21 18:03:29 · 1345 阅读 · 0 评论 -
基于 Istio 的全链路灰度方案探索和实践
背景微服务软件架构下,业务新功能上线前搭建完整的一套测试系统进行验证是相当费人费时的事,随着所拆分出微服务数量的不断增大其难度也愈大。这一整套测试系统所需付出的机器成本往往也不低,为了保证应用新版本上线前的功能正确性验证效率,这套系统还必须一直单独维护好。当业务变得庞大且复杂时,往往还得准备多套,这是整个行业共同面临且难解的成本和效率挑战。如果能在同一套生产系统中完成新版本上线前的功能验证的话,所节约的人力和财力是相当可观的。小伙伴们有兴趣想了解内容和更多相关学习资料的请点赞收藏+评论转发+关注我,原创 2022-04-20 19:43:28 · 277 阅读 · 0 评论 -
阿里逆天级调优方案,内部这套Java性能调优实战宝典,堪称教科书
随着互联网的发展,高可靠、高并发以及降本增效,已成为各大公司面临的现实挑战,性能优化需求愈发迫切,大到分布式系统,小到代码块的算法优化,都已经成为你日常工作中必须要面对的事情。对于开发者而言,性能优化也从加分项变为一个热门技能,缺乏相关知识将很难在面试或工作中脱颖而出。俗话说,知己知彼百战百胜,想要克服“性能优化”这一难题,先要了解性能优化的特点,并抓住其关键和本质。作为面试必考内容,很多应聘者反映说面试官的一些问题会让其陷入模棱两可的境地,不知如何作答,比如很多人就搞不懂缓冲与缓存的区别。这种问题原创 2022-04-20 14:42:54 · 654 阅读 · 0 评论 -
SpringCloud Gateway全链路实现
背景随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务。而诸多的服务可能分布在了几千台服务器,横跨多个不同的数据中心。为了快速定位和解决故障,应用性能进行分析,全链路监控组件就在这样的问题背景下产生了。最出名的是谷歌公开的论文提到的Google Dapper。想要在这个上下文中理解分布式系统的行为,就需要监控那些横跨了不同的应用、不同的服务器之间的关联动作。小伙伴们有兴趣想了解内容和更多相关学习资料的请点赞收藏+评论转发+关注我,后面会有很多干货。我有一些面试...原创 2022-04-20 14:29:34 · 928 阅读 · 0 评论 -
OpenKruise :SidecarSet 助力 Mesh 容器热升级
SidecarSet 是 Kruise 提供的独立管理 Sidecar 容器的 workload。用户通过 SidecarSet 能够便利的完成对 Sidecar 容器的自动注入和独立升级,详情请参考:OpenKruise 官网?默认情况下,Sidecar 的独立升级顺序是先停止旧版本的容器,然后再创建新版本的容器。这种方式尤其适合不影响 Pod 服务可用性的 Sidecar 容器,例如日志收集 agent ,但是对于很多代理或运行时的 Sidecar 容器,如 Istio Envoy,..原创 2022-04-17 21:21:09 · 281 阅读 · 0 评论