![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 92
不愿意做鱼的小鲸鱼
路漫漫其修远兮,不以物喜,不以己悲,空杯心态,但使愿无违,,,
展开
-
Socket网络编程(六)——简易聊天室案例
聊天室数据传输设计* 必要条件:客户端、服务器* 必要约束:数据传输协议* 原理:服务器监听消息来源、客户端链接服务器并发送消息到服务器原创 2024-03-01 17:54:09 · 1019 阅读 · 0 评论 -
Socket网络编程(五)——TCP数据发送与接收并行
主要实现需求多线程收发并行TCP多线程收发协作TCP 服务端收发并行重构# TCP 服务端收发并行重构启动main方法重构原有的main逻辑如下:原创 2024-03-01 17:51:09 · 1230 阅读 · 0 评论 -
Socket网络编程(四)——点对点传输场景&方案
场景在一个局域网当中,不知道服务器的IP地址,仅仅知道服务器公共的UDP的端口,在这种情况下,想要实现TCP的连接。TCP是点对点的连接,所以需要知道TCP的连接IP地址和端口Port。原创 2024-03-01 17:46:14 · 964 阅读 · 0 评论 -
Socket网络编程(三)——TCP快速入门
TCP是什么英语:Transmission Control Protocol,缩写为 TCPTCP是传输控制协议;是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义与UDP一样完成第四层传输层所指定的功能与职责TCP的机制三次握手、四次挥手具有校验机制、可靠、数据传输稳定TCP能做什么聊天消息传输、推送单人语音、视频聊天等几乎UDP能做的都能做,但需要考虑复杂性、性能问题限制:无法进行广播,多播等操作。原创 2024-02-28 19:25:44 · 1407 阅读 · 0 评论 -
Socket网络编程(二)——UDP快速入门
UDP相关概念### UDP是什么* 英语:User Datagram Protocol,缩写为UDP* 一种用户数据报协议,又称用户数据报文协议* 是一个简单的面向数据报的传输层协议,正式规范为RFC 768* 用户数据协议、非连接协议(不可靠协议)原创 2024-02-28 19:07:36 · 978 阅读 · 0 评论 -
Socket网络编程(一)——网络通信入门&基本概念
在计算机领域中,网络是信息传输、接收、共享的虚拟平台在通过它把各个点、面、体的信息联系到一起,从而实现这些资源的共享网络是人类发展史来最重要的发明,提高了科技和人类社会的发展网络编程从大的方面说就是对信息的发送到接收通过操作相应Api调度计算机硬件资源,并利用传输管道(网络)行数据交换的过程简单来说是IP地址与端口的结合协议(RFC 793 )一种地址与端口的结合描述协议TCP/IP协议的相关API的总称;是网络Api的集合实现。原创 2024-02-28 18:53:41 · 1227 阅读 · 0 评论 -
java高级——动态代理
用一个明星的案例来解释动态代理的流程。假设现在有一个明星坤坤,它有唱歌和跳舞的本领,作为明星是要用唱歌和跳舞来赚钱的。但是每次做节目,唱歌的时候要准备话筒、收钱,再唱歌;跳舞的时候也要准备场地、收钱、再唱歌。明星觉得我擅长的做的事情是唱歌,和跳舞,但是每次唱歌和跳舞之前或者之后都要做一些繁琐的事情,有点烦。于是就找个一个经济公司,请了一个代理人,代理明星处理这些事情,如果有人想请明星演出,直接找代理人就可以了。原创 2024-02-27 02:28:26 · 642 阅读 · 0 评论 -
java高级——注解
注解就是Java注解是代码中的特殊标记,比如@Override、@Test等,作用是:让其他程序根据注解信息决定怎么执行该程序。就是自己定义注解。public @interface 注解名称{public 属性类型 属性名()default 默认值,比如:现在我们自定义一个MyTest注解,注意在idea新建的时候不是class了,而是Annotation//一定要带小括号 前面的public可以不写 默认自动帮你写了//default true 表示默认值为true,使用时可以不赋值。原创 2024-02-27 02:26:39 · 613 阅读 · 0 评论 -
java高级——反射
什么是反射反射技术,指的是加载类的字节码到内存,并以编程的方法解刨出类中的各个成分(成员变量、方法、构造器等)。反射的作用基本作用:可以得到一个类的全部成分然后操作。可以破坏封装性。最重要的用途是:适合做Java的框架,基本上,主流的框架都会基于反射设计出一些通用的功能。如:IDEA通过反射技术就可以获取到类中有哪些方法,并且把方法的名称以提示框的形式显示出来,所以你能看到这些提示了。反射技术怎么用获取类的信息、操作它们反射第一步:加载类,获取类的字节码:Class对象。原创 2024-02-27 02:23:29 · 975 阅读 · 0 评论 -
java——多线程基础
什么是线程?线程(Thread)是一个程序内部的一条执行流程。程序中如果只有一条执行流程,那这个程序就是单线程的程序什么是多线程?多线程是指从软硬件上实现的多条执行流程的技术(多条线程由CPU负责调度执行)如何在程序中创建出多条线程?Java是通过java.lang.Thread 类的对象来代表线程的。什么是线程安全问题?多个线程,同时操作同一个共享资源的时候,可能会出现业务安全问题。线程安全问题出现的原因?存在多个线程在同时执行同时访问一个共享资源存在修改该共享资源。原创 2024-02-26 09:41:05 · 867 阅读 · 0 评论 -
java——File类和字符集
File是java.io.包下的类,File类的对象,用于代表当前操作系统的文件(可以是文件、或文件夹)## File类的常用操作:获取文件信息(大小,文件名,修改时间)判断文件的类型创建文件/文件夹删除文件/文件夹遍及文件夹原创 2024-02-23 21:13:29 · 854 阅读 · 0 评论 -
消息通讯——MQTT WebHook&SpringBoot案例
EMQX WebHook 是由 emqx_web_hook (opens new window)插件提供的将EMQX中的钩子事件通知到某个Web服务的功能。WebHook 的内部实现是基于钩子,借助 Webhook 可以完成设备在线、上下线记录,订阅与消息存储、消息送达确认等诸多业务。它通过在钩子上的挂载回调函数,获取到 EMQX 中的各种事件,并转发至 emqx_web_hook 中配置的 Web 服务器。原创 2023-11-15 15:48:19 · 588 阅读 · 0 评论 -
java导入导出excel数据&图片合成工具
java服务端导入导出excel数据,和图片合成示例原创 2023-04-23 10:45:26 · 1159 阅读 · 0 评论 -
微信公众平台开发(五)——项目&公众号推广好友助力活动
该项目是一个微信积分活动推广的好友助力活动,当好友助力的助力值达到要求后就可以获得为粉丝准备的礼品。原创 2023-04-20 16:58:34 · 433 阅读 · 0 评论 -
微信公众平台开发(四)——微信网页授权:获取用户openid&用户基本信息
在开发中,如果web产品需要使用到微信的功能,比如微信授权登录、微信支付、微信投票等,我是开发的东东是一个web项目,然而如果需要接入微信的话,就需要使用道微信的微信网页开发相关的功能。原创 2023-03-24 10:59:53 · 9113 阅读 · 3 评论 -
微信公众平台开发(二)——自定义菜单、模板消息&微信素材
自定义菜单能够帮助公众号丰富界面,让用户更好更快地理解公众号的功能。开启自定义菜单后,公众号界面如图所示:自定义菜单接口可实现多种类型按钮,如下:一级菜单,二级菜单点击类型按钮跳转类型按钮拍照或者相册选择事件按钮。原创 2023-03-24 10:34:56 · 955 阅读 · 0 评论 -
微服务(十五)——Sentinel 高可用流量管理框架
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。原创 2022-08-29 11:02:27 · 791 阅读 · 0 评论 -
微服务(十四)——Nacos集群&mysql持久化
默认Nacos使用嵌入式数据库实现数据的存储。所以,如果启动多个默认配置下的Nacos节点,数据存储是存在一致性问题的。为了解决这个问题,Nacos采用了集中式存储的方式来支持集群化部署,目前只支持MySQL的存储。原创 2022-08-20 05:02:15 · 1591 阅读 · 0 评论 -
微服务(十三)——Nacos入门&Cloud Alibaba
Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。原创 2022-08-18 13:55:49 · 272 阅读 · 0 评论 -
Spring学习笔记(三十七)——Flyway 数据库版本控制
Flyway,是一个数据库版本管理工具。每次上线新功能的时候,都需要先更新数据库,然后再部署代码。当数据库的更新部分很多时,难免会忘掉,造成升级失败。另外一个问题的是,当你的服务是允许客户自己私有部署的时候,每个客户可能都在不同的数据库版本上,这时候对于不同的客户给与不同的升级机制就相当重要了。...原创 2022-08-15 15:01:36 · 2401 阅读 · 1 评论 -
微服务(十二)——Steam消息驱动&Sleuth链路监控
Spring Cloud Stream为一些供应商的消息中间件产品提供了个性化的自动化配置实现,引用了发布-订阅、消费组、分区的三个核心概念。原创 2022-08-12 13:39:15 · 329 阅读 · 0 评论 -
微服务(十一)——Config分布式配置中心&Bus消息总线
微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的.........原创 2022-08-05 15:55:47 · 333 阅读 · 0 评论 -
微服务(十)——GateWay新一代网关
Gateway是在Spring生态系统之上构建的API网关服务,基于Spring 5,Spring Boot 2和Project Reactor等技术。Gateway旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤器功能,例如:熔断、限流、重试等。.........原创 2022-08-02 11:49:24 · 570 阅读 · 0 评论 -
微服务(九)——Hystrix服务降级、熔断、限流(下)
熔断机制是应对雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务出错不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回错误的响应信息。**当检测到该节点微服务调用响应正常后,恢复调用链路**。......原创 2022-08-01 00:02:26 · 289 阅读 · 0 评论 -
微服务(八)——Hystrix服务降级、熔断、限流(上)
Hystrix是一个用于处理分布式系统的**延迟**和**容错**的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。...原创 2022-07-26 09:45:49 · 653 阅读 · 0 评论 -
微服务(七)——OpenFeign服务调用
Feign能干什么Feign旨在服务调用时,使编写Java Http客户端变得更容易。前面在使用Ribbon+RestTemplate时,利用RestTemplate对http请求的封装处理,形成了一套模版化的调用方法。但是在实际开发中,由于对服务依赖的调用可能不止一处,往往一个接口......原创 2022-07-07 09:50:04 · 1138 阅读 · 0 评论 -
微服务(六)——Ribbon负载均衡服务调用
Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们很容易使用Ribbon实现自定义的负载均衡算法。官网:Github -原创 2022-07-04 09:51:17 · 297 阅读 · 0 评论 -
Spring学习笔记(三十六)——SpringBoot 实现大文件分片上传、断点续传及秒传
小文件(图片、文档、视频)上传可以直接使用很多ui框架封装的上传组件,或者自己写一个input 上传,利用FormData 对象提交文件数据,后端使用spring提供的MultipartFile进行文件的接收,然后写入即可。但是对于比较大的文件,比如上传2G左右的文件(http上传),就需要将文件分片上传(file.slice()),否则中间http长时间连接可能会断掉。分片上传分片上传,就是将所要上传的文件,按照一定的大小,将整个文件分隔成多个数据块(我们称之为Part)来进行分别上传,上传完...原创 2022-07-01 17:14:39 · 5181 阅读 · 11 评论 -
微服务(五)——服务注册与发现:Zookeeper&Consul
zookeeper是一个分布式协调工具,可以实现注册中心功能关闭Linux服务器防火墙后,启动zookeeper服务器用到的Linux命令行:zookeeper服务器取代Eureka服务器,zk作为服务注册中心zookeeper相关可以参考:新建名为cloud-provider-payment8004的Maven工程。POMYML主启动类Controller6.启动8004注册进zookeeper(要先启动zoo......原创 2022-06-28 09:45:19 · 217 阅读 · 0 评论 -
微服务(四)——zookeeper入门&api实践
Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的 Apache 项目。Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。一言蔽之:ZooKeeper = 文件系统 + 通知机制ZooKeeper数据模型...原创 2022-06-27 09:38:06 · 503 阅读 · 0 评论 -
微服务(三)——Eureka服务注册与发现&Eureka集群
Spring Cloud封装了Netflix 公司开发的Eureka模块来实现服务治理在传统的RPC远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。Eureka采用了CS的设计架构,Eureka Sever作为服务注册功能的服务器,它是服务注册中心。而系统中的其他微服务,使用Eureka的客户端连接到 Eureka Server并维持心跳连接。这样系统的维护人员就可以通过Eurek原创 2022-06-24 11:33:11 · 362 阅读 · 0 评论 -
微服务(二)——SpringCloud入门&项目搭建
可以阅读以前做的笔记:https://qkongtao.cn/?p=549SpringCloud:分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体,俗称微服务全家桶Spring Cloud官方文档:https://cloud.spring.io/spring-cloud-static/Hoxton.SR1/reference/htmlsingle/Spring Cloud中文文档:https://www.bookstack.cn/read/spring-cloud-docs/docs-i原创 2022-06-24 10:51:11 · 632 阅读 · 0 评论 -
Spring学习笔记(三十五)——小技巧:配置全局跨域、全局⽇期格式化、读取本地json
目录SpringBoot 设置全局跨域SpringBoot 读取本地jsonSpringBoot全局⽇期格式化SpringBoot 设置全局跨域编写一个config:GlobalCorsConfig.javapackage cn.kt.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.sp原创 2022-05-12 17:43:25 · 255 阅读 · 0 评论 -
RabbitMQ学习笔记(三)——RabbitMQ 常用高级特性
目录RabbitMQ 常用高级特性如何保证消息的可靠性1. 发送端确认机制什么是发送端确认机制三种确认机制2. 消息返回机制消息返回机制的原理消息返回的开启方法3. 消费端确认机制消费端ACK类型手动ACK类型重回队列4. 消费端限流机制消费端限流原因RabbitMQ - QoSQoS原理消费端限流机制参数设置5. 消息过期机制RabbitMQ的过期时间(TTL)如何找到适合自己的TTL?6. 死信队列什么是死信队列怎样变成死信死信队列设置方法当前项目的不足之处分析实际开发中经验及小结经验小结Rabbi.原创 2022-04-21 00:53:26 · 991 阅读 · 0 评论 -
RabbitMQ学习笔记(二)——RabbitMQ快速上手
RabbitMQ快速上手的学习案例使用一个高可用外卖系统的demo。目录高可用外卖系统高可用外卖系统需求分析架构设计什么是微服务架构如何拆分微服务根据业务能力进行微服务拆分合理的交换机和队列设置业务流程时序图接口需求微服务的数据库设计原则原生RabbitMQ快速上手步骤RabbitMQ使用总结使用原生RabbitMQ项目中的不足之处消息真的发出去了吗?消息真被路由了吗?消费端处理的过来吗?消费端处理异常怎么办?队列爆满怎么办?如何转移过期消息?不足之处总结实际开发中经验及小结源代码:高可用外卖系统高原创 2022-04-21 00:50:55 · 2535 阅读 · 0 评论 -
js和java日期的常用相关操作
目录js日期的相关操作1. 时间戳时间格式化2. 格式化日期和反格式化日期3. 计算两个日期之间的天数4. 计算日期加若干(年月日、时分秒等)后日期Java日期的相关操作1. 指定日期加上天数后的日期2. 字符串的日期格式的计算js日期的相关操作1. 时间戳时间格式化代码如下:// 时间戳时间格式化function timestampToTime(timestamp) { var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为原创 2022-02-22 17:31:26 · 177 阅读 · 0 评论 -
Springboot&websocket实现IP数据实时统计
目录需求分析实现策略后台数据策略根据IP获取位置信息的接口遇到的问题websocket无法直接获取建立连接者的ipwebsocket无法注入对象iP详细信息和ua的获取并解析websocket压测实现效果源码下载最近想给自己的博客网站实现一个自定义的数据后台系统,实现对外提供api数据接口,和监控站点的访问数据,并且进行数据的实时可视化出来。这可能是偶然看到一个ip的精准定位的页面引起的我的一点兴趣,通过ip获取获取信号的经纬度,来达到一个实时定位的功能。要实现这些并不难,也刚好可以应用最近学的一些东西原创 2022-01-10 16:48:14 · 2774 阅读 · 1 评论 -
kkFileView在线文件预览项目学习&搭建
目录1. kkFileView介绍2. 源码下载3. 项目启动和配置修改4. 项目打包和部署4.1、打包4.2、部署4.3、文件预览乱码问题5. web中使用API在偶然的翻阅大佬博客的时候,发现一个挺有意思的项目:kkFileView,在线文件预览项目1. kkFileView介绍kkFileView是git的开源在线文件预览项目 支持格式:doc、docx、ppt、pptx、xls、xlsx、zip、rar、mp4、mp3以及众多类文本如txt、html、xml、java、properties、s原创 2021-12-20 16:23:04 · 5893 阅读 · 3 评论 -
Git——Docker搭建GitLab&简单的Runner配置
目录GitLab简介GitLab的部署docker安装gitlab登录GitLabGitLab Runner的安装与使用相关简介安装GitLab Runner通过CI简单的配置运行RunnerGitLab简介GitLab是一个开源的用于仓库管理的项目,和GitHub一样是使用Git作为代码管理工具。GitLab和GitHub的区别:GitHub作为开源代码库,拥有超过 900 万的开发者用户,目前仍然是最火的开源项目托管平台,GitHub 同时提供公共仓库和私有仓库,但如果使用私有仓库,是需要付费原创 2021-10-28 16:59:51 · 1366 阅读 · 0 评论 -
记一次JPA级联问题&CascadeType详解
目录遇到的问题JPA多对多级联的demoJPA级联操作的详解遇到的问题首先我在用springboot-jpa写一个多对多demo,进行插入数据的时候遇到了如下的问题:detached entity passed to persist大概的意思是该数据插入的时候,使用了级联表中已经有的数据,该条数据的id已经存在,无法继续插入,因此:detached entity passed to persist。这个是什么问题产生的呢?这个问题搞了很久,网上的说法也是千奇百怪,后来突然恍然一悟,为什么会要插原创 2021-10-28 13:20:44 · 847 阅读 · 0 评论