- 博客(315)
- 资源 (52)
- 收藏
- 关注
原创 日志收集监控告警平台的选型思考
对于寻求与Grafana紧密结合、侧重标签索引、存储成本低的日志解决方案,推荐Grafana Loki,尤其是对于已经使用Grafana进行监控的团队。如果希望有一体化的可观测性解决方案,看重日志、指标和跟踪的整合,OpenObserve是个值得关注的新星,适合愿意探索和贡献的早期使用者。对于预算有限且关注应用性能监控的小型团队,SigNoz可以作为一个性价比高的选项。对于需要全面日志管理功能和复杂查询能力的传统IT设施或较复杂的分布式系统,Graylog是成熟的选择。
2024-03-23 17:58:52 842
原创 CSS学习(3)-浮动和定位
可以使用 left 、 right 、 top 、 bottom 四个属性调整位置,不过最常用的是 top 值。对兄弟元素的影响: 后面的兄弟元素,会占据浮动元素之前的位置,在浮动元素的下面;对前面的兄弟无影响。对父元素的影响: 不能撑起父元素的高度,导致父元素高度塌陷;粘性定位和相对定位的特点基本一致,不同的是:粘性定位可以在元素到达某个位置时将其固定。离它最近的一个拥有“滚动机制”的祖先元素,即便这个祖先不是最近的真实可滚动祖先。布局中的一个原则:设置浮动的时候,兄弟元素要么全都浮动,要么全都不浮动。
2024-03-16 21:05:37 864
原创 CSS学习(1)-选择器
作用:选中同时符合多个条件的元素。选择器1选择器2选择器3...选择器n {}/* 选中:类名为beauty的p元素,为此种写法用的非常多!!!!*/p.beauty {/* 选中:类名包含rich和beauty的元素 */有标签名,标签名必须写在前面。id 选择器、通配选择器,理论上可以作为交集的条件,但实际应用中几乎不用 —— 因为没有意义。交集选择器中不可能出现两个元素选择器,因为一个元素,不可能即是 p 元素又是 span 元素。元素选择器配合类名选择器。
2024-03-16 13:35:15 1031
原创 微信小程序(4)- 事件系统和模板语法
事件传参:在触发事件时,将一些数据作为参数传递给事件处理函数的过程,就是事件传参。在微信小程序中,我们经常会在组件上添加一些自定义数据,然后在事件处理函数中获取这些自定义数据,从而完成业务逻辑的开发。在组件上 通过data-*的方式 定义需要传递的数据,其中* 是自定义的属性,然后通过事件对象进行获取自定义数据。event.target 是指事件触发者, event. currentTarget 是指事件绑定者。
2024-02-25 21:54:43 1360
原创 微信小程序(3)- 小程序样式和组件
WXMLWXSSImage小程序提供了 WXML 进行页面结构编写,同时提供了 WXSS 进行页面的样式编写。WXML 提供了等标签来构建页面结构,只不过在小程序中将标签称为 组件。WXSS 对 CSS 扩充和修改,新增了尺寸单位 rpx、提供了全局的样式和局部样式,另外需要注意的是 WXSS 仅支持部分 CSS 选择器。
2024-02-25 21:34:08 1529
原创 微信小程序(2)- 小程序配置文件
JSON 我们知道常用于前后端数据的交互,但是在小程序中,JSON 扮演的配置项的角色,用于配置项目或者页面属性和行为,每个页面或组件也都有一个对应的 json 文件。小程序全局配置文件,用于配置小程序的一些全局属性和页面路由。小程序页面配置文件,也称局部配置文件,用于配置当前页面的窗口样式、页面标题等。小程序项目的配置文件,用于保存项目的一些配置信息和开发者的个人设置。配置小程序及其页面是否允许被微信索引,提高小程序在搜索引擎搜索到的概率。
2024-02-25 17:43:46 970
原创 Anaconda的安装和配置
在介绍之前,我们得要区别Anaconda和Python是什么关系,怎么描述这个关系呢,就拿汽车和发动机来做比喻吧,Anaconda就相当于汽车,而Python相当于是汽车的发动机。你安装Anaconda后,就像买了一台车,无需你自己安装发动机和其他零配件,而Python作为发动机提供Anaconda工作所需的内核。
2023-07-12 10:34:26 921
原创 二维码在物资管理中的应用以及实现
在物资管理中,我们经常需要对物资通过二维码,一码一物的方式进行管理,这样的管理方式非常方便。每个二维码都记录了整个物资设备的生命周期。
2023-07-11 17:09:30 423
原创 Sa-Token,一款更加轻量的权限认证框架
Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权 等一系列权限相关问题。// 会话登录,参数填登录人的账号id StpUtil . login(10001);就仅仅这一行代码即可搞定,无需实现任何接口,无需创建任何配置文件,只需要这一句静态代码的调用,便可以完成会话登录认证。
2023-07-06 15:24:36 1538
原创 持续集成工具Jenkins安装和部署
目前新版本的Jenkins对JDK的要求基本上都在JDK11以上,所以我这边将我服务器的JDK版本升级成为JDK11。将 git 加入环境变量中,修改 /etc/profile 文件,在 profile 文件末尾追加配置内容。如果修改以后,不行的话,就不能用自己安装的JDK,采用如下方式安装JDK。如果之前有安装,想升级版本或者重新安装,就得先卸载。官网可能需要注册账号,这里我为大家提供了下载链接。如果报如下错误,就是jdk安装不对或者配置不对。如果报错如下,可以执行如下命令。再重新启动,执行如下命令。
2023-07-02 15:03:03 720
原创 接口文档这几点我们一定要注意
我们在做开发的时候,经常需要输出接口文档,我们的接口文档,如果输出的有问题,首先给别人的感觉就是觉得你不专业,另外好的接口文档,给了他人以后,就完全可以按照你接口文档去做对接,而不是反复地再去问你,这样浪费了你的时间,也浪费人家时间。所以好的接口文档输出至关重要,但是怎么才算好的接口文档,我们在设计接口文档的时候都应该注意哪些点?!
2023-06-25 17:27:27 478
原创 网络编程的无冕之王-Netty入门和核心组件介绍
Netty是 一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。Netty框架是基于Java原生NIO技术的进一步封装,对Java-NIO技术做了进一步增强,充分结合了Reactor线程模型,将Netty变为了一个基于异步事件驱动的网络框架。Netty至今共发布了五个大版本,目前最常用的并非是最新的5.x系列,而是4.x系列的版本,原因是Netty本身就是基于Java-NIO封装的,而JDK本身又很稳定,再加上5.x版本并未有太大的性能差异,因此4.x系列才是主流。
2023-06-25 06:09:04 384
原创 Spring事件机制让你的代码更优雅
*** @Description: 创建事件} }这里就定义我们监听器需要的业务参数,我们需要监听器监听哪些参数的变化,我们就在这里定义哪些参数。
2023-06-24 22:27:03 369
原创 面试必问:四种经典限流算法
今天给大家分享一下限流方面的,大家都知道,在分布式系统中,高并发场景下,为了防止系统因突然的流量激增而导致的崩溃,同时保证服务的高可用性和稳定性,限流是最常用的手段。!。但是对于他们之间的具体优缺点,以及适用的场景,还有具体的实现可能就不是特别的清楚了,所以我今天为大家详细地分享一下其中的根本区别,以及优缺点还有具体场景,以及最终的实现。
2023-06-24 22:26:44 718
原创 返回值封装,异常统一处理优雅解决接口所有问题
所以今天我会给大家展示如何对返回值进行统一封装,如何对异常进行统一拦截,异常码定义,根据自己的业务自行定义即可。
2023-06-24 22:26:21 839
原创 一个工具类让你彻底解决bean深拷贝
深拷贝是我们在代码开发当中经常需要使用到的,但是市面上的对象拷贝方法,比如spring自带的,或者其他工具类带的对象拷贝,大部分都是浅拷贝,根本无法满足咱们的业务需求,我们就只能对里面的引用对象进行专门的赋值动作,比较麻烦。今天我会为大家分享我在工作当中经常使用到的深拷贝工具类,并会为大家一一分析讲解,当前类已经在生产中实践过,没有什么问题,大家可以基于自己的实际情况进行使用。!
2023-06-24 22:25:59 1093
原创 JDK 8到JDK 17都有哪些吸引人的特性?
从JDK 8到JDK 17,Java语言和平台经历了许多变化和改进,引入了许多吸引人的新特性和功能。在这里,给大家列举一些我认为最有趣或最有用的新特性,并会以实际使用案例为大家展示新用法。!
2023-06-24 22:23:46 758
原创 提高生产力,Java的这10个Lambda表达式必须掌握
今天为大家介绍的非常具有实操意义,Java的Lambda表达式自从引进以来,给Java的书写的效率上得到了极大的提升,可以简化代码、提高生产力。这篇文章将介绍10个我们必须掌握的Lambda表达式,这些表达式都是我根据实际使用情况,涵盖了在实际编程中的常见场景,比如列表操作、函数组合、条件筛选等。通过对这些的学习,你将更加深入地理解函数式编程的思想,能够更加高效地编写代码。
2023-06-21 19:36:11 280
原创 我们如何实现业务操作日志功能?
我们经常会有这样的需求,需要对关键的业务功能做操作日志记录,也就是用户在指定的时间操作了哪个功能,操作前后的数据记录,必要的时候可以一键回退,今天我就为大家实现这个的功能,让大家可以直接拿来用。首先我们得要分析具体要实现这个功能,都需要记录哪些信息,然后怎么要去实现这个功能?具体功能点:我们首先要想到,要实现这个功能,最好的办法就是需要和业务逻辑进行解耦,因为它是一种业务辅助功能,同时是对所有业务的一种横向操作,那我们使用什么技术,是不是就呼之欲出了?最容易想到的就是AOP切面+自定义注解。1、首先定义操
2023-06-20 21:46:53 1839
原创 nacos集成springcloud实现配置中心功能
开发中,有时候会出现多个模块可能会有很多共用的配置,比如数据库连接信息,Redis 连接信息,RabbitMQ 连接信息,监控配置等等。那么此时,我们就希望可以加载多个配置,多个项目共享同一个配置之类等功能,Nacos Config 也确实支持。注意:这里的Data ID后面是加.yaml后缀的,且不需要指定file-extension。有两种配置方式,一种是官方自动构建dataId ,另一种是指定dataId。我添加了两个配置列表,一个项目的私有配置,一个是公共配置(多项目共享)。Nacos在配置路径。
2023-06-20 19:30:14 478
原创 链路追踪SkyWalking整合项目以及数据持久化
因为Skywalking收集到的信息一般存储到ES中,然后在ES中用来查看,所以我这边采用ES方式为大家说一下部署方式。需要添加mysql数据驱动包,因为在lib目录下是没有mysql数据驱动包的,所以修改完配置启动是会报错,启动失败的。:skywalking的服务端,收集分析应用调用的链路信息,并提供接口给 安装skywalking-UI。如果要在本地集成到IDEA,就下载到本地,如果需要在Linux完成项目集成,就下载到Linux环境下。11800:收集应用调用的端口,12800:提供服务的端口,
2023-06-20 19:29:30 1432
原创 微服务链路追踪SkyWalking的介绍和部署
首先我们要明白一点,在微服务的架构中,为什么要做链路追踪?解决问题的痛点在哪里?如何将整个调用链路串起来,并能够快速定位问题?如何梳理清楚各个微服务之间的依赖关系?如何针对各个微服务接口进行性能分折?如何跟踪整个业务流程的调用处理顺序?SkyWalking是一个开源的应用性能监控系统,它主要用于跟踪、监测和优化分布式系统和微服务架构的性能。它提供了分布式系统的全链路追踪、指标采集和可视化等功能,可以帮助开发人员及运维人员在实时和历史数据中快速定位和解决性能问题。
2023-06-20 19:26:42 3198 1
原创 Nacos的安装和部署
接下来的时间,我会将Nacos的安装部署,以及在微服务中将其作为配置中心,注册中心,以及它的高级应用会一一为大家分享,今天为大家分享的是Nacos的安装和部署,以windows为例。
2023-06-20 19:26:00 3129
原创 Lombok你不知道的用法
Lombok是大家经常用的一款工具,它可以帮我们减少很多重复代码的书写,但是我们对它的使用,可能更多局限于实体类的编写,比如说通过@Data注解实现减少getter/setter/toString等方法的编写,其实它还有更多的注解功能,让我们一起来了解Lombok更多的注解吧!
2023-06-20 19:25:26 110
原创 架构设计我们要注意什么?
这几天我正在做一个新项目的架构设计,关于动态流程引擎平台的搭建,涉及到了系统架构的设计,里面涉及了方方面面,所以就想着结合自己的实际经验,遇到的问题,以及自己的理解,为大家做一个简单的分享。我今天主要从这么几个方面来为大家说一下。
2023-06-20 19:23:42 579
原创 让我们彻底了解Maven(二)--- Maven私服的搭建
Name:仓库的名字;Type:仓库的类型;Format:仓库的格式;Status:仓库的状态;URL:仓库的网络地址。仓库总共分为四种类型,如下:注意的是,本地的Maven需要配置私服地址,当项目需要的依赖,在本地仓库没有,就会去到相应的宿主/远程仓库拉取;如果宿主仓库也没有,就会根据配置的代理仓库地址,去到中央仓库拉取。
2023-06-08 05:54:00 2729
原创 让我们彻底了解Maven(一)--- 基础和进阶
Maven大家都很熟悉,但是我们很多人,对它其实都是似乎很熟,但是又好像不熟悉的感觉,包括我,今天咱们就一起来彻底了解Maven的所有功能,我们从入门,到原理剖析,再到实践操作,最后是私服的搭建以及配置,整体并彻底了解一下Maven。
2023-06-07 05:34:13 399
原创 《彻底掌握索引》—— 要点问题(3)
这时候我们会感觉奇怪,idx_name_age(name,age)是联合索引,为什么选出包含“小”字后,不再顺便看下年龄age再回表呢,所以在MySQL 5.6就引入了索引下推优化,可以在索引遍历过程中,对索引中包含的字段先做判断,直接过滤掉不满足条件的记录,减少回表次数。如果是Mysql5.6之前,在idx_name_age索引树,找出所有名字第一个字是“小”的人,拿到它们的主键id,然后回表找出数据行,再去对比年龄和性别等其他字段。对于InnoDB表,此数字是估计值,并非一定是个准确值。
2023-03-15 16:00:30 325 1
原创 《彻底掌握索引》—— 要点问题(2)
当查询的数据在索引树中,找不到的时候,需要回到主键索引树中去获取,这个过程叫做回表。回表查询可以理解为普通索引的查询,先定位主键值,再定位行记录,它的性能较扫一遍索引树更低。主键索引的叶子结点存储的是一行完整的数据。非主键索引的叶子结点存储的则是主键值。叶子结点不包含行记录的全部数据;非主键的叶子结点中,除了用来排序的key还包含一个bookmark;该书签存储了聚集索引的key。所以,当我们需要查询的时候:如果是通过主键索引来查询数据,例如。
2023-03-15 14:20:55 289
原创 《彻底掌握索引》—— 要点问题(1)
B+树的优点:它每个节点可以存储更多的数据,树的高度会随之降低,读取磁盘的次数就会降低(和二叉树,平衡二叉树的区别)。它的非叶子节点上存储的都是键值数据,而非表数据,这样就会存储更多的键值,相对应的树的叶子节点就会更多,树就变得会矮胖,这样对磁盘的IO就会再次减少(和B树的区别)。B+树的所有数据都在叶子节点上存储,并且数据是按照顺序排列,链表连接,这样它的查询就会变得异常简单。当查询的数据在索引树中,找不到的时候,需要回到主键索引树中去获取,这个过程叫做回表。使用的查询SQL。
2023-03-13 17:07:39 219
原创 Spark学习(8)-SparkSQL的运行流程,Spark On Hive
将Filter这种可以减少数据集的操作下推,放在Scan的位置,这样可以减少操作时候的数据量。RDD的运行会完全按照开发者的代码执行, 如果开发者水平有限,RDD的执行效率也会受到影响。当使用ThriftServer后,相当于是一个持续性的Spark On Hive集成模式,它提供10000端口,持续对外提供服务,外部可以通过这个端口连接上来,写sql,让Spark运行。上面的过程生成的AST其实最终没有办法直接运行,AST叫做逻辑计划,结束后需要生成物理计划,从而生成RDD来运行。
2023-01-07 09:04:18 2448
原创 Spark学习(7)-SparkSQL函数定义
目前在SparkSQL中,仅仅支持UDF和UDAF函数,python仅支持UDF。注册的UDF可以用于DSL和SQL,返回值用于DSL风格,传参内的名字用于SQL风格。udf对象 = sparksession . udf . register(参数 1 ,参数 2 ,参数 3 )参数1:UDF名称,可用于SQL风格参数2:被注册成UDF的方法名参数3:声明UDF的返回值类型udf对象: 返回值对象,是一个UDF对象,可用于DSL风格仅能用于DSL风格。
2022-11-29 18:31:57 1412
原创 Spark学习(6)-Spark SQL
在RDD阶段,程序的执行入口对象是:。在Spark 2.0后,推出了对象,作为Spark编码的统一入口对象。用于SparkSQL编程作为入口对象。用于SparkCore编程,可以通过SparkSession对象中获取到。所以,后续执行环境入口对象,统一变更为SparkSession对象。2.4 SparkSession对象。
2022-11-28 18:58:17 2960
原创 Spark学习(5)-Spark Core之RDD
RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,代表一个不可变、可分区、里面的元素可并行计算的集合。一个数据集合,用于存放数据的。Distributed:RDD中的数据是分布式存储的,可用于分布式计算。Resilient:RDD中的数据可以存储在内存中或者磁盘中。RDD(Resilient Distributed Dataset)弹性分布式数据集,是Spark中最基本的数据抽象,
2022-11-22 06:06:28 1000
原创 Python语法(3)- 面向对象
class 类名称:类属性类行为对象 = 类名称()在类中定义成员方法和定义函数基本一致,但仍有细微区别:可以看到,在方法定义的参数列表中,有一个:self关键字self关键字是成员方法定义的时候,必须填写的。它用来表示类对象自身的意思当我们使用类对象调用方法的是,self会自动被python传入在方法内部,想要访问类的成员变量,必须使用self注意事项self关键字,尽管在参数列表中,但是传参的时候可以忽略它。
2022-11-12 13:27:59 750
原创 Python语法(2)- 数据容器,函数进阶,匿名函数
基本语法:列表内的每一个数据,称之为元素以 [] 作为标识列表内每一个元素之间用, 逗号隔开注意:列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套。元组定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型。语法如下:注意:元组只有一个数据,这个数据后面要添加逗号。是否支持下标索引支持:列表、元组、字符串 - 序列类型不支持:集合、字典 - 非序列类型是否支持重复元素:支持:列表、元组、字符串 - 序列类型。
2022-10-13 16:54:32 910 1
Redis-x64-window.zip
2019-12-12
springcloud+eureka+ribbon多服务负载均衡
2019-01-05
springboot+mybaties+maven聚合工程.zip
2019-01-03
小程序基础代码.zip
2024-02-25
简历模板,总共14种,均为word版本
2023-07-03
windows:nacos-server-2.2.3.zip Linux:nacos-server-2.2.3.tar.gz
2023-06-12
apache-skywalking-apm-8.3.0.tar.gz安装包 elasticsearch-6.7.0.tar.gz
2023-06-11
私服搭建nexus安装包
2023-06-08
windows-x64_FineBI5_1-CN.exe
2022-04-18
FineBI Windows版安装手册
2022-04-18
Kafka详细课程讲义
2022-01-21
Sharding Sphere课堂笔记.zip
2021-10-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人