
架构
文章平均质量分 94
跟着Mic学架构
谭峰:笔名“MIC”《Spring Cloud Alibaba 微服务原理与实战》、《Java并发编程深度理解及实战》作者。
咕泡教育联合创始人,14年开发架构经验,对分布式微服务、高并发领域有非常丰富的实战经验。
抖音、B站同名【跟着MIC学架构】
展开
-
【Spring】Spring全家桶教程,吃透直接拿下大厂offer!
对于Java工程师来说,Spring框架早已成为了Java后端开发事实上的行业标准,可以说,是Spring成就了Java。因此,Spring也成为Java程序员必修课之一同时,随着Spring Boot和Spring Cloud的出现,使得开发工程师能更高效的利用Spring和其他基础设施快速搭建系统,Spring全家桶的诞生又一次解放了大家的生产力。想必大部分程序员在学习Spring全家桶遇到的困惑无非是这些方面:但组件太多,不知如何下手。目标成为技术大牛的程序员,发现源码很难理解。原创 2022-08-24 15:25:48 · 1486 阅读 · 0 评论 -
深度解密Netty中的FastThreadLocal为什么比ThreadLocal效率更高?
阅读这篇文章之前,建议先阅读和这篇文章关联的内容。1. 详细剖析分布式微服务架构下网络通信的底层实现原理(图解)2. (年薪60W的技巧)工作了5年,你真的理解Netty以及为什么要用吗?(深度干货)3. 深度解析Netty中的核心组件(图解+实例)4. BAT面试必问细节:关于Netty中的ByteBuf详解5. 通过大量实战案例分解Netty中是如何解决拆包黏包问题的?6. 基于Netty实现自定义消息通信协议(协议设计及解析应用实战)7. 全网最详细最齐全的序列化技术及深度解析与...原创 2021-11-23 11:52:34 · 522 阅读 · 0 评论 -
Netty源码分析之Reactor线程模型详解
上一篇文章,分析了Netty服务端启动的初始化过程,今天我们来分析一下Netty中的Reactor线程模型在分析源码之前,我们先分析,哪些地方用到了EventLoop?NioServerSocketChannel的连接监听注册NioSocketChannel的IO事件注册NioServerSocketChannel连接监听在AbstractBootstrap类的initAndRegister()方法中,当NioServerSocketChannel初始化完成后,会调用case标记位置的代码进行原创 2021-11-22 10:43:14 · 627 阅读 · 0 评论 -
学不懂Netty?看不懂源码?不存在的,这篇文章手把手带你阅读Netty源码
阅读这篇文章之前,建议先阅读和这篇文章关联的内容。1. 详细剖析分布式微服务架构下网络通信的底层实现原理(图解)2. (年薪60W的技巧)工作了5年,你真的理解Netty以及为什么要用吗?(深度干货)3. 深度解析Netty中的核心组件(图解+实例)4. BAT面试必问细节:关于Netty中的ByteBuf详解5. 通过大量实战案例分解Netty中是如何解决拆包黏包问题的?6. 基于Netty实现自定义消息通信协议(协议设计及解析应用实战)7. 全网最详细最齐全的序列化技术及深度解析与应..原创 2021-11-20 09:36:41 · 568 阅读 · 0 评论 -
[年薪60W分水岭]基于Netty手写实现Apache Dubbo(带注册中心和注解)
阅读这篇文章之前,建议先阅读和这篇文章关联的内容。1. 详细剖析分布式微服务架构下网络通信的底层实现原理(图解)2. (年薪60W的技巧)工作了5年,你真的理解Netty以及为什么要用吗?(深度干货)3. 深度解析Netty中的核心组件(图解+实例)4. BAT面试必问细节:关于Netty中的ByteBuf详解5. 通过大量实战案例分解Netty中是如何解决拆包黏包问题的?6. 基于Netty实现自定义消息通信协议(协议设计及解析应用实战)7. 全网最详细最齐全的序列化技术及深度解...原创 2021-11-18 13:01:40 · 660 阅读 · 0 评论 -
手把手教你基于Netty实现一个基础的RPC框架(通俗易懂)
阅读这篇文章之前,建议先阅读和这篇文章关联的内容。[1]详细剖析分布式微服务架构下网络通信的底层实现原理(图解)[2][年薪60W的技巧]工作了5年,你真的理解Netty以及为什么要用吗?(深度干货)[3]深度解析Netty中的核心组件(图解+实例)[4]BAT面试必问细节:关于Netty中的ByteBuf详解[5]通过大量实战案例分解Netty中是如何解决拆包黏包问题的?[6]基于Netty实现自定义消息通信协议(协议设计及解析应用实战)[7]全网最详细最齐全的序列化技术及深度解析与应..原创 2021-11-17 09:44:42 · 1524 阅读 · 0 评论 -
全网最详细最齐全的序列化技术及深度解析与应用实战
这篇文章主要给大家讲解序列化和反序列化。序列化是网络通信中非常重要的一个机制,好的序列化方式能够直接影响数据传输的性能。序列化所谓的序列化,就是把一个对象,转化为某种特定的形式,然后以数据流的方式传输。比如把一个对象直接转化为二进制数据流进行传输。当然这个对象可以转化为其他形式之后再转化为数据流。比如XML、JSON等格式。它们通过另外一种数据格式表达了一个对象的状态,然后再把这些数据转化为二进制数据流进行网络传输。反序列化反序列化是序列化的逆向过程,把字节数组反序列化为对象,把字节序列恢.原创 2021-11-16 09:57:48 · 357 阅读 · 0 评论 -
基于Netty实现自定义消息通信协议(协议设计及解析应用实战)
所谓的协议,是由语法、语义、时序这三个要素组成的一种规范,通信双方按照该协议规范来实现网络数据传输,这样通信双方才能实现数据正常通信和解析。由于不同的中间件在功能方面有一定差异,所以其实应该是没有一种标准化协议来满足不同差异化需求,因此很多中间件都会定义自己的通信协议,另外通信协议可以解决粘包和拆包问题。在本篇文章中,我们来实现一个自定义消息协议。自定义协议的要素自定义协议,那这个协议必须要有组成的元素,魔数: 用来判断数据包的有效性版本号: 可以支持协议升级序列化算法: 消息正文采用什么样原创 2021-11-15 11:06:29 · 1135 阅读 · 0 评论 -
通过大量实战案例分解Netty中是如何解决拆包黏包问题的?
TCP传输协议是基于数据流传输的,而基于流化的数据是没有界限的,当客户端向服务端发送数据时,可能会把一个完整的数据报文拆分成多个小报文进行发送,也可能将多个报文合并成一个大报文进行发送。在这样的情况下,有可能会出现图3-1所示的情况。服务端恰巧读到了两个完整的数据包 A 和 B,没有出现拆包/粘包问题;服务端接收到 A 和 B 粘在一起的数据包,服务端需要解析出 A 和 B;服务端收到完整的 A 和 B 的一部分数据包 B-1,服务端需要解析出完整的 A,并等待读取完整的 B 数据包;服务端接.原创 2021-11-14 15:24:57 · 751 阅读 · 0 评论 -
BAT面试必问细节:关于Netty中的ByteBuf详解
在Netty中,还有另外一个比较常见的对象ByteBuf,它其实等同于Java Nio中的ByteBuffer,但是ByteBuf对Nio中的ByteBuffer的功能做了很作增强,下面我们来简单了解一下ByteBuf。下面这段代码演示了ByteBuf的创建以及内容的打印,这里显示出了和普通ByteBuffer最大的区别之一,就是ByteBuf可以自动扩容,默认长度是256,如果内容长度超过阈值时,会自动触发扩容public class ByteBufExample { public stat原创 2021-11-13 10:21:26 · 619 阅读 · 0 评论 -
支撑千万级并发的架构师如何一步步演进的?
我们现在所看到的大型网站或者架构,都是从小的网站和简单的架构一步步发展起来的,当然,也有一些是基于已有的分布式架构来构建的,也是看业务发展的情况而定。在架构的迭代演进的过程中,会遇到很多问题,就像升级打怪一样,等级越高,遇到的怪兽越强。之前有个学员问了我,什么是架构。我是这么回答的。比如我们要建一栋房子,那建房子之前,一定要有一个建筑图纸,这个图纸描述了建筑的形状、内部结构、材料、设备等信息。工程实施的时候会基于这个图纸进行构建。软件架构也是如此,软件架构相当于软件系统的一个设计图纸,这个图纸上描述了各个原创 2021-11-11 09:17:02 · 292 阅读 · 0 评论 -
详细剖析分布式微服务架构下网络通信的底层实现原理(图解)
在分布式架构中,网络通信是底层基础,没有网络,也就没有所谓的分布式架构。只有通过网络才能使得一大片机器互相协作,共同完成一件事情。同样,在大规模的系统架构中,应用吞吐量上不去、网络存在通信延迟、我们首先考虑的都是网络问题,因此网络的重要性不言而喻。作为现代化应用型程序员,要开发一个网络通信的应用,是非常简单的。不仅仅有成熟的api,还有非常方便的通信框架。可能大家已经忘记了网络通信的重要性,本篇文章会详细分析网络通信的底层原理!!1.1 理解通信的本质如图1-1所示,当我们通过浏览器访问一个网址时原创 2021-11-08 13:48:13 · 2646 阅读 · 0 评论 -
阿里P8面试官:如何设计一个扛住千万级并发的架构?
大家先思考一个问题,这也是在面试过程中经常遇到的问题。如果你们公司现在的产品能够支持10W用户访问,你们老板突然和你说,融到钱了,会大量投放广告,预计在1个月后用户量会达到1000W,如果这个任务交给你,你应该怎么做?1000W用户的问题分解如何支撑1000W用户其实是一个非常抽象的问题,对于技术开发来说,我们需要一个非常明确的对于执行关键业务上的性能指标数据,比如,高峰时段下对于事务的响应时间、并发用户数、QPS、成功率、以及基本指标要求等,这些都 必须要非常明确,只有这样才能够指导整个架构的改原创 2021-10-17 14:12:20 · 453 阅读 · 2 评论 -
阿里P8面试官:如何设计一个扛住千万级并发的架构(超级详细)-续
在上一篇文章中,详细分析了设计一个千万级并发架构所需要思考的问题,以及解决方案。在这一片文章中,我们主要分析如何在职场足够用户数量的情况下,同步提升架构的性能降低平均响应时间。如何降低RT的值继续看上面这个图,一个请求只有等到tomcat容器中的应用执行完成才能返回,而请求在执行过程中会做什么事情呢?查询数据库访问磁盘数据进行内存运算调用远程服务这些操作每一个步骤都会消耗时间,当前客户端的请求只有等到这些操作都完成之后才能返回,所以降低RT的方法,就是优化业务逻辑的处理。数据库瓶颈的优原创 2021-10-17 14:28:01 · 851 阅读 · 0 评论