自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RocketMQ概述

RocketMQ是阿里巴巴开源的一款消息系统中间件,现已捐赠给apache基金会。RocketMQ基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。同时,广泛应用于多个领域,包括异步通信解耦、企业解决方案、金融支付、电信、电子商务、快递物流、广告营销、社交、即时通信、移动应用、手游、视频、物联网、车联网等。

2025-04-05 11:45:00 800

原创 Swagger集成保姆教程

其实无论是前端调用后端,还是后端调用后端,都期望有一个好的接口文档。但是这个接口文档对于程序员来说,就跟注释一样,经常会抱怨别人写的代码没有写注释,然而自己写起代码起来,最讨厌的,也是写注释。所以仅仅只通过强制来规范大家是不够的,随着时间推移,版本迭代,接口文档往往很容易就跟不上代码了。Swagger是一个开源的软件框架,可以帮助开发人员设计、构建和使用Web服务,将代码与文档结合在一起,完美的解决了上述问题,使开发人员将大部分精力集中到业务中,而不是文档的撰写。enabled改为false。

2025-04-03 13:30:00 813

原创 SpringBoot整合websocket及websocket概述

在海量并发及客户端与服务器交互负载流量大的情况下,极大的节省了网络带宽资源的消耗,有明显的性能优势,且客户端发送和接受消息是在同一个持久连接上发起,实现了“真·长链接”,实时性优势明显。http是一种无状态协议,每当一次会话完成后,服务端都不知道下一次的客户端是谁,需要每次知道对方是谁,才进行相应的响应,因此本身对于实时通讯就是一种极大的障碍。http协议采用一次请求,一次响应,每次请求和响应就携带有大量的header头,对于实时通讯来说,解析请求头也是需要一定的时间,因此,效率也更低下。

2025-04-02 17:00:00 695

原创 Kafka简要介绍与快速入门示例

数据传输的事务定义通常有以下三种级别:(1)最多一次: 消息不会被重复发送,最多被传输一次,但也有可能一次不传输(2)最少一次: 消息不会被漏发送,最少被传输一次,但也有可能被重复传输.(3)精确的一次(Exactly once): 不会漏传输也不会重复传输,每个消息都传输被一次而且仅仅被传输一次,这是大家所期望的。

2025-04-01 13:26:23 1090

原创 权限框架SpringSecurity介绍

目前市面上比较流行的权限框架主要实Shiro和Spring Security,这两个框架各自侧重点不同,各有各的优劣。Spring Security是为基于Spring的应用程序提供声明式安全保护的安全性框架,它提供了完整的安全性解决方案,能够在web请求级别和方法调用级别处理身份证验证和授权。因为基于Spring框架,所以Spring Security充分利用了依赖注入和面向切面的技术。web请求级别:使用Servlet规范中的过滤器(Filter)保护Web请求并限制URL级别的访问。方法调用级别。

2025-04-01 13:14:28 1191

原创 Java规则引擎Drools急速入门

(1)什么是规则引擎全称为业务规则管理系统,英⽂名为BRMS(即 Business Rule Management System)。规则引擎的主要思想是将应用程序中的业务决策部分分离出来,并使用预定义的语义模块编写业务决策(业务规则),由用户或开发者在需要时进行配置、管理。需要注意的是规则引擎并不是一个具体的技术框架,而是指的⼀类系统,即业务规则管理系统。目前市面上具体的规则引擎产品有:drools、VisualRules、iLog等,使用最为广泛并且开源的是Drools。

2025-03-24 17:56:49 883

原创 redis启动哨兵模式,配置主从

这里我配置文件放在根目录下的 可以任意放什么位置配置文件中,主库不用做配置 所有从库指定主库地址 如果主库有密码 主从密码需要一致。

2025-03-21 10:24:09 364

原创 Linux系统中安装各种常用中间件

