自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(55)
  • 资源 (3)
  • 收藏
  • 关注

原创 为什么监控和物联网项目都在用InfluxDB?这篇讲透了

InfluxDB作为专业时序数据库,采用TSM存储引擎优化时序数据管理,支持高效读写和压缩存储。其数据模型包含测量名称、标签、字段和时间戳四部分,适用于监控系统、物联网等场景。开源版存在查询语法限制(如不支持IN操作符)和集群功能缺失,企业版提供完整集群支持。选型需考虑数据规模,小规模场景可用开源版,中大规模建议企业版或TimescaleDB等替代方案。InfluxDB凭借专业的数据模型、高效存储和丰富生态,成为时序数据处理的重要选择。

2025-12-12 00:56:28 789

原创 Mybatis中使用的设计模式解析

MyBatis框架中巧妙运用了多种设计模式:Builder模式分步构建复杂配置对象;工厂模式统一管理核心对象创建;单例模式确保线程上下文唯一性;代理模式实现Mapper接口到SQL执行的转换;组合模式优雅处理动态SQL嵌套结构。这些模式的合理应用使MyBatis保持了代码清晰性,同时具备良好的扩展性和维护性。深入理解这些设计模式的具体实现,有助于在项目中更好地应用这些设计思想。

2025-12-12 00:52:54 271

原创 外卖系统中的搜索架构:主搜与垂搜详解

外卖APP搜索系统由主搜和垂搜两套系统协同完成。主搜采用"召回-粗排-精排"架构,通过多路召回和机器学习模型快速筛选相关商家;垂搜基于正排索引实现实时过滤和重排,满足用户精准筛选需求。两者分工明确:主搜解决"从哪里找"的问题,垂搜处理"如何精准选"的需求,共同构建了智能且高效的外卖搜索体验。系统持续优化方向包括多模态搜索、强化学习等技术应用。

2025-12-12 00:47:56 553

原创 多线程协作利器:CountDownLatch 核心用法与场景解析

CountDownLatch是Java并发工具类,用于线程同步协作。它通过计数器机制实现一个或多个线程等待其他线程完成操作,核心方法为await()和countDown()。主要应用场景包括:主线程等待子任务完成、多线程并发启动和共享资源初始化等待。使用时需注意其一次性特性、确保计数器被正确减少以及与Spring事务的兼容性问题。CountDownLatch能有效解决线程协作问题,使多线程程序更健壮高效。

2025-12-12 00:43:00 909

原创 【系统稳定性】上线三板斧:可灰度、可监控、可应急

互联网公司上线新功能的“三板斧”:可灰度、可监控、可应急。可灰度指分批次逐步发布新版本,将潜在问题限制在极小范围内;可监控是通过收集业务指标、应用性能和系统资源数据,设置告警机制,及时发现线上问题;可应急则包括一键回滚、功能开关等预案,确保快速恢复服务。这三项措施共同构成了保障系统稳定性的关键实践,是业务稳定运行的必备流程和基础能力。

2025-12-12 00:36:15 352

原创 告别分布式事务烦恼,Seata AT模式实战入门指南

告别分布式事务烦恼,Seata AT模式实战入门指南

2025-11-11 09:50:33 469

原创 MQTT协议详解:构建高效物联网通信的基石

摘要:MQTT协议是一种专为物联网设计的轻量级通信协议,采用发布/订阅模式,适用于低带宽、不稳定网络环境。与HTTP相比,MQTT具有长连接、低开销等优势,提供三种QoS等级保证不同场景下的数据传输可靠性,并通过心跳机制维持连接。其核心应用包括设备监控、移动推送和智能家居等场景。MQTT在阿里云等平台与RocketMQ结合,实现消息持久化和高并发处理,成为物联网领域的重要通信桥梁,具有轻量高效、适应性强等显著优势。

2025-11-11 09:45:03 833 2

原创 快速搭建ELK日志收集系统:从入门到实战全攻略

摘要:本文详细介绍了ELK(Elasticsearch+Logstash+Kibana)日志管理系统的完整搭建方案。通过Docker方式部署三大组件,并配置SpringBoot应用接入,解决传统日志分析效率低下的问题。文章包含环境准备、组件部署步骤、应用集成方法、查询技巧及常见问题解决方案,帮助开发者快速构建集中式日志管理系统,实现高效日志收集、存储、分析和可视化功能。(148字)

2025-11-11 09:37:35 554

原创 快速搭建分布式链路追踪系统:SkyWalking全攻略

