自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【分布式微服务专题】从单体到分布式(四、SpringCloud整合Sentinel)

相对来说,Sentinel的学习难度比之之前的Dubbo要低了不少。不过在学习过程中也遇到了一些认知局限带来的困难。比如,虽然还是学习了Sentinel,但是不知道生产环境该如何配置才是最佳的状态。说到底,Sentinel还是没有提供很好的文档支持。比如:生产最佳实践方案。官方也确实提供了一个,但是总感觉不太完备。另外在学习的过程中再次提醒了我:不要盲目的添加中间件,中间件的引入势必会造成系统复杂度上升,也带来了一定的运维成本。所以,若非有必要的,不一定要特定地去引入某个中间件。

2024-01-11 11:35:35 1193

原创 【分布式微服务专题】SpringSecurity OAuth2快速入门

这里面的笔记都是我这里抄抄那里抄抄得来的,然后也经过了一些简单的测试,主要是用来拓宽知识面用的,毕竟到了项目开发中,不会裸用这些技术框架,通常都是采用第三方集成框架。另外需要说明的是,这里要介绍的框架应该有点过时了,在Spring官网已经没有了项目介绍,现在项目似乎已经升级,并且迁移为项目。所以我打算学习完现在的OAuth2之后,继续学习。OAuth2.0协议介绍OAuth(Open Authorization,开放授权)是一个关于授权(authorization)的开放网络标准协议。

2024-01-09 15:04:57 1618

原创 【分布式微服务专题】SpringSecurity快速入门

系列上一篇文章:《官方介绍:Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架。它是用于保护基于 Spring 的应用程序。Spring Security 是一个框架,侧重于为 Java 应用程序提供身份验证和授权。与所有 Spring 项目一样,Spring 安全性的真正强大之处,在于它很容易扩展以满足定制需求Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。

2024-01-01 19:51:25 1661

原创 【Arthas】Arthas线上trace匿名函数/Lambda表达式/函数式接口

Arthas是一个非常牛B的东西,我非常喜欢用,特别是在定义线上问题的时候,牛逼大发!非常建议所有Java玩家都去学习一下。

2023-12-26 12:15:04 1232

原创 【分布式微服务专题】从单体到分布式(三、SpringCloud整合Dubbo)

本片笔记主要是记录我整合Dubbo的过程。引入Dubbo主要是为了实现微服务之间的调用,即:RPC(Remote-Process-Call,远程过程调用)。本次整合Dubbo可谓是曲折坎坷,耗费了不少时间和精力。不过也是收获挺多的,有些项目问题,真的不亲身经历,终是【纸上谈兵】。举个鲜明的例子:我为什么要自己从0开始搭建微服务项目?因为我想要获得【从0开始搭建项目】的经验和能力!maven的基本知识。

2023-12-17 14:41:08 221

原创 【分布式微服务专题】从单体到分布式(二、SpringCloud整合Nacos)

本篇笔记主要是记录我整合Nacos项目进来的过程。以实现服务注册发现,以及分布式配置管理。Nacos官网传送门Nacos使用详解》)

2023-12-07 22:42:52 1286

原创 【分布式微服务专题】从单体到分布式(一、SpringCloud项目初步升级)

从本节课开始,我将自己手写一个基于SpringCloud框架的web服务集群,中间会引入常用的微服务中间件。如:配置中心、网关、链路追踪、断路器等等。本节课只是简单地从原有单体项目,然后升级成SpringCloud架构。为了升级演示效果,我写了一个简单的SpringBoot单体应用,架构如下:然后实现的功能也很简单,直接list获取库里面所有的数据。会员管理模块:提供一个/user/list接口,获取数据库里面所有用户数据钱包管理模块:提供一个接口,获取数据库里面所有钱包数据。

2023-12-06 11:47:48 1382

原创 【微服务专题】微服务架构演进

事实上,我个人对单体到微服务架构的演进尽管能够理解,但总是觉得差点意思,所以这边在学习之余,顺便写个笔记总结一下,加深一下印象吧。Spring Cloud提供了一些可以让开发者快速构建微服务应用的工具,比如配置管理、服务发现、熔断、智能路由等,这些服务可以在任何分布式环境下很好地工作。Distributed configuration,分布式配置Service registration and discovery,服务注册与发现Routing,服务路由。

