自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 面试官:熟悉Redis,那聊聊Redis主从复制?我画了13张图讲明白了

怎么实现高可用呢? 最重要的一点就是冗余数据啊,redis 是通过主从复制来实现数据的冗余存储,这样在主redis down调用之后,切换到从就可以了,这样就实现了故障转移,保证了高可用了,今天我们主要来讲主从复制,至于主down掉之后,怎么切换到从,我们会在下篇再聊。怎么做备份我想在再看redis 主从复制之前,有必要看下下面这三个基础概念。备份分为冷备和热备,如果再深入一些还有多活。热备:由主库或者说是主数据中心承担业务流量,同时会实时的备份数据到从库或者从的数据中心。如下图。

2021-11-16 19:38:24 182

原创 Spring Boot 中创建对象的疑虑 Bean 与 Component 同一类,会怎么样?

疑虑背景  疑虑描述  最近,在进行开发的过程中,发现之前的一个写法,类似如下  以我的理解,@Configuration加@Bean会创建一个userName不为null的UserManager对象,而@Component也会创建一个userName为null的UserManager对象  那么我们在其他对象中注入UserManager对象时,到底注入的是哪个对象?  因为项目已经上线了很长一段时间了,所以这种写法没有编译报错,运行也没有出...

2021-11-16 19:26:43 562

原创 献上我的膝盖,华为高工用一份423页的网络协议笔记把计算机网络讲清了

为什么要学习网络协议?相信大家都听过通天塔的故事,上帝为了阻止人类联合起来,让人类说不同的语言,人类没法沟通,达不成“协议”,通天塔的计划就失败了。但是千年以后,有一种叫“程序猿”的物种,“敲”着一种这个群体通用的语言,打造着互联网世界的“通天塔”。如今的世界,正是因为互联网,才连接在一起。由此可见在编程领域之中“网络协议”有着至关重要的地位,今天小编就给大家分享一份据说是华为大佬总结出来的423页网络协议笔记分享给大家!华为423页网络协议笔记本书从最记得的通信协议开始,有浅

2021-11-15 19:25:18 11714 8

原创 腾讯技术官编写的594页MySQL优化手册,竟意外冲上GitHub调优热榜

前言:当下互联网时代,MySQL受热捧的程度不容置疑,位列全球最流行的开源数据库也当之无愧,它广泛应用的因由不仅是产品本身的优势,更重要的是有无数社区技术爱好者为其默默耕耘。近几年 MySQL发展迅速,各分支在性能与架构方面优化都有所突破与发展;与此同时,互联网应用业务也更加复杂,更具有挑战性。如何在应用中发挥MySQL的优势,深入理解MySQL新特性,做好数据库的容灾与数据保护,结合业务做好高可用架构等等,以应对更加复杂业务和更具挑战性的 DBA工作。想要学习MySQL其实不难,MySQL作为

2021-11-15 16:52:48 130

原创 一文带你理解Spring Data Redis Stream的使用

一、背景Stream类型是 redis5之后新增的类型,在这篇文章中,我们实现使用Spring boot data redis来消费Redis Stream中的数据。实现独立消费和消费组消费。二、整合步骤1、引入jar包<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-s

2021-11-15 14:50:19 1814 1

原创 HashMap 基本原理以及底层源码分析

HashMap 基本原理以及底层源码分析1.HashMap 的存储结构:HashMap 是由数组加上链式结构(链表)以及红黑树组成。在 JDK 1.8 增加实现了红黑树的结构。(根据存储数据量的大小会动态的变化存储结构)。源码实现: /** * 基本哈希箱节点,用于大多数条目。 (有 * 关TreeNode子类的信息,请参见下文;有关EntryEntry子类的信息,请参见LinkedHashMap。) * Node: 数据节点 */

2021-11-12 20:12:03 84

原创 什么是IOC?教你手撸一个IOC容器

IoC什么是IoC?IoC是Inversion of Control(控制反转)的简称,注意它是一个技术思想。描述的是对象创建、管理的事情。传统开发方式:比如类A依赖类B,往往会在类A里面new一个B的对象。 IoC开发方式:我们不用去new对象,由IoC容器帮我们实例化对象并进行管理。我们需要B对象,就问IoC容器要即可。控制反转就是说将对象创建、管理的权力交给了外部环境(IoC容器)。IoC的作用:解决了对象之间的耦合问题。什么是DI?DI是Dependancy Inject

