自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AI乔治

站在巨人的肩膀上写代码

  • 博客(22)
  • 收藏
  • 关注

原创 Netty(二):io请求处理过程解析

文接上一篇。上篇讲到netty暴露一个端口出来,acceptor, handler, pipeline, eventloop 都已准备好。但是并没体现其如何处理接入新的网络请求,今天我们就一起来看看吧。1. eventloop主循环  上篇讲到,netty启动起来之后,就会有很多个eventloop线程会一直在循环工作(server通用特性),比如进行select或者执行task. 我们再来回顾 NioEventLoop 的实现方式吧!  我们先看看下 NioEventLoop 的类图吧:

2020-12-29 21:04:46 145

原创 Netty(一):server启动流程解析

netty作为一个被广泛应用的通信框架,有必要我们多了解一点。  实际上netty的几个重要的技术亮点:    1. reactor的线程模型;    2. 安全有效的nio非阻塞io模型应用;    3. pipeline流水线式的灵活处理过程;    4. channelHandler的灵活实现;    5. 提供许多开箱即用的处理器和编解码器;  我们可以从这些点去深入理解其过人之处。1. 一个NettyServer的demo  要想深入理解某个框架,一般还是要以...

2020-12-29 19:58:25 69

原创 史上最新最全的大厂Mysql面试题在这里 | 建议收藏

Linux运维必会的100道MySql面试题之(一)Linux运维必会的100道MySql面试题之(二)Linux运维必会的100道MySql面试题之(三)Linux运维必会的100道MySql面试题之(四)1、MySQL的复制原理以及流程基本原理流程,3个线程以及之间的关联;主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中; 从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自..

2020-12-24 15:13:18 108 10

原创 Linux运维必会的100道MySql面试题之(四)

020:如何开启从库的binlog功能?修改配置文件加上下面的配置log_bin=slave-binlog_bin_index=slave-bin.index需要重启服务021:MySQL如何实现双向互为主从复制,并说明应用场景?双向同步主要应用于解决单一主库写的压力,具体配置如下主库配置[mysqld]auto_increment_increment = 2 #起始IDauto_increment_offset = 1 #ID自增间隔lo...

2020-12-24 15:01:46 48 2

原创 Linux运维必会的100道MySql面试题之(三)

001:请解释关系型数据库概念及主要特点?关系型数据库模型是把复杂的数据结构归结为简单的二元关系,对数据的操作都是建立一个 或多个关系表格上最大的特点就是二维的表格,通过SQL结构查询语句存取数据,保持数据 一致性方面很强大002:请说出关系型数据库的典型产品、特点及应用场景?mysql 互联网企业常用oracle 大型传统企业应用软件如数据备份、复杂连接查询、一致性数据存储等,还是使用MySQL或者其他传统的关系型数据库最合适003:请解释非关系...

2020-12-24 14:58:12 70 2

原创 Linux运维必会的100道MySql面试题之(二)

21.删除test表中的所有数据,并查看delete from test;select * from test;22.删除表test和mingongge数据库并查看drop table test;show tables;drop database mingongge;show databases;23.不退出数据库恢复以上删除的数据system mysql -uroot -pMgg123.0. </root/mingongge_bak.sql...

2020-12-24 14:55:38 54 1

原创 Linux运维必会的100道MySql面试题之(一)

01:如何启动MySql服务/etc/init.d/mysqld startservice mysqld startCentos 7.x 系统sysctl start mysqld02:检测端口是否运行lsof -i :3306netstat -lntup |grep 330603:设置或修改MySql密码设置密码mysql -uroot -ppassword -e "set passowrd for root = passowrd('passow...

2020-12-24 14:48:11 110 2

原创 实录程序员的一天,中年架构师的20小时,全靠忍

今天这篇漫画,纯属虚构,虚构中又还有一点点真实,真实的反映大部分人(不仅仅程序员)中年的生活与无奈.事故主人公:大刘/某伪大厂架构师/35+,东北大汉,身高180,体重180,没有其他180了,下面是中年老刘普通de的一天.编后看着原文的内容,绘画着人物的场景,内心五味杂陈,选择这篇文章来改编时,也曾思考再三,此文内容虽是虚构,但却真实的体现了当下一、二线城市打工人(更包括程序员)的生活:“我抱砖就没手抱你,我放下手中砖就无法养家”.都说成年人的世界里,没有“容易”二字,人到中年更是如此

2020-12-24 14:27:21 391

原创 年底将至,回首2020,聊聊程序员的核心能力

随着互联网和移动互联网的快速发展,各类应用软件(app)如雨后春笋般涌现,许多应用程序甚至成为超级app,一些活跃用户过亿的应用程序成为国民app,这些app的兴起与程序员这个群体密不可分。快速发展的行业、互联网巨头的光环、国民级的应用程序带来的成就感、远超出普通行业的薪水,每年都在吸引着大量的程序员。竞争变得越来越激烈,程序员的35岁门槛已常年成为社交媒体热议的话题,程序员的中年焦虑已成为常态,作为程序员,我们应该建立怎样的核心能力,让使自己摆脱焦虑并在漫长的职场道路上不掉队呢?今天就来.