2023-11-28 22:35:49 1516

原创 【ShardingSphere专题】SpringBoot整合ShardingSphere(一、数据分片入门及实验)

最近线上的项目部分数据表增量速度比较快,可以预见的是,个把月后数据量会急剧增长至千万级,所以只是简单的使用索引等已经无法满足业务需求了,分库分表势在必行!于是着手研究如何整合ShardingSphere到现有项目中,顺带记录一下实验过程吧。特别声明:这边是实验配置阶段,还没有完成整合到项目、以及测试联调阶段,所以不敢保证实验过程是否正确。而且,在我的业务中,还涉及到【普通单表】与【分片表】之间的联表查询,所以需要后期比较严谨的测试才能知道最终效果。不过我自己对比了站内其他大佬的教程,大体是没问题的。

2023-11-28 20:32:01 2060 4

原创 【Netty专题】Netty调优及网络编程中一些问题补充(面向面试学习)

很直接哈,最近去面试的时候遇到了一些Netty网络编程,序列化框架上的问题,当时回答的不是很好,所以赶紧回来学习了一下,顺便做一下笔记,沉淀一下了。什么是序列化/反序列化?我在前面的文章中有提到过,但那时候没有写的很仔细,我自己也忘了,罪过啊。其实我知道,序列化/反序列化在网络编程中是很重要的概念,只不过被我自己疏忽了。言归正传。什么是序列化、反序列化?我们知道,数据在网络中传输不可能是原文传输的,人家机器设备只认得二进制01串。所以,把原文转换为01串字节流这个过程就是序列化;反之,则叫做反序列化。

2023-11-25 17:03:20 1427

原创 【微服务专题】SpringBoot自动配置简单源码解析

想要搞懂自动装配,需要当前系列前两篇笔记内容打底。不过我上一篇笔记写的不好,没有什么突出的重点,主要也是当时跟着课程看了源码之后,也没发现什么特别的,直到在看自动装配源码的时候,才后知后觉遗漏了一些重要的知识点。但是总体来说不影响这一节课的笔记记录吧。我们说起SpringBoot,总会不自觉的联想到自动配置约定大于配置等标签,但说实在,我是有一点困惑的,这个【约定和配置】到底是什么意思,或者说,它们具体指的是哪些内容啊?!我在想,像我这种,只是用过那么一年多SSM/SSH。

2023-11-24 23:47:59 1445

原创 【微服务专题】Spring启动过程源码解析

这部分只是个人的自结,方便后面回来看源码的时候跟踪,个人感觉看完之后没什么需要特别学习的地方。大家绕道走吧。

2023-11-15 23:49:32 938 2

原创 【微服务专题】手写模拟SpringBoot

SpringBoot最大的特点是什么大家伙还记得吧?自动配置 + 约定大于配置原则。简单学习了一下SpringBoot的启动流程简单学习了一下SPI机制,及其在Java和Spring中的使用。

2023-11-11 00:53:55 1232

原创 【ES专题】Logstash与FileBeat详解以及ELK整合详解

这一篇笔记给大家分享一些日志管理相关的组件。为什么需要这个玩意呢?这主要还是因为分布式微服务的兴起啊!试想一下,现在的电商场景,动不动就百万流量进来,万一线上出了什么问题了,异常啊什么的,总该需要追溯日志吧?而且这些日志,在微服务场景下,通常是分布在多个机器里面的。那在这种海量业务日志里面,如何快速找到分布在各服务器里面的日志呢?海量日志多台服务器集中化日志管理思路:日志收集 -> 格式化分析 -> 检索和可视化 -> 风险告警Logstash 是免费且开放的服务器端数据处理管道,能够从多个来源。

2023-11-08 23:39:14 877 1

原创 【ES专题】ElasticSearch功能详解与原理剖析

使用:搜索和聚合操作语法,理解分词,倒排索引,相关性算分(文档匹配度)优化: 数据预处理,文档建模,集群架构优化,读写性能优化学习了ES的预处理器弄明白了ES的读写流程,以及ES写原理。

2023-11-07 22:26:31 542

原创 【ES专题】ElasticSearch集群架构剖析