摘要:本文介绍如何通过SkyWalking搭建分布式链路追踪系统来解决微服务架构中的问题定位难题。SkyWalking是一款国产开源的APM工具,具有性能优异、代码无侵入等优势。文章详细讲解了使用Docker快速部署SkyWalking OAP服务器和Web UI的方法,以及如何通过JVM参数将微服务应用接入系统。该系统可提供服务拓扑图、链路追踪详情和性能指标监控等功能,帮助开发者快速定位故障、分析性能瓶颈。最后还提供了常见问题解决方案和相关资源链接,助力实现高效的微服务治理。

2025-11-04 23:54:57 1116

原创 实物电商交易类微信小程序必须接入订单发货管理的公告!

点击「发货」按钮后需先填写该订单的商品信息,即用户购买的商品名称或商品标题,然后根据实际情况选择对应的【物流快递】、【同城配送】、【用户自提】、【虚拟发货】发货方式进行发货,除【物流快递】需填写快递信息外,其他三种发货方式可无需填写快递信息。商家发货后,订单资金进入结算周期。不同发货方式对应不同的结算周期。上传发货信息后,用户会在微信的【服务通知】中收到相应的「订单发货通知」,点击该通知后进入物流进度信息详情页,用户也可在该页面进行确认收货,订单资金在用户确认收货或系统自动确认收货后进行结算。

2025-10-25 19:22:04 608

原创 快速搭建企业级监控系统:Prometheus + Grafana 全攻略

本文详细介绍了基于Prometheus和Grafana构建企业级监控系统的完整方案。主要内容包括:1)监控架构设计,涵盖主机、数据库、容器等核心组件;2)环境部署步骤,包括Prometheus、Grafana及各类exporter的安装配置;3)数据源整合与仪表盘导入方法;4)告警配置及常见问题排查。文章提供了具体的Docker运行命令、配置文件和Grafana仪表盘ID,可帮助读者从零搭建覆盖全栈的生产级监控平台,并给出了数据持久化、资源限制等生产环境优化建议。

2025-10-20 21:08:15 825

原创 一键搞定PowerDesigner的Name转换Comment

在数据库设计过程中,PowerDesigner的Name(名称)和Comment(注释)字段处理常常让人头疼。今天介绍一个高效的批量转换方法,让你彻底告别手动操作的繁琐。

2025-10-18 22:26:10 172

原创 Redis五大数据类型全解析| 面试必备干货

Redis作为高性能键值数据库,提供五种核心数据类型:String(字符串)、Hash(哈希)、List(列表)、Set(集合)和Zset(有序集合)。每种类型都有其独特优势和应用场景:String适合简单键值存储,Hash占用空间小适合对象存储,List支持队列操作,Set支持集合运算,Zset适用于排行榜等排序场景。文章详细介绍了各类型的常用命令,并强调了Redis的二进制安全特性、键命名规范等最佳实践。掌握这些数据类型及其应用是使用Redis的基础,开发者应根据实际需求灵活选择合适的数据类型。

2025-10-18 11:24:08 319

原创 暹罗点餐开源啦,一款java多门店点餐系统-连锁门店如蜜雪冰城瑞幸咖啡

暹罗点餐是一款Java餐饮点餐系统,适用于多门店的连锁品牌,对标蜜雪冰城、瑞幸咖啡。系统包含用户端、商家端、配送端以及总管理后台;* 前端使用uni-app开发,可打包部署到微信小程序、APP、H5* Web端使用vue + Element开发* 服务端使用java语言开发,技术栈:Spring Boot + Redis + RocketMQ + WebSocket + ElasticSearch + ELK + SpringBoot Admin

2023-12-18 11:33:24 1135

原创 暹罗外卖开源啦,一款java多商户外卖系统-商家入驻如美团饿了么

暹罗外卖是一款Java外卖配送系统,适用于多商户入驻,对标美团外卖、饿了么。系统包含用户端、商家端、配送端以及总管理后台;前端使用uni-app开发,可打包部署到微信小程序、APP、H5Web端使用vue + Element开发服务端使用java语言开发,技术栈:Spring Cloud & Alibaba + Redis + RocketMQ + WebSocket + ElasticSearch + ELK + Sentinel + Seata + SkyWalking + SpringBoot

2023-12-18 11:31:50 1372 2

原创 图片悬浮效果

图片悬浮效果如图2.1和2.2所示,图2.1图2.2

2023-12-17 21:26:19 331 1

原创 博客摘录「 RocketMQ 解决 No route info of this topic 异常步骤」2023年7月13日

注册了broker,有两种方式 第一种、看broker的日志 如果出现形如2018-02-28 16:21:35 INFO BrokerControllerScheduledThread1 - register broker to name server 192.168.192.129:9876 OK2018-02-28 16:22:05 INFO BrokerControllerScheduledThread1。

2023-12-17 21:24:56 128

