- 博客(19)
- 问答 (4)
- 收藏
- 关注
原创 【Netty实现udp协议通讯】
使用Netty去实现udp通讯,在netty中支持udp的广播,组播,单播三中模式,本文主要是和硬件进行udp通讯,需要实现一发一收机制,所以使用单播模式进行通讯。
2023-06-05 10:17:31 2759 1
原创 【Netty客户端-实现模拟硬件设备在线】
通过netty客户端来简单模拟硬件设备心跳,要想实现几万甚至十几万设备的模拟,那么就会开启相对应的线程数,对测试的机器有一定的硬件条件。而且无法生成像jmeter一样的聚合报告。且需要人工查看和计算出服务器压测指标。相比第一种方法,使用jmeter来进行压测要简单很多,但使用jmeter来压测socket无法维持心跳,jmeter线程只能不断循环发送这种方式来维持。
2022-11-24 10:24:05 2312 3
原创 【硬件传输数据被Netty分包】
该操作应该是Netty节省内存开销设计的机制,非常有参考价值。如果之前读取完全填满了分配的缓冲区,它会逐渐增加预期的可读字节数。如果读操作不能连续两次填充分配的缓冲区的一定数量,则会逐渐减少预期的可读字节数。Netty分配的缓冲区大小不是固定的。虽然Channel被创建时回去指定的缓冲区大小默认为 1024。为什么说被Netty拆包了,因为TCP报文段的最大长度为65495字节,字节肯定没有超过这个数。硬件上报数据到系统时,数据包大小不是固定,有时对于超长的数据包,被Netty进行拆包发送了。
2022-11-05 11:18:49 702
原创 Docker-compose 编排容器
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
2022-10-21 13:49:05 355
原创 【Docker & Docker-compose 离线一键安装部署】
docker安装包下载地址:https://download.docker.com/linux/static/stable/x86_64/docker-compose 安装包下载地址:https://github.com/docker/compose/releases。说明:docker的运行基于linux内核。(仅支持linux系统上运行)下载docker 和 docker-compose 离线安装包。graph : docker文件存在地址。2. 将准备文件上传到linux服务器。
2022-10-21 13:25:30 3099
原创 java实现读取文件并随机指定读取位置
在访问文件的区别中,RandomAccessFile 使用随机访问的方式,而FileInputStream及FileOutputStream使用的是流式访问的方式。RandomAccessFile是Java 输入/输出流体系中功能最丰富的文件内容访问类,它提供了众多的方法来访问文件内容,它既可以读取文件内容,也可以向文件输出数据。与普通的输入/输出流不同的是,RandomAccessFile支持"随机访问"的方式,程序可以直接跳转到文件的任意地方来读写数据。如果到达输入流的末尾,则可能会跳过更少的字节。
2022-09-06 10:14:43 2516
原创 【实现netty服务同时监听多个端口,处理多套协议】
netty一个提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。在上一篇文章中介绍了Netty怎么去实现和硬件双工通信:https://blog.csdn.net/GBK_8/article/details/123256716?spm=1001.2014.3001.5502端口配置类2. 通道初始化3. 创建对应的解析器和编码器3.1 信息解析器3.2 信息编码器4. 编写服务端处理器5. Netty服务启动类结尾到此netty服务
2022-07-14 14:55:31 6987 2
原创 通过Netty实现主动向硬件设备发送控制命令
如果没有现成的硬件设备可以通过下载网络调试助手进行模拟。编写服务处理器编写解析器启动Netty服务在主线程启动后,调用start启动netty服务配置文件application.yml所需要依赖pom编写测试程序这里我采用了api方式调用测试主动发送是否成功上图显示启动成功连接设备后发送一条数据去绑定设备。一定要先发送信息绑定设备(这里是模拟心跳,重心跳数据中获取对应的设备mac,这样我们就可以通过设备mac去主动向设备发送信息了)。send后调试助手可以看到模拟的信息12
2022-03-03 16:29:36 4777 11
原创 <<redis 设计与实现>>
第一部分:数据结构与对象 (未完待补充)1.1 动态字符串(String)Reids 中默认字符串是一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型。SDS 源码中主要属性:free 记录buf中未使用空间。len 记录buf中长度 。buf 字节数组,用于保存字符串。SDS定义:遵循C字符串以空字符结尾的惯例,空字符额外分配1字节空间,并不会算到len里面。这样做的目的是为了更好的复用C里面的字符串函数。SDS杜绝缓存区溢出:在C中两个字
2021-11-15 16:34:35 1242
原创 GitLab的搭建及使用
GitLab的搭建及使用GitLab介绍:GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。安装方法是参考GitLab在GitHub上的Wiki页面。本人使用的是CentOS 7镜像。开源免费。如有需要可到http://centos.ustc.edu.cn/centos/ 自行下载。一:GitLab 安装(Linux)依赖:在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget,以下这些命令也会打
2021-07-12 15:11:59 1930
原创 java中线程池的参数介绍
在java中创建线程一共有4中方法:1. extend Thread2. implement Runnable -- 无返回值3. implement Callable -- 有返回值4. ExecutorService 线程池方式创建 如下: ExecutorService pool = Executors.newFixedThreadPool(3); 一共有四种。 1. newCachedThreadPool() 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活
2021-07-06 15:06:41 214
原创 java实现文件读写提取sql脚本
通过java流从日志中提取sql脚本前提IO流简单介绍java中的IO分类:前提忘记备份数据,和开启MySQL的binlog记录日志。导致一些数据误删没办法快速恢复,只能通过系统日志去查看这些操作从中捞出INSERT INTO xxxx(表名)语句。再去重新执行。由于每天都会有日志文件所以导致要筛选的日志过于庞大耗费时间超长,所以使用JAVA写了个小型脚本用于筛选所需信息。package com.mlzhang;import java.io.*;import java.util.ArrayLis
2021-07-01 15:02:58 1384
原创 SUSE服务下nginx安装流程
SUSE服务下nginx安装流程最近开始安装搭建Linux系统下的nginx,根据需要本次使用的是SUSE Linux第一次上手。对SUSE 的一些操作不太熟悉希望有大佬博友能够指出错误。非常感谢!!!从官网中http://nginx.org/en/download.html选择nginx1.20.1稳定版本。使用linux命令下载nginx压缩包wget http://nginx.org/download/nginx-1.20.1.tar.gz,安装到/usr/local/src/下(目录可
2021-06-22 14:37:30 1802
原创 Linux ping不通外网报 Destination Host Unreachable
1. Linux系统网络问题本人使用VMware CentOS7的linux系统。应为最近在学习Docker,需要在linux系统上安装操作Docker。这时问题就出来了,以前也使用过Linux 下载Redis,网络是正常的可以上网。这里就不在废话了。本人用的是NAT模式。第一步点击更改设置进入NAT设置第二步分别点击NAT设置和DHCP设置记下里面的网关和起始IP第三步记住自己的网关和ip后进入linux系统设置网络cd /etc/sysconfig/network-scri
2020-12-29 14:52:16 1700 1
原创 Git工作日常操作及知识
基本操作1.状态查看操作git status(查看工作区、暂存区状态)2.添加操作*git add [file name]将工作区的“新建/修改”,添加到暂存区。3.提交操作*git commit -m “commit message” [file name]将暂存区信息提交到本地库。4.查看历史git log [–oneline, --pretty=oneline]git reflog5.回退git reset --hard [索引值]git reset --hard HARD
2020-11-15 22:05:31 123
原创 Linux服务器wget:unable to resolve host address解决方法
wget: unable to resolve host address问题今天刚开始学习虚拟机安装linux系统镜像使用的是CentOS。在一切都准备好的时候,想要去安装Redis时碰到了wget: unable to resolve host address这个错误,经过长时间的百度最后发现是解决方法在默认安装centos7 时系统默认关闭互联网上网权限,所以需要手动的开启上网 ,将 /etc/sysconfig/network-scripts/ifcfg-enoxxx中将ONBOOT=
2020-08-02 16:21:55 6060
原创 关于java字符串转json,json转对象
关于java字符串转json,json转对象//通过parseObject(String)方法和toJavaObject(class<> clazz)String a ="{“key(id)”:"'value(哈哈啊年)"}"JSONObject jsStr = JSONObject.parseObject(a); //将字符串{“id”:哈哈啊年}//int jsID = Integer.parseInt(jsStr.getString(“id”));//获取id的值json对象转换
2020-07-08 16:36:54 393
空空如也
spring security
2021-12-27
spring security oauth2 token过期时间和实际有偏差
2021-12-10
钉钉浏览器访问自己的系统,怎么做到直接放行
2021-09-13
微服务项目中Htpp请求问题
2021-09-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人