例如: docker run -itd --privileged=true -p 7010:7010 --name service-a 64b87045a6fa。然后进入容器再次执行 ulimit -n 命令, 成功的输出了 65535 . 说明之前的配置确实是生效了的。在执行 docker run 命令时添加参数 --ulimit nofile=65535:65535 --ulimit nproc=65535:65535。因为帖子上有很多赞,说明这个方法确实解决了一些道友的问题, 但我的问题不是如此。

2025-03-21 10:19:53 826

原创 virtualenv常用命令

virtualenv是在项目文件夹中创建独立的虚拟环境virtualenvwrapper是把所有环境放置在WORKON_HOME变量指定的文件夹中。

2025-03-19 11:30:00 177

原创 vue中的导航守卫

1、验证用户是否登录(若未登录,且当前非登录页面,则自动重定向登录页面);2、用户权限;3、用户输入的路路径是否存在,不存在的情况下如何处理,重定向到哪个页面。验证登录示例:路由规则。

2025-03-18 09:30:00 552

原创 vue3和vue2区别以及vue3快速入门

vue2:vue2是把数据放入data中,在vue2中定义数据变量是data(){},创建的方法要在**methods:{}**中。vue3:,vue3就需要使用一个新的setup()方法,此方法在组件初始化构造的时候触发。从vue引入reactive;使用reactive()方法来声明数据为响应性数据;使用setup()方法来返回我们的响应性数据,从而template可以获取这些响应性数据。

2025-03-18 09:15:00 799

原创 Django导入和导出中文表头

get_export_headers是导出为中文表头,field_from_django_field是导入为中文表头。BaseModelResource可以直接复制粘贴,不用修改。2.对要进行导入导出中文表头的表,添加以下代码(同样是在admin.py)model改为对应的model,fields改为对应字段。resource_class ,和第二步的类名对应。1.首先在admin.py添加以下代码。3.对要进行导入导出中文的表作以下修改。

2025-03-17 14:30:00 202

原创 zeromq

在C++的ZeroMQ应用中处理消息超时未消费的问题,通常意味着你需要在发送方实现一个机制,以便跟踪哪些消息已发送但在预定的时间内未被消费(即未收到消费确认)。在C++的ZeroMQ应用中处理消息重发逻辑,主要涉及到检测消息是否成功送达(基于之前讨论的消息确认机制)并在未确认的情况下重发消息。首先,定义一个简单的消息协议,比如每次发送消息后,接收方需要回送一个确认消息(ACK)。通过实现这样的机制,你可以确保你的ZeroMQ应用能够处理消息超时未消费的情况,从而提高整体的消息传递可靠性。

2025-03-17 12:30:00 795

原创 vue.js中的Route路由

​ 官网帮助文档地址: https://router.vuejs.org/guide/路由的本质就是一种对应关系,根据不同的URL请求,返回对应不同的资源。那么url地址和真实的资源之间就有一种对应的关系,就是路由。在Vue中路由就是控制显示哪个页面。通过路由显示的页面是显示在App.vue中的,这符合SPA,当更改URL后只改变App.vue页面中路由对应的部分的内容,也就是说通过路由显示时也是属于局部刷新效果。​ 在App.vue中通过<router-view/>显示路由内容。

2025-03-17 12:30:00 576

原创 工作流BPMN

总的来说,EIP和Camel为BPM提供了一套成熟的集成模式和技术实现,使得BPM能够更好地适应复杂多变的企业应用环境,实现敏捷、灵活、可扩展的业务流程管理。总的来说,监听器提供了一种灵活的机制,可以在不修改流程定义的情况下,通过注册和触发监听器来扩展BPMN流程的行为和功能,满足不同的业务需求。这些项目和工具可以与Camunda和SpringBoot很好地配合,提供了流程设计、执行、监控、分析、安全、数据存储、通信等各个方面的支持,帮助构建功能完善、高性能、可扩展的BPM微服务架构。

2025-03-17 12:00:00 683

原创 vue.js中solt插槽的介绍