2021-11-12 13:53:53 183

原创 被老板骂了,线上执行一条update语句意外导致业务崩了

昨晚在群划水的时候,看到有位读者说了这么一件事。大概就是,在线上执行一条 update 语句修改数据库数据的时候,where 条件没有带上索引,导致业务直接崩了,被老板教训了一波这次我们就来看看:为什么会发生这种的事故? 又该如何避免这种事故的发生?说个前提,接下来说的案例都是基于 InnoDB 存储引擎,且事务的隔离级别是可重复读。1为什么会发生这种的事故?InnoDB 存储引擎的默认事务隔离级别是「可重复读」,但是在这个隔离级别下,在多个事务并发的时候,会出现幻读的问

2021-11-05 13:44:09 101

原创 Alibaba解决方案之「SpringCloud Alibaba」图文并茂,实战起飞

前言Spring Cloud Alibaba 致力于提供分布式应用服务开发的一站式解决方案。项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。已包括的组件有:Sentinel、 Nacos、 RocketMQ、 Dubbo:Apache Dubbo高性能RPC框架、 Seata、 Alibaba Cloud ACM、 Alibaba Cloud OSS、 Alibaba Cloud SchedulerX、

2021-11-04 19:57:27 384

原创 华为顶级安全专家分享出来这份‘典藏版’Linux开发实战笔记

Linux就是未来安全+运维的天未来已经进入了自动化/云计算时代,Linux云计算+运维开发就是核心的时代生活日益互联网化,高并发和大量的数据同步越来越多,普通服务器已无法承受,Linux云计算+运维开发让平台运行更稳定。选择Linux,是时代的趋势Linux技术支持范围极其广泛,且开源、稳定、高效,为大数据、云计算、物联网提供平台支持今天小编就给大家分享出这份顶级安全技术大牛都爱不释手的《Linux典藏版驱动开发从入门到实战》文档!因为内容过多就不给大家

2021-11-04 19:18:30 139

原创 好牛啊,阿里P9耗时28天,总结历年亿级活动高并发系统设计手册

高并发俗话说:罗马不是一天建成的,系统的设计当然也是如此。从原来谁都不看好的淘宝到现在的电商巨头,展现的不仅仅是一家互联网巨头的兴起,也是国内互联网行业迎来井喷式发展的历程,网络信号从2G发展到现在的5G通信,中国网民数量更是不用说,你说谁现在手机上没有个淘宝、京东、美团等便民软件,而在生活便利的同时,人民也越来越注重生活质量,硬件设备从老年机到在线足以媲美电脑的掌上设备(比方说我一直想买的华为watch等一系列电子产品),在硬件升级的过程中,相信大家都听过身边有这样的一个声音:****,好卡啊,对

2021-11-04 17:23:31 201

转载 别再写满屏的 get & set 了,太 Low,试试 MapStruct 高级玩法

