自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CAT链路追踪

CAT是由大众点评开源的一款调用链监控系统,基于JAVA开发的。有很多互联网企业在使用,热度非常高。它有一个非常强大和丰富的可视化报表界面,这一点其实对于一款调用链监控系统而来非常的重要。在CAT提供的报表界面中有非常多的功能,几乎能看到你想要的任何维度的报表数据。特点:聚合报表丰富,中文支持好,国内案例多国内案例:携程、点评、陆金所等报表名称报表内容Transaction报表一段代码的运行时间、次数、比如URL/cache/sql执行次数相应时间Event报表。

2024-07-25 01:00:54 894

原创 Kubernetes快速实战与核心原理剖析

https://note.youdao.com/ynoteshare/index.html?id=bc7bee305611b52d6900ba209a92bd4d&type=note&_time=1721573570695

2024-07-21 23:35:11 79

原创 高性能图数据库Neo4j从入门到实战

随着社交、电商、金融、零售、物联网等行业的快速发展,现实社会织起了了一张庞大而复杂的关系网,传统数据库很难处理关系运算。大数据行业需要处理的数据之间的关系随数据量呈几何级数增长,急需一种支持海量复杂数据关系运算的数据库,图数据库应运而生。

2024-07-20 23:27:07 309

原创 log4j配置文件

【代码】log4j配置文件。

2024-07-20 23:09:15 427

原创 websocket

从上面的即时通讯聊天例子我们可以看到,要想做一个点对点的im应用,websocket采取的方式是让所有客户端连接服务端,服务器将不同客户端发送给自己的消息进行转发或者广播。为了说明html5规范中的websocket在客户端采用了websocket原生的API,实际开发中,有比较著名的两个库socket.io和sockjs,它们都对原始的websocket API做了进一步封装,提供了更多功能,都分为客户端和服务端的实现,实际应用中,可以选择使用。

2024-07-20 22:45:20 790

原创 深入解析 Java Stream Lambda 编程

1、Lambda表达式概述1.1、Lambda表达式的简介Java(SE)8 于 2014 年 3 月发布,引入了多个改进特性,其中 Lambda 表达式(Lambda expression,也可称为闭包(Closure))是最受欢迎的新特性之一。Lambda 表达式允允许把函数作为一个方法的参数,允许在方法中传递代码块,从而实现更加灵活的编程方式。Lambda 表达式可以简化代码,减少样板代码的出现,并且使代码更加易读和易于维护。Lambda 表达式允许我们通过表达式来代替功能接口。Lambd

2024-07-07 21:28:32 191

原创 Netty学习

non-blocking io 非阻塞 IO。

2024-07-02 23:58:14 850

原创 Java教程之IO模式精讲,NIO+BIO

在java的软件设计开发中,通信架构是不可避免的,我们在进行不同系统或者不同进程之间的数据交互,或 者在高并发下的通信场景下都需要用到网络通信相关的技术,对于一些经验丰富的程序员来说,Java早期的网络通 信架构存在一些缺陷,其中最令人恼火的是基于性能低下的同步阻塞式的I/O通信(BIO),随着互联网开发下通 信性能的高要求,Java在2002年开始支持了非阴塞式的I/O通信技术(NIO)。

2024-06-29 23:29:31 531

原创 IDEA debug 调试Evaluate Expression应用

在IDEA debug调试模式下,进入断点。在想要操作的变量上右键,点击Evaluate Expression打开Evaluate Expression计算表达式窗口。输入操作变量的表达式, 这里的e是我这段程序中的一个变量, 具体的依据自己项目而定, 点击Evaluate确定,就可以看到具体的值了。不知道要对变量具体进行怎么样的操作,这个时候idea中的这个功能就起到很大作用了。

2024-06-18 23:25:31 277

原创 Netty

1.API使用简单,开发门槛低2.功能强大,预置了多种编码功能,支持多种主流协议;3.定制能力强,可以通过channelHandler对通信框架进行灵活地扩展;4.性能高,通过与其他业界主流的NIO框架对比,netty的综合性能最优;5.成熟、稳定,netty修复了已发现的所有jdk nio bug,业务开发人员不需要再为nio的bug而烦恼;

2024-06-09 15:40:12 279

原创 Linux内核epoll

同步和异步,阻塞和非阻塞。

2024-06-08 19:32:35 667