slot(插槽),我们理解为就是"占位",还有些人可能没那么儒雅,称之为"占坑,茅坑",所以有坑,我们就要填.真正的作用是:在组件模版中占一个坑,当我们使用这个组件标签的时候,通过替换组件模版中slot位置,来填这个坑我们知道,在vue中,引入的子组件标签中间是不允许写内容的。为了解决这个问题,官方引入了插槽(slot)的概念。插槽,其实就相当于占位符。它在组件中给你的HTML模板占了一个位置,让你来传入一些东西。插槽又分为匿名插槽具名插槽以及作用域插槽。

2025-03-17 10:19:47 333

原创 后端开源库手册

A: Calcite 可以通过使用数据质量检查函数来实现数据质量检查,如使用 CHECKSUM()、COUNT()、DISTINCT() 等函数来检查数据质量。Q: Calcite 如何处理数据归一化?A: Calcite 可以通过使用数据归一化函数来实现数据归一化,如使用 MIN-MAX 归一化、Z-Score 归一化等方法来归一化数据。A: Calcite 可以通过使用填充缺失值的函数来处理缺失值,如使用 AVG()、MEDIAN()、MODE() 等聚合函数来填充缺失值。等典型数据库管理功能。

2025-03-16 08:00:00 539

原创 EMQX MQTTX部署

EMQX MQTTX部署。

2025-03-16 08:00:00 248

原创 postgis与高德地图转化

在上面的示例中,我们首先将PostGIS的WGS84坐标转换为高德GCJ-02米制坐标,然后再将高德米制坐标转换回WGS84坐标。4. 格式转换:根据高德地图的要求,将提取的地理数据转换为相应的格式。2. 坐标系转换:如果 PostGIS 中的地理数据使用的是不同的坐标系,可能需要进行坐标系转换。5. 数据映射:如果高德地图对数据有特定的字段或属性要求,可能需要将 PostGIS 中的数据映射到对应的字段上,以确保数据的一致性和可用性。注意,在实际使用中,需要根据应用场景的要求评估坐标转换带来的精度影响。

2025-03-16 00:15:00 844

原创 postgis插件激活与使用

测试是否有postgis插件。激活POSTGIS插件。需要有权限的用户来激活。

2025-03-15 14:30:00 210

原创 多线程到底重不重要?

我们先从线程的基本概念开始,给大家复习一下,不知道有多少同学是基础不太好,说什么是线程都不知道的,如果这样的话,花时间去补初级内容的课。什么是叫一个进程?什么叫一个线程?

2025-03-15 05:30:00 2064

原创 QT快速入门与环境配置

sudo apt install qt5-defaultsudo apt install qtbase5-dev qtbase5-dev-toolssudo apt install qt5-补全sudo apt install qtcreator。这里是你opencv-android-sdk中opencvconfig.cmake所在路径,参考:D:\\Android-SDK\\OpenCV-android-sdk\\sdk\\native\\jni\\abi-armeabi-v7a。QT相关项目编译环境。

2025-03-14 19:30:00 926

原创 PostgreSQL快速入门

在PostgreSQL里没有区分用户和角色的概念,“create user" 为”create role“的别名,这两个命令几乎是完全相同的,唯一的区别就是”create user“ 命令创建的用户默认带有login属性,而“create role”命令创建的用户默认不带login属性。一切顺利的话,因为这里用的是create策略,所以表还在,打开pgAdmin,可以看到user_info表自动创建出来了,里面的数据也可以查到,看看跟单元测试的逻辑是否符合。

2025-03-13 15:45:00 774 3

原创 python 项目自动生成环境配置文件

最好先用conda建一个新环境,做好环境隔离,不然很有可能会污染你原来的环境,会出现以前跑通的代码,现在跑不通了。

2025-03-13 11:51:13 132

原创 日常生活中怎么优化SQL