使用何种通信协议去同步数据,互相通信采用何种策略同步数据(异步还是同步)如何保证一致性,保证到什么程度(【最终一致性】 or【实时一致性 / 强一致性】)使用何种算法去选举主次节点(感觉这个比较随意,通常为了快速恢复服务,选举流程是怎么快怎么来,但是不能出现【脑裂问题】)

2023-11-05 22:13:08 2332

原创 【ES专题】ElasticSearch搜索进阶

丑话说在前头,说实在这篇笔记写的不是很好,我自己都云里雾里的,所以大伙们可以不用看这篇笔记了(主要还是评分机制有点搞不清楚)。我单纯是为了记录笔记所以才坚持写成博客,方便后面回顾。等我什么时候真正理解清楚了,我再回过头来修改一下。ElasticSearch之score打分机制原理。

2023-11-02 18:56:35 890

原创 【ES专题】ElasticSearch 高级查询语法Query DSL实战

语法结构比较陌生没有中文文档, 只能看英文其他博客也比较少介绍语法结构。比如说,为什么查询中会出现query关键词就跟Mysql有自己的查询语言一样,ES作为一款优秀的分布式文档存储和【搜索引擎】,它也有自己的查询语言。即:Query DSL(查询Domain Specific Language),查询领域专用语言。Query DSL是利用RESTfull风格API传递JSON格式的请求体(RequestBody)数据与ES进行交互,这种方式的丰富查询语法让ES检索变得更强大,更简洁。

2023-10-31 23:38:09 1311

原创 【POI-EXCEL-下拉框】POI导出excel下拉框数据太多导致下拉框不显示BUG修复

最近在线上遇到一个很难受的BUG,我一度以为是我代码逻辑出了问题,用了Arthas定位分析之后,开始坚定了信心:大概率是POI的API有问题,比如写入数据过多。PS:上图为正常的下拉框。但是,当下拉选项过多时(跟多少无关,而是跟字节数有关),会导致下拉框内容显示失败。

2023-10-31 11:29:46 893 2

原创 【ES专题】ElasticSearch快速入门

现在有一个【搜索】的场景,在CSDN中 【搜索】【Java设计模式】,你会看到如下页面:看,大伙有没有想过,上面这种搜索,到底是怎样实现的?就假设他们就是存在一个Mysql里面了,那我们不妨来反推一下,上面这个搜索,它们背后的表结构是怎样的。id标题title内容content1Java中23种设计模式Java中23种设计模式,包括简单介绍,适用场景以及优缺点等2Java常见设计模式总结设计模式是一套经过反复使用的代码设计经验,目的是为了重用代码、让代码更容易被他人理解、保证代码可靠性。

2023-10-30 23:38:42 1243

原创 【Netty专题】用Netty手写一个远程长连接通信框架

目录前言阅读对象阅读导航前置知识课程内容一、使用Netty实现一个通信框架需要考虑什么问题二、通信框架功能设计2.1 功能描述2.2 通信模型2.3 消息体定义2.4 心跳机制2.5 重连机制*2.6 Handler的组织顺序2.7 交互式调试三、代码实现:非必要。感兴趣的自行查看3.1 最外层的通信入口3.1.1 NettyRpcServer:服务端通信入口3.3 NettyRpcClient:客户端通信入口3.3 NettyRpcClient:交互式调试3.2 server包下3.2.1 ServerI

2023-10-25 20:30:44 622

原创 【Netty专题】Netty实战与核心组件详解

Netty啊,真的是大名鼎鼎!Netty之于Java网络编程,相当于Spring之于Java开发。两者都是Java生态的金字塔尖的【框架】!所以,非常推荐Java程序员学习这个框架。Netty有多牛逼?据说,曾经在性能上把谷歌公司一个用C++写的网络通信框架都给人干碎了。后来,后者参照了Netty的设计方案,才完成了超越。Netty是由 JBOSS 提供的一个Java开源网络通信框架。它是一个【异步事件驱动】的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。也就是说,

2023-10-21 23:49:50 369

原创 【Netty专题】【网络编程】从OSI、TCP/IP网络模型开始到BIO、NIO(Netty前置知识)