原创 BIO、NIO编程与直接内存、零拷贝

Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口,其实就是一个门面模式。

2024-06-07 22:10:36 993

原创 深入理解网络通信和TCP/IP协议

TCPIP。

2024-06-06 00:00:11 498 1

原创 RabbitMQ

持久化Exchange要持久化Queue 要持久化Message 要持久化生产方 确认confirm消费方 确认ack消息丢失 死信队列(死信交换机)Broker高可用(集群)

2024-05-30 20:20:55 1461

原创 Python

运行python程序的两种方式。

2024-05-19 12:23:18 320

原创 K8S内容

1、故障迁移:当某一个node节点关机或挂掉后,node节点上的服务会自动转移到另一个node节点上,这个过程所有服务不中断。这是docker或普通云主机是不能做到的2、资源调度:当node节点上的cpu、内存不够用的时候,可以扩充node节点,新建的pod就会被kube-schedule调度到新扩充的node节点上。

2024-05-15 01:40:38 636

原创 分布式事务

用户定义的一系列数据库操作,这些操作可以视为一个完整的逻辑处理工作单元,要么全部执行,要么全部不执行,是不可分割的工作单元。ACID原则A 原子性通过锁保证C 一致性通过日志保证I 隔离性通过锁保证D 持久性通过日志保证BEGIN TRANSACTION业务逻辑BEGIN TRANSACTION表示事务的开启标记COMMIT 表示事务的提交操作,表示该事务的结束,此时将事务中处理的数据刷到磁盘中物理数据库磁盘中去。

2024-05-14 10:20:33 742

原创 亿级流量多级缓存

无状态:对单次请求的处理,不依赖其他请求。先解决核心的问题,预测未来可能出现的问题。第二次请求依赖第一次请求这就是有状态的。对现有问题有方案,对未来系统有预案。不要过度复杂化系统。

2024-04-28 20:41:31 112

原创 HTTPS原理

安全性:高加密传输明文传输加密方式分对称加密和非对称加密,https是把这两种都用上了称之为混合加密。

2024-04-23 16:50:25 516

原创 RocketMQ学习笔记

kafka适合于日志收集的场景(不需要太多topic;topic下面的partition多了会造成写文件的速度变慢,因为要造很多索引)RocketMQ更适合于电商场景(适用于topic特别多的情况)

2024-04-21 00:00:34 975

原创 JAVA 算法

又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。

2024-03-30 01:11:27 739

原创 Spring源码分析

IOC源码分析

2024-03-24 17:11:01 104

原创 SpringCloud Alibaba实战和源码(8)OpenFeign使用