增加索引是一种简单高效的手段,但是需要选择合适的列,同时避免导致索引失效的操作,比如like、函数等避免返回不必要的数据列,减少返回的数据列可以大大增加查询的效率根据查询分析器适当优化SQL的结构,比如是否走全表扫描,避免子查询等多表Join,类似于循环嵌套,外面的循环循环5次,里面的循环1,000次,如果小的循环在外侧,对于数据库连接来说就只连接5次进行5,000次的操作,如果1,000在外,则需要进行1,000次数据库连接,从而浪费资源,增加消耗,这就是join的时候,为什么需要小表驱动大表。

2025-03-12 21:15:00 652

原创 MySQL的一些八股文

mysql的一些八股文

2025-03-12 18:30:00 1924

原创 任务调度框架--XXL-JOB

XXL-Job:是大众点评的分布式任务调度平台,是一个轻量级分布式任务调度平台, 其核心设计目标是开发迅速、学习简单、轻量级、易扩展大众点评目前已接入XXL-JOB,该系统在内部已调度约100万次,表现优异。目前已有多家公司接入xxl-job,包括比较知名的大众点评,京东,优信二手车,360金融 (360),联想集团 (联想),易信 (网易)等等官网地址系统架构图设计思想将调度行为抽象形成“调度中心”公共平台,而平台自身并不承担业务逻辑,“调度中心”负责发起调度请求。

2025-03-12 10:00:00 821

原创 Vue2快速入门

Vue.js是一套构建用户界面的 渐进式框架。Vue从设计角度来讲, 虽然能够涵盖这张图上所有的东西,但是你并不需要一上手就把所有东西全用上 ,因为没有必要。无论从学习角度,还是实际情况,这都是可选的。声明式渲染和组件系统是Vue的核心库所包含内容,而客户端路由、状态管理、构建工具都有专门解决方案。这些解决方案相互独立,你可以在核心的基础上任意选用其他的部件,不一定要全部整合在一起。###声明式渲染渲染时分为声明式渲染和命令式渲染的Vue是声明式渲染的也就是只需要关心声明在哪里,做什么,不需要关心如何实现命

2025-03-12 09:59:52 1272

原创 如何优雅的分库分表

Sharding-JDBC出自当当网,现已进入到Apache开源项目当中。ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。他们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。

2025-03-11 21:30:00 953

原创 ruoyi部署文档

拉取项目之后执行sql 目录下的 tony-flowable.sql 文件创建对应数据库。找到ruoyi-admin配置文件,修改数据库地址为自己的地址。创建一个MySQL服务和redis服务。将表转化成大写和小写名字各自执行一遍。

2025-03-11 18:04:02 102

原创 并发编程合集

Lock锁是在JDK1.5由Doug Lea研发的,他的性能相比synchronized在JDK1.5的时期,性能好了很多多,但是在JDK1.6对synchronized优化之后,性能相差不大,但是如果涉及并发比较多时,推荐ReentrantLock锁,性能会更好。可见性问题是基于CPU位置出现的,CPU处理速度非常快,相对CPU来说,去主内存获取数据这个事情太慢了,CPU就提供了L1,L2,L3的三级缓存,每次去主内存拿完数据后,就会存储到CPU的三级缓存,每次去三级缓存拿数据,效率肯定会提升。

2025-03-11 17:04:56 596

原创 根据角色权限,动态菜单的实现

总的来说,通过用户-角色-权限的关联,并在后端进行权限拦截和菜单生成,再配合前端的菜单控制,就可以实现不同用户拥有不同的菜单权限的功能。在 Spring Boot 中,可以通过角色-权限的方式来实现不同用户拥有不同的菜单权限。另外,还需要注意的是,在前端展示菜单时,也要根据后端返回的菜单数据进行相应的控制,只显示用户有权限访问的菜单项。判断当前请求的路径是否在用户的权限范围内,如果没有权限,则拒绝访问。在拦截器中,获取当前用户的角色,并根据角色查询相应的权限。在前端,根据后端返回的菜单数据动态生成菜单。

