自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (5)
  • 问答 (1)
  • 收藏
  • 关注

原创 实现一个可配置的TCP设备模拟器,支持交互和解析配置

每种TCP协议基本都有基础的外层格式,如固定头,数据长度,数据域,校验帧等信息,所以这里想对协议的外层先做定义,让后对动态部分的报文再做二次定义,这样就组成一个完整的报文了。以下是协议定义的截图。

2024-11-26 17:54:36 934 1

原创 Zookeeper 理论基础

ZAB ,Zookeeper Atomic Broadcast,zk 原子消息广播协议,是专为 ZooKeeper 设计的一种支持崩溃恢复的原子广播协议,在 Zookeeper 中,主要依赖 ZAB 协议来实现分布式数据一致性。Zookeeper 使用一个单一主进程来接收并处理客户端的所有事务请求,即写请求。当服务器数据的状态发生变更后,集群采用 ZAB 原子广播协议,以事务提案 Proposal 的形式广播到所有的副本进程上。

2024-10-28 19:19:41 1576

原创 推荐一款好用的redis管理工具TinyRDM

【现代化界面】:符合现代审美的简洁界面,提供浅色/深色主题。支持的功能还是比较丰富的,支持集群和哨兵模式连接这里可以看到redis的基本情况,包括运行时间,客户端数量,还有内存的使用情况用了一段时间感觉还行。

2024-10-28 17:34:31 587

原创 Vertx实现和spring的application.yml自动配置加载

在用vertx写项目的时候,由于需要不同的环境加载不同的配置文件,这里就需要和spring架构的application.yml配置文件一样,可以根据环境变量加载不同的配置。

2024-10-23 23:34:53 467

转载 深入理解 Netty FastThreadLocal

最近在学习Netty相关的知识,在看到Netty FastThreadLocal章节中,回想起一起线上诡异问题。问题描述:外销业务获取用户信息判断是否支持https场景下,获取的用户信息有时候竟然是错乱的。问题分析:使用ThreadLocal保存用户信息时,未能及时进行remove()操作,而Tomcat工作线程是基于线程池的,会出现线程重用情况,所以获取的用户信息可能是之前线程遗留下来的。问题修复。

2024-10-23 23:06:05 78

原创 Vertx实现一个通用的MqttServer

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅范式的“轻量级”消息协议,由 IBM 发布。IoT 设备要运作,就必须连接到互联网,设备才能相互协作,以及与后端服务协同工作。而互联网的基础网络协议是 TCP/IP,MQTT 协议是基于 TCP/IP 协议栈而构建的,因此它已经慢慢的已经成为了 IoT 通讯的标准。优点:代码量少,开销低,带宽占用小,即时通讯协议。

2024-10-23 16:55:48 1481 13

转载 Netty 线程模型架构 & 工作原理 解读

I/O 模型简单的理解:就是 用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能。Java共支持3种网络编程模型/IO模式:BIO、NIO、AIO。Java BIO:同步并阻塞(传统阻塞型),服务器实现模式为 一个连接对应一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销。Java NIO同步非阻塞,服务器实现模式为一个线程处理多个请求(连接)

2024-09-01 17:07:18 547

转载 基于PostgreSQL的时序数据库TimescaleDB的基本用法和概念

TimescaleDB是一个在PostgreSQL之上构建的时序数据库,它利用了关系型数据库的成熟性和灵活性,并针对时序数据进行了优化。TimescaleDB通过使用分区表(hypertable)和连续聚集表(continuous aggregate)来处理时序数据,使得数据的存储和查询更加高效。

2024-05-15 16:26:33 857 1

原创 使用Redis发布订阅功能实现动态注册监听及异步获取结果

我们系统夸服务去调用某些请求,但被调用的服务又没办法及时响应,而需要异步返回结果的时候,我们使用同步阻塞的话比较浪费资源拉低系统的吞吐能力,对于一些耗时的操作,因为长时间的等待还容易导致请求超时处理失败(实际可能已经处理成功了)。我们系统夸服务去调用某些请求,但被调用的服务又没办法及时响应,而需要异步返回结果的时候,我们使用同步阻塞的话比较浪费资源拉低系统的吞吐能力,对于一些耗时的操作,因为长时间的等待还容易导致请求超时处理失败(实际可能已经处理成功了)。

2023-10-23 23:23:21 808

原创 基于Vertx实现可配置及可扩展的IOT服务

相信写过IOT服务的伙伴应该知道,面对各种千奇百怪的通信协议,特别是16进制报文的协议,有些协议看的确实有点让人头疼。但这些协议中也有很多共性,不必针对每过协议都把一些业务无关的代码再撸一遍。 搭建这个项目主要是针对常见的TCP连接为基础的设备通信协议做一些抽象及规范化处理,减低一些开发的成本,目标是实现一个可配置的,便于扩展各种协议的框架。

2023-10-20 15:47:43 1041 4