Feign是Netflix开源的声明式HTTP客户端feign默认是不打印任何日志的,但是我们希望打印一些日志信息。比如调用的时间。级别打印日志内容NONE(默认值)不记录任何日志BASIC仅记录请求方法、URL、响应状态代码以及执行时间HEADERS记录BASIC级别的基础上,记录请求和响应的headerFULL记录请求和响应的header、body和元数据方式一:让父子上下文ComponentScan重叠(强烈不建议使用)/*** 日志级别。

2024-03-22 21:40:10 663

原创 JVM笔记

Java 和 C++语言的区别,就在于垃圾收集技术和内存动态分配上,C++语言没有垃圾收集技术,需要程序员手动的收集。垃圾收集,不是Java语言的伴生产物。早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生。哪些内存需要回收?什么时候回收?如何回收?垃圾收集机制是Java的招牌能力,极大地提高了开发效率。

2024-03-10 11:24:41 953

原创 Maven

Maven是什么Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个对象模型(POM)POM(Project Object Model): 项目对象模型基础概念仓库 : 用于存储资源,包含各种jar包分类:本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源远程仓库:非本机电脑上的仓库,为本地仓库提供资源中央仓库:Maven团队维护,存储所有资源的仓库私服:公司/部门范围内资源存储的仓库,从中央仓库获取资源私服的作用:保存具有版本的资源,包含购买或自主研发的jar中央仓

2024-03-10 00:51:51 829

原创 SpringBoot源码

为什么要讲SPI呢?因为在SpringBoot的自动装配中其实有使用到SPI机制,所以掌握了这部分对于SpringBoot的学习还是很有帮助的。SPI,全称为 Service Provider Interface,是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。这一机制为很多框架扩展提供了可能,比如在Dubbo、JDBC中都使用到了SPI机制。先通过一个很简单的例子来看下它是怎么用的。先定义接口项目。

2024-03-09 20:34:59 792

原创 分布式定时任务调度xxl-job

1、 掌握xxl-job部署以及开发的方式2、 掌握xxl-job特性以及架构设计3、 掌握xxl-job运行原理。

2024-03-05 23:46:47 2012

原创 Mybatis笔记

MyBatis 是一款优秀的持久层框架它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。MyBatis 本是apache的一个开源项目iBatis。

2024-02-18 21:23:46 888

原创 java实现多级目录树(递归实现)

有时候需要我们后台给前台传树结构的数据,要怎么查询?怎么返回数据呢?二.数据库表设计以及数据内容(以部门举例)

2024-02-14 13:05:21 1730 2

原创 IO工具类 FileUtils

【代码】IO工具类 FileUtils。

2024-01-09 23:25:44 394

原创 日志内容包

【代码】日志内容包。

2024-01-04 12:05:24 164

原创 抽丝剥茧设计模式

【代码】抽丝剥茧设计模式。

2024-01-03 11:34:50 607

原创 DDD+SOA的事件驱动微服务读写分离架构

CQRS — Command Query Responsibility Segregation,故名思义是将 command 与 query 分离的一种模式。query 很好理解,就是我们之前提到的「查询」,那么 command 即命令又是什么呢?我们仔细看CRUD, 其实可以更简单的分为读®和写(CUD), 我们想想大部分情况都是,一个方法要么是执行一个Command完成一个动作,要么就是查询返回数据。比如我们回答问题的人不应该去修改问题。当我们读写分离后,我们对应的代码也会分离。

2024-01-02 01:47:33 1151 2

原创 k8s安装

K8s 安装教程 v1.24第一步前置环境调试第一步确定自己的内核版本高于3uname -sr第二步:使用elrepo源升级内核检查发现当前内核版本是3.10,使用elrepo源升级内核配置elrepo源,执行如下命令查看最新版内核执行如下命令查看最新的内核版本安装最新的内核版本执行如下命令安装主线版本:设置系统默认内核查看系统上的所有内核版本:设置默认内核为我们刚才升级的内核版本。

2024-01-01 16:00:30 909

原创 Mybatis逆向工程

【代码】Mybatis逆向工程。

2023-12-30 15:16:37 803

原创 Arthas

输入dashboard(仪表板),按回车/enter,会展示当前进程的信息,按ctrl+c可以中断执行。注:输入前面部分字母,按tab可以自动补全命令第一部分是显示JVM中运行的所有线程:所在线程组,优先级,线程的状态,CPU的占用率,是否是后台进程等第二部分显示的JVM内存的使用情况第三部分是操作系统的一些信息和Java版本号。

2023-12-26 22:32:22 952

原创 RocketMQ与SpringBoot实际项目中使用

【代码】RocketMQ与SpringBoot实际项目中使用。

2023-12-25 20:30:21 503

原创 快速掌握前端 专为Java程序员定制

Javascript例子修改页面内容js 代码位置<script> // js 代码</script>引入 js 脚本<script src="js脚本路径"></script>注意,到了框架之后,引入方式会有不同1. 变量与数据类型声明变量1) let ⭐️let 变量名 = 值;let 声明的变量可以被多次赋值,例如let a = 100; // 初始值是 100a = 200; // ok,

2023-12-24 15:52:54 922

原创 前后端跨域问题

【代码】前后端跨域问题。

2023-12-23 14:41:15 343

原创 分布式解决方案与实战

2)为了TTL的失效的时候业务还未完成导致的多个应用抢到锁的BUG,这里可以使用一个守护线程,来不断的去续锁(延长key的TTL)2、解锁的逻辑中:在del之前一定要判断:只有持有锁的应用或线程,才能去解锁成功,否则都是失败。分布式锁的第一种常见方案:Redis来实现分布式锁。1W个请求,高并发请求,其实里面针对的修改库存会集中在一些热点数据8000个在一个商品。A抢到了锁,没有释放锁之前,依然可以lock进入加锁逻辑的。无论是加锁,还是解锁,这里涉及到多个命令。1、复合命令实现加锁。

2023-12-14 20:44:59 1548

空空如也

空空如也

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

TA关注的人

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