2025-03-11 14:32:48 369

原创 Quartz框架快速入门

创建一个quartz包,创建自定义的Job任务类使用@Scheduled 定义某个定时作业(或工作)@Component@Slf4j”)log.info(“任务正执行:” + System.currentTimeMillis());这就是敏捷式开发,就是这么开心。Quartz是一个开源的任务调度框架。作用是基于定时、定期的策略来执行任务。它是OpenSymphony开源组织在Job scheduling领域又一个开源项目。“任务进度管理器”就是一个。

2025-03-11 14:30:56 1137

原创 java的二十三种设计模式

常用设计模式介绍

2025-03-11 12:14:40 1283

原创 springboot starter介绍与自定义starter示例

SpringBoot中的starter是一种非常重要的机制(自动化配置),能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要在maven中引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动相应的默认配置。starter让我们摆脱了各种依赖库的处理,需要配置各种信息的困扰。

2025-03-10 19:15:00 855

原创 JVM学习笔记

暂停时间只是一个目标,并不能总是得到满足。使用G1收集器时,Java堆的内存布局与就与其他收集器有很大差别,它将整个Java堆划分为多个大小相等的独立区域(Region),虽然还保留有新生代和老年代的概念,但新生代和老年代不再是物理隔离的了,它们都是一部分Region(不需要连续)的集合。更关键的是,如果不想浪费50%的空间,就需要有额外的空间进行分配担保,以应对被使用的内存中所有对象都有100%存活的极端情况,所以老年代一般不能直接选用这种算法。得要有对应的算法,下面介绍常见的垃圾回收算法。

2025-03-10 12:30:19 918

原创 Spring Cloud Alibaba快速入门及相关组件使用

Spring Cloud Alibaba是Aalibaba结合自身微服务实践,开源的微服务全家桶。在Spring Cloud项目中孵化,很可能成为Spring Cloud第二代的标准实现。在业界广泛使用,已有很多成功案例。大型复杂的系统,例如大型电商系统高并发系统,例如大型门户、秒杀系统需求不明确,且变更很快的系统,例如创业公司业务系统Spring Cloud Alibaba是Spring Cloud的子项目,Spring Cloud Alibaba符合Spring Cloud的标准。

2025-03-09 20:45:00 1242 2

原创 Dubbo面试题

Dubbo相关面试题八股文

2025-03-09 09:30:00 898

原创 redis中什么是bigkey?会有什么影响?

bigkey是指key对应的value所占的内存空间比较大,例如一个字符串类型的value可以最大存到512MB,一个列表类型的value最多可以存储23-1个元素。如果按照数据结构来细分的话,一般分为字符串类型bigkey和非字符串类型bigkey。字符串类型:体现在单个value值很大,一般认为超过10KB就是bigkey,但这个值和具体的OPS相关。非字符串类型:哈希、列表、集合、有序集合,体现在元素个数过多。bigkey无论是空间复杂度和时间复杂度都不太友好,下面我们将介绍它的危害。

2025-03-08 10:00:00 197

原创 redis实现分布式锁

然后实现分布式锁的方式有:redis分布式锁、mysql分布式锁、Zookeeper分布式锁。redis分布式锁的本质就是在redis中占坑,每个节点尝试在缓存中设置一个带有过期时间的键,如果设置成功,则表示获取了锁;否则,表示锁已经被其他节点占用。此外,我们还可以为锁设置一个过期时间,避免节点在获取锁后崩溃导致锁一直无法释放。基于缓存的分布式锁通常使用原子操作来实现,确保在并发环境下锁的获取是安全的。

2025-03-08 10:00:00 994

网络聊天室,websocket实现

使用websocket实现的网络聊天室,适合对socket通信的学习与运用

2025-03-12

Springboot+vue的校园课程管理系统

后端Springboot,前端vue2,前后端分离的校园课程管理系统

2025-03-12

空空如也

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

TA关注的人

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