转载 Java并发编程——LockSupport的park和unpark

熟悉 Java 并发包的人一定对 LockSupport 的 park/unpark 方法不会感到陌生,它是 Lock(AQS)的基石,给 Lock(AQS)提供了挂起/恢复当前线程的能力。

2023-08-08 10:19:26 1345

转载 java中NIO介绍及使用

NIO(New lO)也有人称之为java non-blocking lO是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java lO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。NIO可以理解为非阻塞IO。

2023-07-24 16:02:05 561

原创 Netty中PileLine类介绍

Netty中的核心类:PileLine

2023-06-15 18:05:44 717

原创 Netty中ServerBootstrap类介绍

Netty中的核心类之一:ServerBootstrap类。

2023-06-09 14:21:26 2905 1

原创 Netty中NioEventLoop介绍

Netty中的核心类之一的:NioEventLoop类

2023-06-01 14:33:27 1094 2

原创 Netty中NioEventLoopGroup介绍

Netty中的核心类之一的:NioEventLoopGroup

2023-05-14 16:18:16 2198

原创 JAVA Future类详解及Thread线程是如何运行Future类的

Future(java.util.concurrent Interface Future)表示异步计算的结果。Future接口提供了检查计算是否完成、检查计算是否被取消、等待计算完成并获取计算结果等方法。在并发编程中,我们经常用到非阻塞的模型,但继承thread类和实现runnable接口,都无法保证获取到之前的执行结果。而通过实现Callback接口,并用Future可以来接收多线程的执行结果。

2023-04-25 22:28:56 2643

原创 Linux中关闭selinux

Linux中关闭selinux

2023-04-24 11:37:32 12089

原创 Linux 临时关闭或禁用交换分区

Linux 临时关闭或禁用交换分区

2023-04-20 11:22:13 1902

原创 VirtualBox为虚拟机设置固定IP且可通过外网访问

VirtualBox为虚拟机设置固定IP且可通过外网访问

2022-09-20 18:05:05 2863

转载 Java 阻塞队列--BlockingQueue

在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。

2022-03-09 16:54:24 970

原创 Redis 是如何实现高性能的IO多路复用

Redis 是跑在单线程中的,所有的操作都是按照顺序线性执行的,但是由于读写操作等待用户输入或输出都是阻塞的,所以 I/O 操作在一般情况下往往不能直接返回,这会导致某一文件的 I/O 阻塞导致整个进程无法对其 它客户提供服务,而 I/O 多路复用就是为了解决这个问题而出现的。

2022-03-08 18:36:11 1254

原创 Spring 创建Bean的几种方式

一、使用构造器实例化Bean这是最简单的方式,Spring IoC容器即能使用默认空构造器也能使用有参数构造器两种方式创建Bean。1.使用空构造器进行定义2.使用有参数构造器进行定义二、使用静态工厂方式实例化Bean使用这种方式除了指定必须的class属性,还要指定factory-method属性来指定实例化Bean的方法,而且使用静态工厂方法也允许指定方法参数。1.创建对象2.创建静态工厂3.配置文件4.测试输出三、使用实例工厂方法实例化.

2021-06-29 11:50:12 5923

原创 Window下配置开启seata服务

前置准备确保系统nacos服务已开启

2021-06-17 17:49:10 3074 2

转载 分布式事务的基本原理及常见的解决方案

分布式系统会把一个应用系统拆分为可独立部署的多个服务,因此需要服务与服务之间远程协作才能完成事务操作,这种分布式系统环境下由不同的服务之间通过网络远程协作完成事务称之为分布式事务

2021-06-01 14:11:32 441

原创 Java命令行启动设置JVM参数

使用Java命令启动应用的时候适当的配置你的参数能有效提高系统的性能。Xms:是指程序启动时初始内存大小(此值可以设置成与-Xmx相同,以避免每次GC完成后 JVM 内存重新分配)。 Xmx:指程序运行时最大可用内存大小,程序运行中内存大于这个值会 OutOfMemory。 Xmn:年轻代大小(整个JVM内存大小 = 年轻代 + 年老代 + 永久代)。 XX:NewRatio:年轻代与年老代的大小比例,-XX:NewRatio=3 设置为3,则年轻代与年老代所占比值为1:3。 XX:Surviv

2021-05-26 17:56:45 3413

原创 Spring Cloud Gateway统一拦截服务请求,避免绕过网关请求服务

网关作为整个系统的访问入口,我们希望外部请求系统服务都需要通过网关访问,禁止通过ip端口直接访问,特别是一些重要的内部服务(外部无法直接访问的服务)

2021-05-25 14:50:18 23461 19

原创 Spring Cloud(四)网关Gateway

Spring Cloud(三)Gateway

2021-05-20 11:03:24 218

原创 Spring Cloud(三)熔断器Hystrix

Spring Cloud 熔断器

2021-05-18 16:23:30 228 6

原创 Spring Cloud(二)Ribbon与Feign

