- 博客(132)
- 资源 (2)
- 收藏
- 关注

原创 JAVA编码规范
命名风格 1. 代码命名不能以下划线或者美元符号开头或者结尾 2. 代码命名不能以中文拼音或者中文拼音与英文混合方式 3. 类名使用UpperCamCamelCase风格,但DO、PO、DTO、VO、BO等除外 4. 方法名、参数名、变量名统一使用lowerCamelCase,必须遵守驼峰命名 5. 常量名全部大写,单词间用下划线隔开 6. 抽象类必须以Abstract或者Base开头,异常类必须以Exception结尾,测试 类以测试的类的名称开头Test结尾 7
2021-09-21 15:15:16
3572

原创 全面了解23种设计模式,细说那些被人所知的设计思想。(一周彻底撸完被23种设计模式疯狂折磨)
一,23种设计模式分为三大类别模式 :1,创建型模式:它的主要特点是“将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节,对象的创建由相关的工厂来完成。就像我们去商场购买商品时,不需要知道商品是怎么生产出来一样,因为它们由专门的厂商生产。2,结构型模式:它的主要特点是 如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原
2020-06-27 14:33:39
2230
1
原创 windows 下,将bat程序,注册为系统服务;
前言:当前用户环境,在多数情况下,都在使用`windows`服务器,而我们部署的单机程序都是`jar`包,以`bat`命令启动。然而,往往客户的服务器经常攻防演练或者停电,重启更新这些操作,导致我们部署的程序没办法自启动,会常常需要我们手动去启动这些服务,那么有什么工具能将`bat`程序,注册为系统服务,跟随系统启动,我们程序也启动呢?
2025-03-25 19:55:44
348
原创 kafka单机部署实战
若已经格式化过后想修改,则先要删除这个目录/tmp/kraft-combined-logs(也可能是你自己修改后的数据目录)为consumer和producer创建登录验证文件,文件内容如下(如果是程序访问,如springboot访问,可以不配置)目录:/mnt/kafka/kafka_2.13-3.7.2/config。,文件目录位于:/kafka_2.13-3.7.2/config/1,如果需要公网访问,需要配置域名,kafka不接受ip访问。kafka启动文件,引入校验文件目录。
2025-03-06 19:46:29
1185
原创 《最佳实践之》GPS NMEA-0183 协议,全协议解析
NMEA-0183 协议 GPGSA、GPGSV、GPGGA、GPRMC、GPVTG,全协议解析解决方案
2024-04-08 20:59:43
1724
原创 《最佳实践之》GPS NMEA-0183 协议, 解析 $GPRMC 协议
NMEA-0183 协议是目前 GPS 接收机上使用最广泛的协议,大多数常见的 GPS 接收机、GPS 数据处理软件、导航软件都遵守或者至少兼容这个协议。在这些数据中,包含了位置、速度、时间等信息,通过解析这数据,就可以实时获取物体的位置信息,或者实现时间同步。如果字段 4 的值等于 S,则字段 3 的值等于 -ddmm.mmmmmm。如果字段 6 的值等于 W,则字段 5 的值等于 -ddmm.mmmmmm。如果字段 4 的值等于 N,则字段 3 的值等于 ddmm.mmmmmm。
2024-04-08 17:13:45
4710
4
原创 Linux两个服务器,数据同步方案实践
完全备份:每次备份将备份源所有文件或目录备份到目的。差量备份:备份上次完全备份以后有变化的数据。增量备份:备份上次完全备份以后有变化的数据。
2024-04-01 17:51:34
2715
原创 【NanoHTTPD】Android,使用NanoHTTPD搭建服务器,接受Http请求,最佳实践
安卓app,作为服务器,接受Http,get post 请求推送数据,NanoHTTPD是一个免费、轻量级的(只有一个Java文件) HTTP服务器,可以很好地嵌入到Java程序中。支持 GET, POST, PUT, HEAD 和 DELETE 请求,支持文件上传,占用内存很小。
2023-06-18 19:39:57
8377
6
原创 Springboot 结合 MQTT、Redis ,对接硬件以及做消息分发,最佳实践
Springboot 结合 mqtt、redis对接硬件以及消息分发,最佳实践
2022-11-16 20:29:58
4100
3
原创 ZLMediaKit+wvp-GB28181-pro,搭建28181协议视频平台
实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求。基于GB28181-2016标准实现的开箱即用的网络视频平台,负责实现核心信令与设备管理后台部分,支持NAT穿透,支持海康、大华、宇视等品牌的IPC、NVR接入。支持国标级联,支持将不带国标功能的摄像机/直播流/直播推流转发到其他国标平台。
2022-10-08 23:08:59
19864
45
原创 Spring 结合策略模式,如何优雅的实践(普通注入,Map注入,自定义注解注入)
Spring 结合策略模式,优雅的实践(普通注入,Map注入,自定义注解注入)
2022-09-23 00:02:46
4198
原创 MQTT,EMQX认识,安装,部署
`EMQX` ,大规模分布式物联网 `MQTT` 消息服务器,高效可靠连接海量物联网设备,实时处理分发消息与事件流数据,助力构建关键业务的物联网平台与应用。是一款大规模可弹性伸缩的云原生分布式物联网 `MQTT `消息服务器
2022-09-07 23:24:24
8029
原创 Springboot结合Netty对接硬件,实现主动发送报文和接受硬件报文(ModbusRTU或者TCP以及DTU)
Springboot结合Netty对接硬件,实现主动发送报文和接受硬件报文(ModbusRTU或者TCP以及DTU)
2022-08-30 22:26:00
20310
85
原创 Netty,认识和深入(四),Netty线程模型
不同的线程模式,对程序的性能有很大影响,Netty线程模式和其他的线程模式进行对比有区别,探秘Netty模型
2022-07-11 21:42:17
620
原创 Mysql,使用Mysqlbinlog,解析binlog日志
`Mysql`,使用`Mysqlbinlog` 解析 `binlog`日志前言:很多时候,当我们的业务数据产生了不正常的变化,但却无法得知这类操作是在哪里进行,并且如何进行,单单从程序当面排查很费力。那么就需要通过分析数据库日志来得到历史执行 `SQL`,根据 `SQL` 执行逻辑来确认代码位置,进而确认是否是 BUG,亦或是误操作等。......
2022-07-10 02:14:40
7781
5
原创 windows10、linux,后台启动Jar包打印日志(保姆级别)
windows10、linux,后台启动Jar包打印日志前言需要知道什么是文件,百度百科地址:什么是bat:https://baike.baidu.com/item/bat/365230?fr=aladdin需要什么是脚本,百度百科地址:什么是shell脚本:https://baike.baidu.com/item/Shell%E8%84%9A%E6%9C%AC/572265?fr=aladdin...
2022-07-09 10:45:54
10843
3
原创 Git,命令大全
,命令大全创建文件夹,与git 上仓库同名打开文件夹初始化git创建说明文件将说明文件暂存缓存提交文件推送文件到master分支远程仓库创建SSH Key关联将本地内容推送到远程仓库(第一次)将本地内容推送到远程仓库(之后)删除远程仓库(解绑)克隆远程仓库克隆之后使用和查看查看远程库的信息查看远程库的详细信息多人协作创建并切换到分支//创建并切换到分支dev,同上切换分支创建并
2022-07-01 23:07:45
272
原创 alibaba Canal 增量订阅 & 消费组件,了解,安装,部署实践
下载部署版本 :canal.deployer-1.1.6.tar.gzissues地址:https://github.com/alibaba/canal/issues/4245注意:1.1.6 版本安装包有问题,需要下载源码,自己重新编译版本下载部署版本 : canal.deployer-1.1.4.tar.gz直接解压即可,配置 canal见:https://github.com/alibaba/canal/issues/3150修改方法,打开 startup.bat 文件 19 行修改如下
2022-06-27 20:46:42
1418
1
原创 Netty,认识和深入(三),JAVA原生NIO认识
NIO基本介绍JAVA NIO:同步非阻塞,服务器实现模式为一个线程处理多个请求(连接),即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求就进行处理;JAVA NIO 全称 JAVA non-blocking IO,是指JDK 提供的新的API。从JDK1.4开始,JAVA提供了一系列改进的输入/输出的新特性,被统称为NIO(即 New IO),是同步阻塞的NIO 相关类都被放在 java.nio 包及子包下,并且对原java.io 包中的很多类进行改写。NIO 有
2022-03-14 22:47:13
6922
原创 Netty,认识和深入(二),JAVA原生BIO认识
BIOJAVA BIO(blocking I/O):同步并阻塞(传统阻塞型),服务器实现模型为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,可以通过线程池机制完善(实现多个客户连接服务器)应用场景BIO 方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,但程序简单易理解。BIO工作原理大致流程图如下:服务器启动一个ServreSocket;客
2022-01-28 02:05:05
1393
原创 Netty,认识和深入(一)
Netty,认识和深入Netty 的介绍Netty,百度百科地址:点击跳转Netty,官网地址地址:点击跳转Netty, 是一款异步的事件驱动的网络应用程序框架,支持快速地开发可维护的高性能的面向协议的服务器和客户端。Netty ,是由JBOSS提供的一个JAVA开源框架,现为GIthub 项目;Netty,是一个异步的,基于事件驱动的网络应用框架,用以快速开发高性能,高可靠性的网络IO程序;Netty ,主要针对在TCP协议下,面向Clients 端的高并发应用,或者Peer-to-Pee
2022-01-18 21:11:10
733
原创 ElasticSearch-head,数据浏览不能显示数据解决方案
ElasticSearch-head,数据浏览不能显示数据解决方案问题复现点击索引,显示空白。查看问题报错原因:{“error” : “Content-Type header [application/x-www-form-urlencoded] is not supported”,“status” : 406}问题原因elasticsearch 6以上 增加了请求头严格校验的原因解决办法liunx环境:##可以使用,编辑修改 `vim vendor.js`
2022-01-04 15:03:46
2831
1
原创 Linux,下载安装minio
标题在线安装#下载文件wget http://dl.minio.org.cn/server/minio/release/linux-amd64/minio#将二进制文件,改变为可执行文件chmod +x minio# 修改系统配置vim /etc/profile#最后一行输入,修改默认密码export MINIO_ROOT_USER= minioexport MINIO_ROOT_PASSWORD= minio@123# 设置立即生效source /etc/profile
2021-12-29 19:17:23
1662
1
原创 idea,使用Remote 连接tomcat,远程DEBUG模式调试
idea,使用Remote 连接tomcat,远程DEBUG模式调试前言:为什么要使用远程DEBUG模式调试?解决 在我本地是好的啊 这个世界性难题~测试环境碰到问题,直接连上Debug,不用再测试本地,再查看测试环境日志遇到一些诡异的问题,日志是看不出端倪的调试一些只能在测试环境执行的流程,如:调用微信 / 支付宝付款一些客户的环境是有非常严格的安全限制,如外网访问 ,端口防火墙限制,这使得我们常常不能复现问题,来解决问题!相应环境服务器是:Linux,jdk1.8服务容器是: T
2021-12-28 21:24:39
5417
3
原创 ThreadLocal,认识和深入
ThreadLocal 认识和深入ThreadLocal类介绍多线程访问同一个共享变量的时候容易出现并发问题,特别是多个线程对一个变量进行写入的时候,为了保证线程安全,一般使用者在访问共享变量的时候需要进行额外的同步措施才能保证线程安全性。ThreadLocal是除了加锁这种同步方式之外的一种保证一种规避多线程访问出现线程不安全的方法,当我们在创建一个变量后,如果每个线程对其进行访问的时候访问的都是线程自己的变量这样就不会存在线程不安全问题。ThreadLocal 是 JDK 包提供的,它提供线程本地
2021-12-01 01:18:07
3411
原创 解决:MySQL启动错误,本地计算上的MySQL服务启动后停止~
解决问题:如下错误第一步:删除服务打开以管理员身份运行CMD,进入MySQL安装目录执行命令#删除已经注册的服务mysqld --remove mysql然后在MySQL的根目录下, 清空data目录,如果没有data目录,创建一个新的data目录第二步,重新配置服务,注册服务执行命令#配置服务mysqld --initialize-insecure --user=MySQL#配置 mysql.ini文件mysqld --install MySQL8 --defaults
2021-11-07 23:47:09
585
1
原创 MySQL,一些认识
MySQL 的逻辑架构MySQL逻辑架构图主要分三层:(1)第一层负责连接处理,授权认证,安全等等(2)第二层负责编译并优化SQL(3)第三层是存储引擎。一条SQL查询语句执行过程mysql分为server层与存储引擎层,server层包含连接器、分析器、优化器、执行器。首先由连接器进行身份验证,权限管理若开启了缓存,会检查缓存是否有该sql对应结果(缓存存储形式key-vlaue,key是执行的sql,value是对应的值)若开启缓存又有该sql的映射,将结果直接返回;分析
2021-11-04 01:51:35
530
原创 Mysql高性能优化,一些建议
MySQL性能优化建议SQL语句优化对查询进行优化,应尽量避免全部扫描,首先考虑在where 及 order by 涉及 的列 上建立索引;应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。应尽量避免在 where 子句中使用!=或<>操作符, MySQL只有对以下操作符才使用索引:<,<=,=,>,>=,BETWEEN,IN,以
2021-10-26 20:01:49
270
原创 使用logrotate,对catalina.out日志切片
使用logrotate,对catalina.out日志切片什么是logrotatelogrotate 程序是一个日志文件管理工具。用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到“转储”作用。可以节省磁盘空间。logrotate文件位置该配置文件位于,/etc/logrotate.conf,/etc/logrotate.d/。[root@localhost etc]# cd /etc/[root@localhost etc]# lsadjtime
2021-08-31 00:08:19
617
原创 JAVA8特性,Lambda表达式认识
Lambda表达式一、Lambda表达式简介什么是Lambda?Lambda是JAVA 8添加的新特性,说白了,Lambda是一个匿名函数为什么使用Lambda使用Lambda表达式可以对一个接口的方法进行非常简洁的实现Lambda对接口的要求虽然可以使用Lambda表达式对某些接口进行简单的实现,但是并不是所有的接口都可以用Lambda表达式来实现,要求接口中定义的必须要实现的抽象方法只能是一个在JAVA8中 ,对接口加了一个新特性:default可以使用default对接口方法进行修饰
2021-08-25 01:31:21
254
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人