2020-12-23 21:46:04 51

原创 开源API网关Kong基本介绍和安装验证

本文将介绍开源API网关Kong。在GtiHub搜索API网关类的开源产品,可以看到Kong网关常年都是排第一的位置,而且当前很多都有一定研发能力的企业在API网关产品选型的时候基本也会选择Kong网关,并基于Kong网关进行二次开发和定制。API网关概述简单来说API网关就是将所有的微服务提供的API接口服务能力全部汇聚进来,统一接入进行管理,也正是通过统一拦截,就可以通过网关实现对API接口的安全,日志,限流熔断等共性需求。如果再简单说下,通过网关实现了几个关键能力。内部的微服务对外部

2020-12-22 16:19:35 230

原创 业务系统组件化开发概述和技术架构设计

本文介绍组件化开发方面的内容,在前面我讲解微服务的时候就已经谈到,实际上微服务本身就是传统的业务系统组件化开发的一个升级。懂得基础的组件化开发和技术架构设计是也是过渡到当前主流的微服务架构思想的基础。组件化开发概述在这里先介绍和说明下基于组件化开发带来的优势。首先,原有到系统级的粗粒度控制细化到了组件级别的细粒度控制,一个复杂系统的构建就是组件最终集成后的一个结果。每个组件都自己独立的版本,组件可以独立编译、独立打包和部署;其次,产品组件化后可以真正实现完整意义上的按组件进行产品配置和销售,用户

2020-12-22 16:11:15 227

原创 谈DDD领域驱动设计和建模

本文谈下领域驱动设计方面的内容,其中部分内容来源于《领域驱动设计:软件核心复杂性应对之道》书籍的读书笔记整理。我前面谈了很多关于中台,SOA和微服务的文章,实际上你可以看到中台层对外和对前台提供的服务更多就应该是粗粒度的领域服务能力,如果中台最终只提供书籍对象的CRUD类API接口服务,那么根本就谈不上中台的共性业务服务能力下沉。领域驱动设计概述什么是领域驱动设计(DDD)2004年著名建模专家Eric Evans发表了他最具影响力的书籍:《Domain-Driven Design .

2020-12-22 15:58:23 76

原创 关于ThreadLocal引发的内存泄露问题,请看完我这篇文章

概念​首先解释下内存溢出和内存泄露的概念。内存溢出一般指的是out of memory,也就是我们经常说的OOM,常发生在堆,方法区和方法栈。内存泄露指的是一段程序在申请内存空间后,无法释放已经申请的内存空间,导致该内存地址不可达,后续程序里这块内存空间永远被占用。就好像商场的物品柜设计了10个抽屉,每个人使用后都会归还给下一个用户使用,如果有某个人一直占用不退还,别的用户就只能使用剩下的9个抽屉,这样的人多了以后,最后大家一个抽屉也无法使用了。所以内存泄露跟内存溢出是存在联系的,一次内存泄露不会有太大

2020-12-19 14:27:27 95 4

原创 聊聊一个有趣的内存泄漏案例

0. 背景之前在这篇文章里说过做了个 SSR,本以为今天顺顺利利,高高兴兴。没想到项目放到线上后,随着请求量的增多,却感觉到首屏速度越来越慢,并且是在持续性地变慢。而且在发布完后(也就是容器重建了),耗时又陡然降下来了。因此很合理地怀疑是内存泄漏了。故而在 STKE 的监控面板瞧一瞧,内存确实是一波一波似浪花。1. 复现问题知道是内存泄漏,我们就需要找到泄漏的点。因为不能轻易操作线上环境,线上代码也是压缩的,因此我们需要先搭建本地环境看能否方便调试问题。这里我们我们可以在..

2020-12-19 14:16:20 49 4

原创 闭嘴,求求你别再问什么是锁了,再问请你先看完这篇文章好么

目录 前言 Java锁的简单入门 - 生活例子- 抽象成代码 Java锁的解决常见方案 - 乐观锁和悲观锁- 公平锁和非公平锁 总结 前言锁在Java中是一个非常重要的概念,在当今的互联网时代,尤其在各种高并发的情况下,我们更加离不开锁。那么到底什么是锁呢?在计算机中,锁(lock)或者互斥(mutex)是一种同步机制,用于在有许多执行线程的环境中强制对资源的访问限制。锁可以强制实施排他互斥、并发控制策略,下面我们正式进入锁的专题中。Java锁的简单入

2020-12-19 14:03:49 39 3

原创 「Spring Boot 新特性」节省95%内存占用