我是有点怕网络编程的,总有点【谈网色变】的感觉。为了让自己不再【谈网色变】,所以我想过系统学习一下,然后再做个笔记这样,加深一下理解。但是真要系统学习,其实还是要花费不少时间的,所以这里也只是简单的,尽可能地覆盖一下,梳理一些我认为比较迫切需要了解的网络编程相关的知识。其实单单网络编程跟TCP/IP协议族就可以拿来写一个独立的笔记了,但是为了让知识点更耦合一点,我还是决定写在一起。当然这样也有坏处,那就是知识点比较密集,然后导致笔记篇幅偏长,所以阅读的朋友给点耐心。

2023-10-17 23:37:21 1279

原创 【Zookeeper专题】Zookeeper选举Leader源码解析

为什么要看源码?说实在博主之前看Spring源码之前没想过这个问题。因为我在看之前就曾听闻大佬们说过【JavaCoder三板斧:Java,Mysql,Spring】,所以我抱着积极的学习心态去看的。另外,我也发现了一个很有意思的现象:就是我们一群人在学习,但是每个人学习的【偏好】似乎是不一样的,或者说关注的重点不一样。所以,其实我也不知道自己关注的重点到底对不对,但总归是有收获的。现在回过头来再看ZK源码,有必要学习吗?

2023-10-11 20:28:44 558

原创 华为OD机考B卷 | 100分】阿里巴巴找黄金宝箱(JAVA题解——也许是全网最详)

移动指针(移动天枰)

2023-10-10 12:47:51 1293

原创 【华为OD机考B卷 | 100分】选修课(JAVA题解——也许是全网最详)

本人是算法小白,甚至也没有做过Leetcode。所以,我相信【同为菜鸡的我更能理解作为菜鸡的你们的痛点】。

2023-10-10 11:30:05 109

原创 【华为OD机考B卷 | 100分】五子棋迷(JAVA题解——也许是全网最详)

本人是算法小白,甚至也没有做过Leetcode。所以,我相信【同为菜鸡的我更能理解作为菜鸡的你们的痛点】。

2023-10-09 11:27:48 332 1

原创 【Zookeeper专题】Zookeeper经典应用场景实战(二)

说到分布式锁,这里其实有2个概念,即【分布式 + 锁】。分布式这个概念我们可以看看【前置知识】;至于锁嘛,第一概念当然是JUC中的锁了。如:Sychronized和ReentractLock。但是,这些作为JVM级别的锁,只能应用在同一个进程中,不同线程的竞争中,没办法满足分布式(多进程)的使用场景、于是,就需要一种更加高级的锁机制来处理多进程之间的数据同步问题,这种机制就是:分布式锁。基于数据库的分布式锁。这种方案使用数据库的事务和锁机制来实现分布式锁。

2023-10-08 11:45:07 889

原创 【华为OD机考B卷 | 100分】整数编码(JAVA题解——也许是全网最详)

本人是算法小白,甚至也没有做过Leetcode。所以,我相信【同为菜鸡的我更能理解作为菜鸡的你们的痛点】。

2023-10-08 10:02:50 106

原创 【华为OD机考B卷 | 100分】统计监控、需要打开多少监控器(JAVA题解——也许是全网最详)

本人是算法小白,甚至也没有做过Leetcode。所以,我相信【同为菜鸡的我更能理解作为菜鸡的你们的痛点】。

2023-10-07 17:41:46 468

原创 【Zookeeper专题】Zookeeper经典应用场景实战(一)

ZooKeeper : Curator框架之数据缓存与监听CuratorCache。

2023-10-07 12:45:24 1454

原创 【Zookeeper专题】Zookeeper特性与节点数据类型详解

对于我们这些JavaCoder来说,市面上有各式各样,功能相似的中间件供我们使用。我想大家应该都清楚,要认识一个中间件,最好的方式应该是从它的创造背景开始说起。PS:Zookeeper主要用来解决分布式集群中应用系统的一致性问题什么是zookeeper?ZooKeeper,动物园管理者。动物园里有什么?动物园里有各种各样的动物,而且通常这些动物都是三两只,甚至一群一群的。然后,为了协调资源,或者说保护动物园里的各类动物,通常它们也是分区域管理的。

2023-10-05 12:33:25 1433

转载 【Kafka专题】Kafka日志索引详解以及生产常见问题分析与总结

了解了文件存储日志文件的特点及数据内容。

2023-10-03 14:29:29 363

原创 【Kafka专题】Kafka集群架构设计原理详解