原创 座位安排,相邻编号之差的绝对值必须大于d

1997: Seating ArrangementTime Limit:1 SecMemory Limit:128 MbSubmitted:543Solved:171 DescriptionMr. Teacher老师班上一共有n个同学,编号为1到n。 在上课的时候Mr. Teacher要求同学们从左至右按1, 2, …, n的顺序坐成一排,这...

2018-07-17 21:15:30 504 2

原创 DetachedCriteria 离线查询

离线查询:离线查询使用DetachedCriteria对象设置限制条件,然后再通过session获取Criteria对象。离线查询的使用场景:例如Biz类和Dao类,在Dao类中利用session操作CRUD,如果你想在Biz中设置限定条件,如果不使用离线查询,那么势必得获取Criteria对象,如此一来又得获取session,有点麻烦。但是使用离线查询的话,可以直接获取DetachedCrit...

2017-04-24 22:23:40 874 2

原创 QBC查询

15、QBC查询格式:qbc的统计查询得使用projection实现,有两种方式:(1)(2)查看文档发现ProjectionList和Projection的关系如下所示:可以使用groupProperty投影对结果集进行分组(使用SQL的GROUP BY子句),当你通过某个属性分组时,程序就会查询出该属性所对应的列名。可以使用

2017-04-24 22:19:26 451

原创 hibernate 批量抓取

15、批量抓取批量抓取的使用场景是查询出来一个集合,然后又查询每个集合对象中的集合。使用set标签中的batch-size属性实现。数据库中只有5个区道信息;设置batch-size=”5”,执行的查询语句如下:而设置batch-size=”5”,执行的查询语句如下:由于发送sql数据的次数多少,所以batch-size的数值越大,效率就

2017-04-24 22:14:37 441

原创 fetch属性

15、fetch属性fetch的属性值有select(默认值)、join、subselect当fetch=”select”时,程序会先查询返回要查询的主体对象,然后根据lazy属性看是否懒加载。当fetch=”join”时,程序会将主体对象和关联对象用一句连接查询的sql同时查询出来,这样以来,懒加载就无用武之地了。subselect和select一样,不会一开始就将关联对象查出来

2017-04-24 22:07:08 637 2

原创 hibernate中的inverse属性

15、hibernate中的inverse属性修改街道对应的区道信息:修改后会发现程序执行了两次修改操作:原因:区道与街道是一对多的关系;由于Hibernate是双向维护外键,所以当修改区道中的街道时,会修改一次外键;在修改街道中的区道时,又会修改一次外键。这样就会产生效率慢的问题,因为如果执行两次修改,那么第二次是无用的操作。利用inverse属性可以解决这一

2017-04-24 22:04:40 440

原创 hibernate中的cascade属性

hibernate中的cascade属性Cascade属性是存在于set标签中,用来做级联删除和保存。它的值有以下几种:默认值是none,不做级联动作;save-update:级联保存delete:级联删除all:级联保存和删除

2017-04-24 22:02:48 404

原创 在struts框架中使用json

13、在struts框架中使用json客户端:Struts.xml:UserAction:注意:struts类库里面没有提供ezmorph-1.0.6.jar文件,所以要手动添加。

2017-04-24 22:00:00 286 2

原创 ul 两级联动

两级联动演示:原理:将数据库中的数据封装成对象,然后将对象转化为json数据,在客户端用异步获取后台的json数据即可。客户端jsp页面:后台:注意:在js中如果某个元素还未被加载,那么只可以获得该元素的引用,不能对该元素进行绑定事件。

2017-04-24 21:54:08 297

原创 struts下载文件

5、struts下载文件jsp部分:struts.xml部分:action部分:

2017-04-24 21:51:30 478

原创 Struts上传文件

5、Struts上传文件jsp部分:struts.xml部分:action部分:注意:文件对象名就是表单文件控件的name文件类型的命名=文件对象名+FileContentType文件名称的命名=文件对象名+FileName

2017-04-24 21:48:34 238 2

原创 显示错误信息

5、当我们显示错误信息的时候,会发现错误信息会以列表的形式显示,这样就不美观了,达不到我们想要的标准。所以我们可以用另外的方式输出错误信息。例如我现在增加了两个错误信息:this.addFieldError("username","用户名太长!");this.addFieldError("username","2222!");那么我就可以使用以下四种方法输出错误信息:

2017-04-24 21:46:18 367

原创 针对类型转换出错的处理

5、针对类型转换出错的处理--在页面上显示友好提示:类型转换出错时,要抛出一个运行时异常,程序会根据建立的属性文件,显示错误提示。实现方法::新建局部属性文件或者全局属性文件局部属性文件:放置在相关action类同级目录下,文件名格式:action类名.properties里面存放键值对,如:invalid.fieldvalue.time=mistakeinvalid.f