GraalVM[1]是一种高性能的虚拟机,它可以显著的提高程序的性能和运行效率,非常适合微服务。最近比较火的 Java 框架 Quarkus[2]默认支持 GraalVM下图为 Quarkus 和传统框架(SpringBoot) 等对比图, 更快的启动数据、更小的内存消耗、更短的服务响应。Spring Boot 2.4 开始逐步提供对 GraalVM 的支持, 旨在提升上文所述的 启动、内存、响应的使用体验。安装 GraalVM 目前官方社区版本最新为 20.3.0 ,是基...

2020-12-19 13:50:42 355 3

原创 深入浅出JAVA内存模型—jvm的行为艺术

引言亲爱读者你们好,关于jvm篇章的连载,前面三章讲了类加载器,本篇文章将进入jvm领域的另一个知识点,java内存模型。彻底的了解java内存模型,是有必要的。只要掌握了java的内存模型,内存空间分为哪些区域,才能更好地理解,java是如何创建对象以及如何分配对象的空间。对后续的jvm调优打下坚实的基础。而对于现在的互联网行业来说,高并发,高可用已经必不可少,而学好jvm调优,不仅能在企业工作当中针对高并发场景下的系统进行优化,在日常对系统的错误排查、系统的优化也起着至关重要的作用。希望这篇文章能让

2020-12-18 22:12:44 65 7

原创 阿里中间件团队某员工网盘丢失泄漏内部总结分享的JVM性能调优笔记

虚拟机设计与实现是计算机科学中最古老、最成熟,也是应用最广泛的课题之一。许多通用性和领域性程序设计语言都使用某种与体系结构无关的中间语言格式作为编译目标,该中间语言在虚拟机上运行,因此虚拟机设计和实现就成为了支撑这类语言构建软件系统的关键与基础,而深入理解和掌握虚拟机设计和实现的基本原理和技术,也成为程序员必备的重要知识和技能。但是,虚拟机的设计与实现所涉及的知识体系广而繁杂,和计算机科学的许多学科分支,如算法设计分析、程序设计语言、编译器、体系结构等,都有密切联系,并且,现代虚拟机已经发展得非常复杂,

2020-12-18 15:56:02 27 2

原创 记一次MapReduce的内存溢出

背景:最近使用MapReduce做离线数据清洗,在map段做简单的数据过滤,有经纬度的发送到reduce端,没经纬的过滤掉。reduce端将数据整理出来,按业务模型拼接成字符串写入HDFS。供hive作为外表进行后续数据处理分析。问题:该批数据总共2T大小,MapReduce执行第一次时,不出意料的崩溃了。每次都大概在map阶段执行到61%左右。排查:查看日志发现果然内存溢出:java.lang.OutOfMemoryError: GC overhead limit exceeded。

2020-12-16 21:07:36 47 2

原创 实录2次投简腾讯6面后台开发终收offer,面试学习经验分享给大家

方法方向这篇博客记录第二次腾讯后台开发社招面试流程,虽然面试流程因人而异,但就我个人感受而言,腾讯的面试从考察内容方面来讲,还是有一定的共通性,这一点,可以从网上众多的面经可以看出,因此,就有了本篇博客,感兴趣的同学可以参考下,文章比较长,请耐心阅读。五月上旬从前公司离职,即所谓的裸辞,离职后没有立即找工作。花了20天时间对过往两年的工作进行一番总结和梳理,期间主要分析了Linux内核网络源码。时间到了七月中旬也没有开始找工作。因为期望去一家大公司,但是自身实力还不允许。网上看了众多面经,大厂对..

2020-12-09 22:40:14 467 10

原创 算法尽头谁为峰,一面字节道成空,我带着我三年算法工程师经验面字节,offre手到擒来

自我介绍计算机网络:(1)UDP和TCP差别(2)TCP怎么保证可靠传输(3)三次握手为啥不是两次或者四次(4)如果客户端向服务端发送1、2、3,服务端接收到的顺序为1、3、2怎么办?为什么要流量控制,一次全发送不是更好吗?(5)UDP和TCP常见应用是什么?(6)HTTP协议是什么?常见的操作?(GET POST等)(7)HTTP常见 状态码有几种?4XX表示什么类型错误?操作系统(1)线程和进程的区别?(2)线程之间怎么共享资源?(3)进程...

2020-12-05 00:03:38 988 5

原创 字节跳动社招后端三面总结以及学习经验感言(操详细)

简单介绍下背景:本人已工作两年,这次属于社招,不是校招哦!投递的岗位base是北京。往期:150期面试题汇总先上正文一面内容大概: 先来道算法题,不难:链表表示的两个数相加。面试官说不用运行,大概写一下就行,说是因为说牛客上的运行环境不行。这题之前做过,写完之后没跑就直接给他了,他问是不是之前刷过,为了装逼我说没有刷过,然后回答说:这题不就是CPU的加法器的实现嘛,计算机组成原理。 Https的过程讲一下。先是说了http+ssl,dns之后,准备讲ssl的原理时,他示意我说回答..

2020-12-02 23:14:07 989 7

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除