Kafka的天生就是为了保证高吞吐,高性能,高可扩展的三高架构设计的,所以如果在学习中,遇到一些无法理解的,你可以适当地从这三高点入手理解。服务端Broker:一个Kafka服务器就是一个Broker(在MQ中经常出现的一个名词:中介者)Kafka将状态信息保存在Zookeeper中,这些状态信息记录了每个Kafka的Broker服务与另外的Broker服务有什么不同。通过这些差异化的功能,共同体现出集群化的业务能力。这些数据,需要在集群中各个Broker之间达成共识,因此,需要存储在一个所有集群都能共同访

2023-10-02 23:21:05 1389

原创 【Kafka专题】Kafka收发消息核心参数详解

Kafka的客户端基本就是固定的按照这三个大的步骤运行。在具体使用过程中,最大的变数基本上就是给生产者和消费者设定合适的属性,这些属性极大的影响了客户端程序的执行方式。*二、从客户端属性来梳理客户端工作机制*2.1 消费者分组消费机制这是我们在使用kafka时,最为重要的一个机制,因此最先进行梳理。在Consumer中,都需要指定一个GROUP_ID_CONFIG属性,这表示当前Consumer所属的消费者组。// 翻译如下:// 标识此消费者所属的消费者组的唯一字符串。

2023-10-02 17:39:40 1782

原创 【Mysql专题】一条SQL在Mysql中是如何执行的

知其然,当知其所以然。Mysql作为我们后端的重中之重,搞懂其执行原理非常有必要。甚至有人这么说:Java一定要搞好的三板斧有【数据结构】、【Mysql】、【Spring】。只要你能舞好这三板斧,基本上可以成为一个比较优秀的JavaCoder了。复习sql的执行顺序,特别是查询语句的执行顺序学习Mysql服务的内部组件结构图学习Mysql内部各组件的作用。

2023-09-28 17:49:28 506 2

原创 【Mysql专题】存储过程介绍及其基本操作

存储过程是一组为了完成特定功能的 SQL 语句集合。使用存储过程的目的是将常用或复杂的工作预先用 SQL 语句写好并用一个指定名称存储起来,这个过程经编译和优化后存储在数据库服务器中,因此称为存储过程。当以后需要数据库提供与已定义好的存储过程的功能相同的服务时,只需调用“CALL存储过程名字”即可自动完成。(对应的就是Java里面的函数)

2023-09-28 15:38:59 920

原创 【Kafka专题】Kafka快速实战以及基本原理详解

​ ChatGPT对于Apache Kafka的介绍:Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发并于2011年开源。它主要用于解决大规模数据的实时流式处理和数据管道问题。Kafka是一个分布式的发布-订阅消息系统,可以快速地处理高吞吐量的数据流,并将数据实时地分发到多个消费者中。Kafka消息系统由多个broker(服务器)组成,这些broker可以在多个数据中心之间分布式部署,以提供高可用性和容错性。Kafka的基本架构由生产者、消费者和主题(topic)组成。

2023-09-28 00:41:20 1182

原创 【Mysql专题】视图介绍及其基本操作

视图是一个虚拟表,其内容由查询定义。同真实表一样,视图包含一系列带有名称的列和行数据,但视图并不是数据库真实存储的数据表。视图是从一个、多个表,或者其他视图中导出的表,包含一系列带有名称的数据列和若干条数据行。视图不是真实存在的表,而是一张虚拟表。其结构和数据都是建立在对数据库中,真实表的查询基础上的存储在数据库中的查询操作 SQL 语句定义了视图的内容,列数据和行数据来自于视图查询所引用的实际表,引用视图时动态生成这些数据。

2023-09-27 17:03:54 249

转载 【RocketMQ专题】核心编程模型以及生产环境最佳实践

从生产者跟消费者的代码步骤可以看出,最为关键的就是NameServer。RocketMQ的客户端只需要指定NameServer地址,而不需要指定具体的Broker地址。不过,指定NameServer的方式通常会有两种。可以在客户端直接指定,例如 consumer.setNameSrvAddr(“127.0.0.1:9876”);也可以通过读取系统环境变量NAMESRV_ADDR指定。不过前者的优先级更高学习了生产级的RocketMQ使用。

2023-09-24 23:40:04 80

空空如也

空空如也

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

TA关注的人

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