java
文章平均质量分 77
坚持是一种态度
男,研究生学历,中国科大硕士,高级软件工程师,作为 大数据分析/架构师/Java开发/运维 岗位角色进行工作。喜欢读书、听音乐、看电影和看动漫,热爱生活,热爱学习。
展开
-
使用网关过滤器,根据业务规则实现微服务动态路由
Spring Cloud Gateway是Spring Cloud生态系统中的一个组件,用于构建基于Spring Boot的API网关服务。Spring Cloud Gateway基于Reactive编程模型,使用WebFlux框架实现,可以快速、可靠地构建和部署高性能的微服务应用程序。原创 2024-02-04 17:33:15 · 1282 阅读 · 0 评论 -
拦截器配置,FeignClient根据业务规则实现微服务动态路由
OpenFeign是一个基于Java的声明式HTTP客户端,它简化了编写基于HTTP的API的代码。它使用了注解来定义和配置HTTP API,并且自动地将这些API转换为相应的HTTP请求。OpenFeign的特点包括:声明式API:使用Java接口和注解定义和配置HTTP API,无需手动拼接URL和参数。支持多种编码器:支持多种编码器,包括常见的JSON和XML编码器,以及自定义的编码器。内置负载均衡:集成了Ribbon负载均衡器,可以轻松地对请求进行负载均衡。原创 2024-02-04 13:07:15 · 1113 阅读 · 0 评论 -
flyway使用配置参数和注意事项介绍
我的flyway的在spring boot应用里的application.yml配置spring:hikari:flyway:enabled:默认true,是否启用flyway,设置为true,flyway才会生效locations:默认,迁移脚本的位置schemas:由 Flyway 管理的schema的名称(区分大小写)encoding:默认UTF_8,SQL 迁移的编码table:默认,Flyway 将使用的架构历史表的名称。sqlMigrationPrefix:默认V。原创 2024-01-26 19:23:39 · 1209 阅读 · 1 评论 -
docker:Java通过nginx获取客户端的真实ip地址
在Nginx配置中,指令是用于定义向代理服务器传递的请求头字段。该指令专门用于location块中,并且通常配合proxy_pass指令一起工作,proxy_pass指令定义了代理服务器的协议和地址。基本上,当Nginx作为反向代理服务器时,客户端的请求首先到达Nginx,然后Nginx将这些请求转发到后端的上游服务器。在转发请求时,Nginx可以设置或修改请求头。指令正是用来进行这样的设置或修改。下面是几个传递主机名- 将客户端请求的原主机头信息传递到上游服务器。传递真实IP地址。原创 2024-01-18 17:54:33 · 1394 阅读 · 0 评论 -
docker里Java服务执行ping命令模拟流式输出
【代码】docker里Java服务执行ping命令模拟流式输出。原创 2024-01-18 17:46:15 · 1040 阅读 · 0 评论 -
统一认证服务,应用服务端token的查询与缓存策略
统一认证服务,token校验,使用ConcurrentHashMap作为内存缓存,也可以使用其他技术框架,ConcurrentHashMap实现方式,只能在单体应用里生效,如果需要分布式缓存,就需要其他技术方案了,如Ehcache、Redisson、Hazelcast等原创 2024-01-13 17:08:49 · 1097 阅读 · 0 评论 -
JPA查询PostgreSQL行排序问题
JPA(Java Persistence API)是一种用于管理Java应用程序中持久化数据的API。它为开发人员提供了一种方便的方法来在数据库中存储、检索和管理对象。在使用JPA的过程中,开发人员经常需要执行各种类型的查询来检索数据。JPQL(Java Persistence Query Language)查询:JPQL是一种面向对象的查询语言,类似于SQL,但是针对实体对象进行查询。它使用实体类和其属性名称而不是表名和列名来执行查询。原创 2024-01-13 16:33:23 · 938 阅读 · 0 评论 -
自制Java镜像发布到dockerhub公网使用
【代码】自制Java镜像发布到dockerhub公网使用。原创 2024-01-04 19:49:37 · 1129 阅读 · 0 评论 -
自定义docker镜像,ubuntu安装命令并导出
Docker提供了多种命令来管理镜像和容器,其中包括docker save和docker load。将一个或多个Docker镜像保存为tar文件。这个tar文件包含了镜像的所有层以及元数据信息,可以用于在其他机器上导入和部署。使用其中,是要保存的镜像的名称或ID,是保存的tar文件的输出路径。从一个tar文件中加载一个或多个Docker镜像,并将其导入本地Docker引擎。加载的镜像可以在本地机器上使用。使用其中,是要加载的tar文件的路径。原创 2023-12-28 17:52:50 · 1089 阅读 · 0 评论 -
Java连接redis报错timed out问题解决
【代码】Java连接redis报错timed out问题解决。原创 2023-10-24 13:42:04 · 2502 阅读 · 3 评论 -
Feign接口调用GET请求@RequestParam传参丢失
Feign是一种声明式的Web服务客户端,它使得编写Web服务客户端变得更简单通过使用Feign,我们可以定义一个接口,并使用注解的方式来声明对远程服务的调用Feign会根据接口的定义,自动构造出符合目标服务的HTTP请求,并处理HTTP响应Feign还集成了Ribbon负载均衡的能力,可以轻松地实现对多个服务实例的负载均衡调用Feign的主要特性包括:声明式的API:通过定义接口和使用注解的方式,简化了对远程服务的调用。原创 2023-09-30 19:44:15 · 1448 阅读 · 0 评论 -
SpringCloudStreamkafka接收jsonarray字符串失败
【代码】SpringCloudStreamkafka接收jsonarray字符串失败。原创 2023-09-30 19:24:23 · 1529 阅读 · 0 评论 -
网络编程socket慎重断开连接
网络编程socket慎重断开连接业务场景心跳与连接报错与捕获业务场景我们公司是做智慧交通的,主要卖交通相关的硬件和软件硬件包括信号机、雷达、雷视、边缘盒子等,软件包括信控平台、管控平台等信号机通信协议有国标推荐协议,定义了一些接口和数据字段硬件和软件通信,硬件里一般使用的是嵌入式编程,使用精简的Linux系统,使用C语言编程遵循这些协议,一般都使用socket进行通信心跳与连接心跳保持连接,但是不能只用心跳,数据通信也算对于断开连接,要慎重,要有心跳次数报错与捕获数据不完整,原创 2023-08-31 22:41:07 · 458 阅读 · 0 评论 -
Java集合sort排序报错UnsupportedOperationException处理
UnmodifiableList类是Collections的内部类Java的Collections框架提供了UnmodifiableList类作为不可变列表的一种实现UnmodifiableList实现了List接口,但是在其基础上增加了一些限制,例如不允许修改列表中的元素、不允许添加新元素以及不允许删除已有元素。因此,可以使用UnmodifiableList来保护某些关键数据,防止其他程序修改它们。原创 2023-08-29 23:01:51 · 1476 阅读 · 0 评论 -
Spring redis使用报错Read timed out排查解决
【代码】Spring redis使用报错Read timed out排查解决。原创 2023-08-25 18:53:50 · 2515 阅读 · 0 评论 -
选择Java11还是Java14,附CentOS7.9安装方法
Java 11是Java编程语言的一个重要版本,于2018年9月发布Java 11在语言特性、性能优化和安全性方面都有一些显著的改进,为Java开发者提供了更多的选择和便利Java 11也是一个成熟稳定的版本,具有长期支持(LTS)的特性Java 14是Java的最新版本,与Java 11相比有一些新的功能和改进,但它不一定适合所有的应用和项目如果一个项目需要Java 14的新特性以及更多的性能和安全性改进,那么可以考虑使用Java 14如果一个项目不需要Java 14。原创 2023-08-25 13:44:00 · 455 阅读 · 0 评论 -
PostgreSQL数据库表字段删除造成的报错
最后总结下,前端页面的查询条件,带着字段,而这个字段在服务端被删除,导致了这次报错对于实体类与数据库表,当一个字段在表里有,实体类没有时,并不会造成什么错误,只不过是冗余了一个字段如果一个字段实体类有,而数据库表里没有,那就不行了,使用到这个表的代码,增删改查都可能会报错对于实体类变动和数据库表变动,我们要做好记录,做好对应的代码修改原创 2023-07-29 20:50:47 · 421 阅读 · 0 评论 -
kafka消费报错卡死:内存溢出OutOfMemoryError: Java heap space
【代码】kafka消费报错卡死:内存溢出OutOfMemoryError: Java heap space。原创 2023-07-29 16:18:26 · 3460 阅读 · 0 评论 -
Java保存数据到ClickHouse连接超时失败code 1002 failed to respon
【已解决】Java保存数据超时失败 ClickHouse exception, code 1002, 8123 failed to respon,k.Java连接ClickHouse有以下几种方式1、使用JDBCClickHouse提供了JDBC驱动,可以使用JDBC API连接到ClickHouse,类似于连接其他关系型数据库。可以使用Java中的JDBC API对ClickHouse进行操作,例如执行SQL查询、插入、更新、删除等操作。连接方式如下:2、使用是一个基于HTTP协议的ClickHouse原创 2023-02-05 13:47:21 · 3188 阅读 · 2 评论 -
socketio连接失败,nginx返回502 connect failed (111: Connection refused)问题解决
当灯态变化时,路口前端的信号机设备,会通过socket协议将消息推送给我们的通信服务程序,通信服务将消息解析处理后,关联路口渠化等信息,处理包装后,再把信息通过。接收到推送时,前端代码会把灯态信息在界面上实时渲染出来,这样客户就可以实时查看灯态、通行流向、倒计时等。某次平台更新部署后,发现界面上的倒计时没有了,查看了下通信服和网络,没发现问题。现在的信号机,大多都支持国标2007协议或者2017协议,来实现硬件设备与其他平台的通信,主要是通过。了(很难复现,没有当时的截图,截了个正常的)原创 2023-06-26 21:44:54 · 2642 阅读 · 0 评论 -
keycloak登录密码设置导致的弱口令安全漏洞
Keycloak是一个开源的身份认证和授权管理系统,它提供了多种身份认证方式(例如:用户名/密码、OAuth、OpenID Connect、SAML 2.0等)和授权策略,为应用程序和服务提供了安全的用户结构和访问控制Keycloak被广泛应用于企业系统中,尤其是在支持多种身份验证和单点登录的应用程序中,也可以与常用的开发框架(例如:Spring、React等)集成Keycloak易于使用并提供了可扩展性和灵活性,可适用于各种应用场景,保障应用程序的信息安全和用户数据隐私。原创 2023-06-18 22:07:46 · 2063 阅读 · 0 评论 -
keycloak异常关闭报错username ‘admin‘ already added时卡死无法重启的问题处理
你可以通过将该文件从容器复制到本地机器来修复故障容器:“docker cp keycloak:/opt/jboss/tools/docker-entrypoint.sh .”将其注释掉 “set -eou pipefail” 这一行,然后使用“docker cp docker-entrypoint.sh keycloak:/opt/jboss/tools/”将其复制回容器,并重新启动容器。在干净的启动/关闭之后,你可以再次恢复(取消注释)这一行。这个问题发生在Keycloak启动过程中被中断的情况下。原创 2023-05-19 17:47:34 · 958 阅读 · 0 评论 -
keycloak介绍:docker版本使用示例与用户登录超时时间设置
Keycloak的docker/docker-compose版本使用,超时时间保活时间设置。Keycloak是一款由Red Hat开源社区开发的开放源代码的身份和访问管理解决方案,它提供了安全的单点登录(SSO)、多因素身份验证、社交登录和基于角色的访问控制等功能Keycloak基于OAuth 2.0和OpenID Connect协议,并支持SAML 2.0,可与多种身份验证和授权方案集成。Keycloak提供了RESTful API,可与其他应用程序集成,以实现强大的身份验证和访问控制功能原创 2023-05-18 18:05:42 · 1415 阅读 · 0 评论 -
Spring Boot:使用maven的jib插件打docker使用所需的镜像包
Jib是一个由Google开发的基于Docker镜像构建的工具,它的Maven插件可以让我们以更高效的方式构建和管理Docker镜像。使用Jib,我们可以摆脱手动编写Dockerfile的繁琐过程,而是直接将我们的Java应用程序打包为镜像,并将其推送到容器仓库中,从而大大简化了Docker容器化的过程。也可以直接打包成tar镜像包,load进docker里使用Jib的Maven插件可以使用以下方式在pom.xml文件中进行配置:-- 版本号 --> < configuration >原创 2023-05-07 17:09:19 · 1161 阅读 · 1 评论 -
netty使用异常,nio使用DirectBuffer导致内存溢出
Netty是基于NIO的框架,因此在使用Netty时可能会出现DirectBuffer导致内存溢出问题。这是因为DirectBuffer是使用操作系统的内存空间,而不是JVM内存空间,因此如果不及时释放,就会导致内存泄漏。解决这个问题的方法有以下几种:及时释放DirectBuffer:在使用完DirectBuffer后,一定要及时释放。可以使用ReferenceCountUtil.release()方法手动释放,也可以通过Netty的内存池机制自动释放。原创 2023-04-23 17:37:27 · 1821 阅读 · 0 评论 -
关于Netty使用中黏包拆包带来报错问题及解决
在使用Netty进行TCP数据传输时,由于TCP是一个面向流的协议,消息会被拆分成多个字节流进行发送,因此接收方收到消息时,可能会出现黏包和拆包现象。黏包指的是接收方一次性收到了多个完整的消息,而拆包则是接收方收到了不完整的消息。这种现象的出现是由于TCP是面向流的、无边界的协议,不保留数据报的边界。为了解决黏包和拆包问题,Netty提供了多种解决方法:消息定长:即发送方发送的每个消息长度固定,接收方接收到固定长度的字节流后进行消息的解析,这个是一种简单有效的实现方法。原创 2023-04-23 17:31:42 · 1084 阅读 · 0 评论 -
Java集合使用遇到的一例错误记录
【代码】Java集合使用遇到的一例错误记录。Java集合类是我们开发中经常使用到的一种类,也是Java开发者必须掌握的一个知识点。在Java中,引用类型是一种数据类型,所有非基本数据类型都是引用类型。Java中的集合类中存储的元素都是引用类型,即存储的是对象的引用。在使用集合时,需要注意引用的使用方式,避免出现内存泄漏等问题。本次记录的一处集合使用错误,就是忽略了对象引用,对象数据变化导致程序执行出错,特此总结记录一次,加深印象原创 2023-04-21 17:51:41 · 470 阅读 · 0 评论 -
consul注册中心服务All service checks failing及解决
consu在同一台机器上反复重启,就会增加很多instantId不同的该服务加入注册中心,而监测使用的url是一样的,则最新的服务启动成功后,注册中心监测是通过的,其余的。里的单体微服务已启动,启动日志也没有任何报错信息,注册成功。服务的instantId,加了随机数,所以每次启动服务都会生成一个新的instantId。解决:在配置文件里,直接指定健康检查地址,将可访问的本机ip设置进去,即可。原因:查看了注册中心的信息,发现健康检查的地址不对,是一个内网地址(现象:这是一个新增的微服务,调用第三方服务的。原创 2023-02-28 13:36:32 · 3836 阅读 · 2 评论 -
Java程序连接ClickHouse失败拒绝连接 failed: Connection refused
【代码】Java程序连接ClickHouse失败拒绝连接 failed: Connection refused。原创 2023-02-25 12:16:12 · 3252 阅读 · 0 评论 -
建议将com.alibaba:fastjson升级至1.2.83
【代码】存在安全漏洞,建议将com.alibaba:fastjson升级至1.2.83。原创 2023-02-25 10:52:41 · 13243 阅读 · 3 评论 -
排查部署在docker内的Java程序内存占用
【代码】排查部署在docker内的Java程序内存占用。原创 2023-02-05 14:04:09 · 1558 阅读 · 0 评论 -
Spring stomp 服务端处理取消订阅事件
【代码】Spring stomp 服务端处理取消订阅事件,心跳保持,服务端监听取消订阅原创 2023-01-18 10:20:28 · 801 阅读 · 0 评论 -
处理Springboot项目启动时streamBridge.send导致的卡住卡死问题
【代码】处理Springboot项目启动时streamBridge.send导致的卡住卡死问题。 在docker里使用 `jstack 1`,结果提示`bash: jstack: command not found`,去java文件夹看了下,确实没这些命令原创 2023-01-17 15:23:11 · 1604 阅读 · 0 评论 -
shell脚本监控SpringBoot服务健康状态并重启
【代码】shell脚本监控SpringBoot服务健康状态并重启。原创 2022-11-14 19:05:08 · 1290 阅读 · 1 评论 -
字节数组byte[]转有符号short和无符号unsignedShort
java byte[]数组转short 无符号数 byte[2] 转 short byte[2] 转 unsignedShort ,雷达数据解析2.长度大于2个字节的,注意大小端字节顺序(否则解析出来的值也不对)1.取值范围>=0,按无符号数解析,原创 2022-10-22 15:19:21 · 2515 阅读 · 0 评论 -
Java获取当前时区时间LocalDateTime与System.currentTimeMillis
全球根据纬度不同,划分不同的时区。对于此时此刻,大家同处同一个时间点,但是,每个时区的时间表示是不同的。System.currentTimeMillis() 获取的当前时间与 格林尼治标准时间1970年零点 相差的毫秒数,与时区无关。LocalDateTime.now()获取的是当前时区的时间,但它的结果值不带时区属性,把它按照UTC时区计算毫秒数,发现刚好相差8小时原创 2022-09-04 16:35:58 · 14335 阅读 · 5 评论 -
Spring Cloud Stream kafka项目启动时报错
于是就对streamBridge加了非空判断,不为null时再去调用send方法发送消息,但是仍然遇到了空指针异常。继续debug代码,追踪出错时的情况和正常情况,进行对比,发现失败时streamBridge的初始化initialized为完成为false,成功时为true。原因不难想到,项目启动时,还未创建好kafka连接,但是程序已经接收到socket消息,已经开始调用streamBridge发送消息了。判断非空后,先调用初始化方法,再调用send方法,果然没有空指针问题了。原创 2022-08-23 18:47:48 · 1781 阅读 · 2 评论 -
Java web产品开发经验分享
前几天在公司应领导要求搞得一个分享,也在这里分享下。原创 2022-08-14 21:27:56 · 692 阅读 · 0 评论 -
Jhipster介绍和使用
名称:Jhipster - 类型:代码生成工具,微服务集成框架 - 官网地址(工具使用地址/下载地址):[https://www.jhipster.tech/cn/](https://www.jhipster.tech/cn/) - 简要说明:JHipster是一个开发平台,可以快速生成,开发和部署现代Web应用程序+微服务架构。可以自己选择各个前后端组件,可以根据`.jdl`文件里的表设计,生成CRUD代码。...原创 2022-08-04 00:03:48 · 2650 阅读 · 0 评论 -
Java基础-JVM:垃圾回收算法与垃圾收集器
Java基础-JVM:垃圾回收算法与垃圾收集器 垃圾回收算法 标记-清除算法 复制算法 标记-压缩算法 垃圾收集器 Serils / Serils Old ParNew Parallel Scavenge / Parallel Old CMS G1 ZGC 垃圾收集器选择垃圾回收算法和垃圾收集器算是JVM的基础,也是Java的核心知识,Java程序员们都应该了解,并根据实际需要进行垃圾收集器的选择和JVM参数调优。............原创 2022-07-27 23:50:04 · 356 阅读 · 0 评论