2017-04-24 21:36:45 523

原创 Struts的类型转换器

Struts的类型转换器用于将String类型转化为指定的数据类型,还可以将指定的数据类型转化为String类型。开发项目时很方便。实现方法:1:新建一个类继承StrutsTypeConverter类,实现其中的两个抽象方法,作为转换器类。2:新建局部属性文件或者全局属性文件局部属性文件:放置在相关action类同级目录下,文件名格式:action类名-conversio

2017-04-24 21:32:23 221

原创 java.lang.reflect.InvocationTargetException

使用hibernate+struts框架开发项目时,使用占位符时,系统抛出如下异常:Exception:java.lang.reflect.InvocationTargetExceptionroot Cause:java.lang.NoSuchMethodError: antlr.Collections.AST.getLine()I原因:由于我用的是MyEclipse自

2017-04-24 21:26:56 967 2

原创 org.hibernate.NonUniqueObjectException

使用hibernate进行更新操作时,首先调用了findById方法获取要修改的对象,此时session没有被关闭,接着重新创建一个对象,将要修改的属性值赋值给这个对象。调用修改方法抛出如下异常:org.hibernate.NonUniqueObjectException: a different object with the same identifier value was alread

2017-04-24 21:23:26 1078 2

转载 jquery eval解析JSON中的注意点介绍

在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数。 2. 使用Function对象来进行返回解析。 使用eval函数来解析,并且使用jquery的each方法来遍历 用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形

2017-04-21 16:39:53 373 2

原创 第五届蓝桥杯Java语言_单位分数

形如:1/a 的分数称为单位分数。可以把1分解为若干个互不相同的单位分数之和。例如:1 = 1/2 + 1/3 + 1/9 + 1/181 = 1/2 + 1/3 + 1/10 + 1/151 = 1/3 + 1/5 + 1/7 + 1/9 + 1/11 + 1/15 + 1/35 + 1/45 + 1/231等等,类似这样的分解无穷无尽。我们增加一个约束条件:

2017-03-27 21:43:37 1916 1

原创 第五届蓝桥杯Java语言_调和级数

1/1 + 1/2 + 1/3 + 1/4 + ... 在数学上称为调和级数。它是发散的,也就是说,只要加上足够多的项,就可以得到任意大的数字。但是,它发散的很慢:前1项和达到 1.0前4项和才超过 2.0前83项的和才超过 5.0那么,请你计算一下,要加多少项,才能使得和达到或超过 15.0 呢?请填写这个整数。注意:只需要填写一个整数,不

2017-03-25 22:01:26 406

原创 第五届蓝桥杯Java语言_位平方和

把一个整数的每个数位都平方后求和,又得到一个整数,我们称这个整数为:位平方和。对新得到的整数仍然可以继续这一运算过程。比如,给定整数为4,则一系列的运算结果为:16,37,58,89,....本题的要求是,已知一个整数x,求第n步的运算结果。数据格式要求:输入,两个整数x n,中间以空格分开。表示求x的第n步位平方和。其中,x,n都大于0,且小于10

2017-03-25 21:18:04 1382

原创 第五届蓝桥杯Java语言_小题答案

1、 a[i][j]=a[i-1][j-1]+a[i-1][j]2、18354213、934、1572836

2017-03-25 21:03:11 511

原创 第六届蓝桥杯省赛Java语言_打印大X

打印大X小明希望用星号拼凑,打印出一个大X,他要求能够控制笔画的宽度和整个字的高度。为了便于比对空格,所有的空白位置都以句点符来代替。要求输入两个整数m n,表示笔的宽度,X的高度。用空格分开(0要求输出一个大X例如,用户输入:3 9程序应该输出:***.....***.***...***...***.***.....*****.....

2017-03-04 21:57:22 827 2

原创 第六届蓝桥杯省赛Java语言_移动距离

移动距离X星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为1,2,3...当排满一行时,从下一行相邻的楼往反方向排号。比如:当小区排号宽度为6时,开始情形如下:1 2 3 4 5 612 11 10 9 8 713 14 15 .....我们的问题是:已知了两个楼号m和n,需要求出它们之间的最短移动距离(不能斜线方向移动)

2017-03-04 21:55:26 878 2

分享Maven归纳

这是我自己总结的Maven常用功能、常见问题及解决办法。

2017-11-07

分享SpringMVC归纳

这是我自己总结的SpringMVC常用功能、常见问题及解决办法。

2017-11-07

分享Java知识库

这是我自己总结的Java常用功能,其中包括代码和详解。

2017-11-07

空空如也

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

TA关注的人

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