Spring Cloud(二) Ribbon+Feign

2021-05-17 17:12:01 301 2

原创 Spring Cloud(一)注册中心Eureka

Spring cloud(一)注册中心

2021-05-17 15:53:53 180

转载 Redis 常见面试题目及知识点

简单聊一下Redis简单来说 Redis 就是一个使用 C 语言开发的数据库,不过与传统数据库不同的是 Redis 的数据是存在内存中的 ,也就是它是内存数据库,所以读写速度非常快,因此 Redis 被广泛应用于缓存方向。另外,Redis 除了做缓存之外,Redis 也经常用来做分布式锁,甚至是消息队列。Redis 提供了多种数据类型来支持不同的业务场景。Redis 还支持事务 、持久化、Lua 脚本、多种集群方案。分布式缓存常见的技术选型方案有哪些分布式缓存的话,使用的比较多的主要是

2021-05-13 17:58:33 222

原创 消息队列简介

消息队列(MQ)简介消息队列的模型是【生产发送--消息队列存储--消费者消费】,通过指定的topic可以对发送和消费消息,出于安全考虑,也可以在消费和生产消息的时候添加权限认证。以下是消息队列的模型消息队列的使用场景常见的消息队列常见消息队列的对比...

2021-05-08 16:22:23 501

原创 Mongodb基本概念

Mongodb基本概念及使用

2021-05-08 11:20:37 215

原创 Redis基本教程

Redis简介Redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。与传统数据库不同的是Redis 的数据是存在内存中的,所以读写速度非常快,另外他的数据可以持久化的保存在磁盘上,解决了服务重启后数据不丢失的问题。另外,redis 也经常用来做分布式锁。redis 提供了多种数据类型来支持不同的业务场景。除此之外,redis 支持事务 、持久化、LUA脚本、LRU驱动事件、多种集群方案。Redis数据结构Redis是一种高级的key:value

2021-04-23 17:52:09 315

原创 window 下Redis的配置和操作

windows下redis安装1.redis下载地址:https://github.com/tporadowski/redis/releases2.解压后的文件结构如下:3.修改配置文件redis.window.conf设置maxmemory(最大内存)大小设置redis密码 ,默认无密码修改默认端口设置日志输出路径4.启动redis: 命令行 redis-server.exe redis.windows.conf,如果不制定配置文件,那么默认..

2021-04-22 15:02:28 1004

原创 spring cloud版本整理

SpringCloud版本Spring Cloud Spring Boot Angel版本 Spring Boot 1.2.x Brixton版本 Spring Boot 1.3.x,也兼容Spring Boot 1.4.x Camden版本 Spring Boot 1.4.x,也兼容Spring Boot 1.5.x Dalston版本、Edgware版本 Spring Boot 1.5.x,不兼容Spring Boot 2.0.x Finchley.

2021-04-16 15:01:09 276

原创 Spring Boot事务控制

业务开发操作数据库过程中,我们基本都会涉及事务的操作,事务可以保证业务逻辑的完整性。所有的数据访问技术都有事务处理机制,这些技术提供了API用来开启事务、提交事务来完成数据操作,或者在发生错误的时候回滚数据。而Spring的事务机制是用统一的机制来处理不同数据访问技术的事务处理。Spring的事务机制提供了一个PlatformTransactionManager接口,不同的数据访问技术的事务使用不同的接口实现。

2021-04-14 16:34:06 1928

原创 mybatis知识点

mybatis框架及知识点

2021-04-13 18:36:15 153

原创 MySQL索引和优化

MySQL索引和优化知识点

2021-04-12 21:55:16 111

ocpp1.6中文文档

ocpp1.6中文文档

2024-10-23

物联网COAP协议demo-Java版本

由于物联网中的很多设备都是资源受限型的,即只有少量的内存空间和有限的计算能力,所以传统的HTTP协议应用在物联网上就显得过于庞大而不适用。 IETF的CoRE工作组提出了一种基于REST架构的CoAP协议。CoAP是6LowPAN协议栈中的应用层协议。 此应用是java版本的coap协议的基本使用

2023-06-05

一个完整的spring boot项目

一个完整的spring boot项目,轻量,扩展性好,带你快速了解spring boot及mvc模式

2021-03-23

java 多线程生产者消费者模型demo

java 多线程生产者消费者模型demo

2021-03-31

bootstarp轻量自适应后台模版.rar

bootstarp轻量自适应后台模版,直接可以使用,更改方便,嵌入代码不会影响已有样式,很轻量方便修改

2019-06-09

thinkphp入门demo.rar

thinkphp入门demo,了解thinkphp最入门的demo,有助于了解mvc模式

2019-06-09

AdminLab后台管理响应式模版.rar

AdminLab后台管理响应式模版(完整版) 包含完整的后台常用逻辑:列表、添加、删除、数据统计、日历管理等功能

2020-03-04

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

TA关注的人

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