别再写满屏的 get-set 了,太 Low!MapStruct 高级玩法,这篇栈长带你上正道!1、自定义映射当我们映射 DTO 的时候,如果某些参数的值 MapStruct 的映射配置不能满足要求,可以使用自定义方法。新增两个 DTO 类:UserCustomDTO 类里面包含了 UserExtDTO 对象。/** * 微信公众号:Java技术栈 * @author 栈长 */@Datapublic class UserCustomDTO { privat

2021-11-04 14:36:39 101

原创 细数线程池五大坑,一不小心线上就崩了

系统性能优化的几种常用手段是异步和缓存。因此我们常常使用线程池异步处理一些业务。线程池的使用还是相对比较简单的,首先创建一个线程池,然后通过execute或submit执行任务。但魔鬼往往藏于细节之中,稍有不慎就会出错。本文将会详细总结线程池容易出错的五大坑一、拒绝策略参数知多少二、拒绝策略使用不当,系统阻塞不可用三、多任务get()异常时,结果获取有误四、ThreadLocal与线程池搭配使用,上下文缺失五、父子任务共用同一线程池,系统“饥饿”死锁以下为线程池的核心流程【具体内

2021-11-04 13:57:29 339

原创 阿里内部流传的JDK源码剖析手册,GitHub已获上千万的访问量

相信现在已经有很多小伙伴知道了“微软”要对JDK下手了!JDK是什么?jdk是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。jdk是整个java开发的核心,它包含了JAVA的运行环境和JAVA工具。相对而言,没有jdk的话,无法编译Java程序(指java源码.java文件),如果想只运行Java程序(指class或jar或其它归档文件),要确保已安装相应的JRE。先看一下JDK源码的大纲!获取高清大纲请留意文末!说到JDK小编手里正好有一份

2021-11-03 20:39:23 132

原创 SpringSecurity+JWT认证流程解析

楔子本文适合:对Spring Security有一点了解或者跑过简单demo但是对整体运行流程不明白的同学,对SpringSecurity有兴趣的也可以当作你们的入门教程,示例代码中也有很多注释。大家在做系统的时候,一般做的第一个模块就是认证与授权模块,因为这是一个系统的入口,也是一个系统最重要最基础的一环,在认证与授权服务设计搭建好了之后,剩下的模块才得以安全访问。市面上一般做认证授权的框架就是shiro和Spring Security,也有大部分公司选择自己研制。出于之前看过很多Spring .

2021-11-03 19:27:32 678

原创 10 个解放双手超实用在线工具,有些代码真的不用手写

1、Aliyun Java Initializr在日常开发工作和自己学习跑demo的时候,往往都需要快速构建一个springboot基础工程。除了用IDEA开发工具构建,更多就是用Spring Initializr来生成,但用的时间长了发现,它也就仅仅只能帮我们引入一些必要的jar包,其他插件轮子还是得自己配置。Aliyun Java Initializr覆盖了Spring Initializr 的所有功能,又在其基础上增加了很多实用功能,它几乎可以集成当下所有主流技术,只要勾选相应的模块就

2021-11-03 17:13:06 123

原创 2万字系统总结,带你实现 Linux 命令自由?

前言Linux 的学习对于一个程序员的重要性是不言而喻的。前端开发相比后端开发,接触 Linux 机会相对较少,因此往往容易忽视它。但是学好它却是程序员必备修养之一。如果本文对你有所帮助,请点个 吧。作者使用的是阿里云服务器 ECS (最便宜的那种) CentOS 7.7 64位。当然你也可以在自己的电脑安装虚拟机,虚拟机中再去安装 CentOS 系统(这就完全免费了)。至于它的安装教程可以去谷歌搜索下,相关教程非常多。Linux 基础操作系统操作系统 Operating Syste

2021-11-03 16:32:29 305

原创 Beam Search快速理解及代码解析

Beam Search简单介绍一下在文本生成任务中常用的解码策略Beam Search(集束搜索)。生成式任务相比普通的分类、tagging等NLP任务会复杂不少。在生成的时候,模型的输出是一个时间步一个时间步依次获得的,而且前面时间步的结果还会影响后面时间步的结果。也就是说,每一个时间步,模型给出的都是基于历史生成结果的条件概率。为了生成完整的句子,需要一个称为解码的额外动作来融合模型多个时间步的输出,而且使得最终得到的序列的每一步条件概率连乘起来最大。在文本生成任务中,每一个时间步可能的输出

2021-11-03 13:59:31 3340 1

原创 爆赞,世界顶级计算机大师十年经验之作“TCP/IP协议”通天笔记

先来了解下什么是TCP/IP?如图所示吗?↓当然不是的!那到底什么是TCP/IP呢?所谓协议(protocol),其实就是一个群体之间规定的规则,这个规则的目的是为了保证这个群体里面的人可以正常交流。还是回到计算机和网络的通信这边来举例。比如: 如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要事先确定。不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则。协议中存在各式各样的内容。从电缆的规格到 IP 地址的选定方法、寻找异地用户的方法、.

2021-11-02 21:06:41 112

原创 服务发现-从原理到实现

服务发现,作为互联网从业人员,大家应该都不陌生,一个完善的服务集群,微服务是必不可少的功能之一。最近一直想写这个话题,也一直在构思,但不知道从何入手,或者说不知道写哪方面。如果单纯写如何实现,这个未免太乏味枯燥了;而如果只是介绍现有成熟方案呢,却达不到我的目的。想了很久,准备先从微服务的架构入手,切入服务发现要解决什么问题,搭配常见的处理模式,最后介绍下现有的处理方案。微服务服务于分布式系统,是个分散式系统。服务部署跨主机、网段、机房乃至大区。各个服务之间通过RPC(remote proce...

2021-10-28 14:38:55 420

原创 业界标杆,阿里开源自研高并发编程核心笔记(2021最新版)震撼开源

高并发编程提到并发编程很多人就会头疼了;首先就是一些基础概念:并发,并行,同步,异步,临界区,阻塞,非阻塞还有各种锁全都砸你脸上,随之而来的就是要保证程序运行时关键数据在多线程中的可见性、核心业务的原子性、多线程通信的有序性。虽然很多人工作可能接触不到这些的东西,但是面试就是得问。假如你跟一个有过高并发编程经验的人一起面试同一个岗位,你就是背了些面试题,而人家是确确实实有真东西的,那后续的录用结果想必就不用我多说了吧~当然你面试或者是工作中一直被这块困扰,想学习高并发编程却又苦于没一个明确的方向,完

2021-10-27 14:56:28 144

原创 我好慌,上司突然问我基于JDK和CGLib实现动态代理的区别和适用场景

在日常的开发中,Spring AOP 是一个非常常用的功能。谈到 AOP,自然离不开动态代理。那么,基于 JDK 和 CGLib 如何实现动态代理,他们之间的区别和适用场景是什么呢?接下来,我们一起来探讨一下这个问题。JDK 如何实现动态代理?话不多说,我们直接对照着代码来查看。代码示例Hello 接口public interface HelloInterface { /** * 代理的目标方法 */ void sayHello();

2021-10-27 14:11:51 108

原创 发布仅十分钟,就在Github上点击超百万,Java高并发编程(第三版)全网首发

高并发编程作为架构师进阶必须需要精通一个知识点,如果你只是掌握皮毛的话肯定是不行滴,同时现在这个时间点的话肯定也是备战2022年金三银四的最好的时间段,你有大量且充足的时间进行准备的。作为全网首发的第三版高并发编程实战(全彩版)的学习手册,老师拿到第一时间就来和大家分享,这一次的更新升级可以做了很多内容的补充,也很全面,下面推荐给大家!整套学习笔记分为:基础案例篇、实战案例篇、源码分析篇、系统架构篇、面试题篇五大部分,下面我们逐一来分享!高级案例篇Java中的可见性问题实战案

2021-10-26 19:32:57 166

原创 日调用量超三十万亿,腾讯开源百万级服务发现和治理中心北极星

目前很多企业在微服务实施和演化过程中,都会面临技术栈的多样性问题。整个微服务领域逐渐沉淀出了无数个相关组件,大家在选择上更加困难,也为企业的基础设施建设不断带来挑战。腾讯也曾面临这样的痛点,因此从 2019 年开始腾讯开创了统一的微服务解决方案“北极星”(Polaris Mesh),通过北极星对这些组件进行抽象和整合,打造公司标准化的服务发现和治理方案,帮助业务提升研发效率和运营质量。经过两年的发展,北极星在腾讯内部注册服务数量超过百万,服务实例数量超过五百万,接口日调用量超过三十万亿,腾讯音乐、腾讯视

2021-10-26 13:40:50 101

原创 对内 DDD 对外 API 之 对外 API 的设计理念

2017年2月加入去哪儿网。目前专注于领域服务治理、基于API治理的领域能力标准化。致力于通过领域化、模型化、可感知来解决业务复杂度。期望用DDD驱动,降低系统复杂度,提升团队效能。前言对内 DDD,对外 API 是去哪儿网机票目的地事业群业务研发团队2020年 Q3 重点推出的业务重塑架构设计理念。在2020年 Q3,去哪儿网在过往的基础上,在 API 标准化这个领域做出了一些进步,这篇文章主要就是把这方面的经验和大家分享一下。什么是对内 DDD,对外 API 呢,这个是我们业务研发领域内使用

2021-10-25 21:44:09 301

转载 深入InnoDB存储引擎最小存储单位剖析MySQL,其实索引真不难

一. 前言 索引可以说是每个工程师的必备技能点,明白索引的原理对于写出高质量的 SQL 至关重要,今天我们就从 0 到 1 来理解下索引的原理,相信大家看完不光对索引还会对 MySQL 中 InnoDB 存储引擎的最小存储单位「页」会有更深刻的认识 从实际需求出发 假设有如下用户表: CREATE TABLE `user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` int(11) DEFAULT

2021-10-25 20:42:04 1397

空空如也

空空如也

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

TA关注的人

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