自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mrqiang9001

程序来源于生活,思想要比代码能力更重要!

  • 博客(145)
  • 收藏
  • 关注

原创 社区物联网云服务架构设计

随着社区管理越来越智能化,社区物联网升级与改造的市场空间也越来越大。社区物联网包含楼宇对讲、门禁门锁、通道闸等等设备系统。这些系统可以本地化,也可以云端部署。本文将介绍一种支持云端+本地化社区物联网架构模型。

2023-11-24 16:08:10 2734

原创 SpringBoot 2.7 集成 Netty 4 实现 UDP 通讯

Netty 作为异步通讯框架,支持多种协议。本文将介绍基于 SpringBoot 2.7 整合 Netty 4 实现 UDP 通讯。

2023-08-31 18:41:49 3671

原创 SpringBoot 2.7 集成 Netty 4 解决粘包半包问题

Netty 的粘包和半包问题是由于 Netty 在接收消息时无法判断消息是否发送完毕,只能靠读取消息时是否读满缓存来终止,因此就出现了连续发送多条消息,实际上 Netty 接收端只在一次读取这就是粘包;又或者一次发送的消息太长,读取的时候会丢弃一部分,这就是半包。为了解决这个问题,保证一次发送对应一次读取,类似于 http 请求,一次请求对应一次回复。这里介绍使用解决 Netty 粘包半包问题。关于。

2023-08-24 18:43:38 2699

原创 SpringBoot 2.7 集成 Netty 4 模拟服务端与客户端通讯入门教程

Netty 作为一款 NIO 底层通讯框架,在高并发场景有着广泛的应用,众多消息中间件内部也是基于 Netty 进行开发。本文将介绍基于 SpringBoot 2.7 集成 Netty 来模拟服务端与客户端进行通讯。

2023-08-23 11:58:06 1010

原创 支持多种推送方式的消息推送设计方案

通过邮件、短信等方式向用户发送通知是一项很常见的业务场景。如何设计一套好用、简洁消息推送架构?这是一个问题。保存推送消息本身一套消息文本支持多种类型消息推送消息推送记录占用空间小支持消息重试推送机制。

2023-08-18 14:23:27 397

原创 Springboot 2.7 集成 Swagger 增强版接口框架 Knife4j 4.3 + springdoc OpenApi 3.0

Swagger 作为一款服务端接口文档自动生成框架,早已深入人心,并且在市场上得到了广泛的应用。然而,Swagger 3.0 也就是 OpenApi 3.0 规范发布之后便停止了更新维护,出道就是巅峰。Knife4j 作为 Swagger 的增强版,是对 Swagger UI 做了优化,同时还有很多增强的功能。伴随着 Swagger 3.0 的停止更新,如今 Knife4j 从4.0开始已经逐渐使用 Springdoc 作为 swagger 的替代。

2023-08-15 18:52:46 5676 1

原创 Spring Boot 2.5 集成缓存框架 JetCache 2.7

JetCache 是阿里出品的一款缓存框架,其提供了基于接口的缓存以及能够实现本地和远程二级缓存(本地缓存是当前 JVM 中的LinkedHashMap,远程缓存为Redis),在提高系统吞吐量的同时,也极大地方便了代码编写。本文将介绍基于 Spring Boot 2.5 简易集成缓存框架 JetCAche 2.7。1 JetCache 适用于标准的查询单条数据或者查询列表数据的接口进行完整的缓存,这就要求接口的入参必须包含唯一健,且返回值必须是DTO对象。同时对于分页查询的接口无法实现缓存,也没有意义。

2023-03-26 18:34:44 2101 2

原创 Spring Cloud Gateway 网关实现白名单功能

对于微服务后台而言,网关层作为所有网络请求的入口。一般基于安全考虑,会在网关层做权限认证,但是对于一些例如登录、注册等接口以及一些资源数据,这些是不需要有认证信息,因此需要在网关层设计一个白名单的功能。本文将基于 Spring Cloud Gateway 2.X 实现白名单功能。注意事项: Gateway 网关层的白名单实现原理是在过滤器内判断请求地址是否符合白名单,如果通过则跳过当前过滤器。如果有多个过滤器,则需要在每一个过滤器里边添加白名单判断。......

2022-08-30 17:30:49 11814 2

原创 玩转亚马逊 AWS IoT(3): SpringBoot 2.7 集成 AWS IoT 服务

springBoot 2.7 集成亚马逊 AWS iot 物联网服务

2022-07-30 16:02:24 4374

原创 玩转亚马逊 AWS IoT(2): IoT 控制台使用与开发操作文档

亚马逊 AWS iot IoT 控制台使用与开发操作文档

2022-07-30 15:56:51 3821

原创 玩转亚马逊 AWS IoT(1): IoT 业务梳理

亚马逊 iot 服务业务梳理

2022-07-30 15:41:53 4633 2

原创 使用脚本自制 SSL 域名证书

openssl 自制 ssl 证书

2022-06-25 15:22:44 682

原创 Springboot 2.6 + Mybatis Plus 3.5 集成 Sharding-jdbc 5.1 分库分表

随着业务数据的增加,单个的数据库已经无法支撑系统运行了,为了提升系统的流畅性,分库分表就是为了解决系统在大量数据情况下系统相应时间的问题。Sharding-jdbc 作为成熟的分库分表技术框架,在国内应用广泛。本文将介绍基于 Springboot 2.6 + Mybatis Plus 3.5 集成 Sharding-jdbc 5.1 实现分库分表功能。

2022-04-14 17:04:47 9228 2

原创 SpringBoot 2.6 集成 Kafka 2.8

Kafka 本身作为流处理平台,在大数据处理能力上应用广泛;同时 Kafka 也可以作为消息队列。本文将介绍基于 SpringBoot 2.6 集成 Kafka 2.8。 spring boot 2.6 with kafka

2022-03-01 18:44:21 3920 2

原创 SpringBoot 2.6 集成 MySQL 多数据源读写分离

文章目录1 摘要2 核心 Maven 依赖3 数据源配置4 核心代码4.1 数据源配置类4.2 路由数据源4.3 保存数据源 key 的本地线程类4.4 数据源路由注解4.5 数据源动态切换AoP4.6 读写分离注解使用实践--Controller5 测试5.1 不指定数据源5.2 指定从库数据源5.3 指定主库数据源6 推荐参考资料71 摘要为了缓解数据库的压力,在高并发系统中常采用数据库读写分离的模式。本文将介绍基于 SpringBoot 2.6 集成 MySQL 实现读写分离的功能。java程序

2022-02-15 13:57:45 1145

原创 MySQL 数据库主从集群搭建

文章目录1 准备工作2 配置主数据库2 配置从库3 从库设置只读用户4 推荐参考资料1 准备工作1 选择一个服务器当做主服务器,将服务器上需要的数据进行备份2 安装从库的 MySQL,需要与主服务器的版本保持一致3 将主服务器上的数据同步到从库中(主从集群只会同步创建集群之后的数据操作,对于原有的数据不会同步)2 配置主数据库修改配置文件vim /etc/my.cnf添加配置[mysqld]log-bin=mysql-binserver-id=1重启 mysql

2022-02-12 16:09:18 2102

原创 Spring boot 2.5 集成 Elasticsearch 实现增删改查以及全文搜索

文章目录1 摘要2 核心 Maven 依赖3 核心代码3.1 application 配置3.2 实体类3.3 基础增删改查(CRUD)3.4 全文搜索(**重点**)3.5 SpringBoot 启动类4 注意事项4.1 SpringBoot properties/yml 配置4.2 字母大小写敏感问题4.3 分词问题5 推荐参考资料6 本次提交记录1 摘要Elasticsearch 是一款基于 Apache Lucene 的优秀的搜索服务器。本文将介绍基于 SpringBoot 2.5 集成 Ela

2021-12-15 16:48:05 2229

原创 centOS 7 Elasticsearch 7.16 安装使用教程

文章目录1 下载2 安装2.1 下载2.2 添加用户2.3 启动与停止3 使用3.1 启动报错-虚拟内存过小3.2 启动报错-未配置默认服务发现设置3.3 设置远程连接3.4 设置密码​​1 下载官网: https://www.elastic.co下载页面: https://www.elastic.co/cn/downloads/elasticsearch注意:Elasticsearch 7 开始推荐 Java 最低版本为 Java 11​2 安装2.1 下载进入需要安装的目录cd

2021-12-15 14:34:10 3689 2

原创 SpringBoot 2 集成 RocketMQ 4.9 收发同步、异步以及事务消息

1 摘要RocketMQ 支持多种推送消息的方式,可根据业务需要使用。本文将介绍SpringBoot 2 集成 RocketMQ 4.9 收发同步、异步以及事务消息SpringBoot 2 集成 RocketMQ:SpringBoot 2.x 简易集成 RocketMQ2 核心 Maven 依赖.

2021-12-07 16:22:46 2272

原创 SpringBoot 2.x 简易集成 RocketMQ

文章目录1 摘要2 核心 Maven 依赖3 消息生产者-Producer3.1 application 配置文件3.2 消息主题定义3.3 生产者发送消息3.4 Controller 控制层与SpringBoot 启动类4 消费者-Consumer4.1 application 配置文件4.2 消息主题定义4.3 消费者接收消息4.4 SpringBoot 启动类5 消息推送测试6 推荐参考资料7 本次提交记录1 摘要RocketMQ 为阿里开源的高性能消息队列,基于Java实现,支持多种开发语言,能

2021-12-03 16:14:19 493

原创 微服务链路追踪 Skywalking 服务警告

文章目录1 摘要2 警告通知配置3 通知接口示例4 测试通知5 推荐参考资料6 Github 源码​​​1 摘要Skywalking 支持服务警告,即当服务调用异常的时候通知开发者。准备工作Spring Cloud Alibaba 2.X 简易集成 Skywalking 实现微服务链路追踪​2 警告通知配置配置文件路径${skywalkingPath}/config/alarm-settings.yml其中自带了一些服务警告的配置,包括服务响应时间、数据库响应时间等webhook

2021-11-23 17:17:43 893

原创 微服务链路追踪 Skywalking 生成 Trace ID 以及 logback 日志归集

文章目录1 摘要2 核心 Maven 依赖3 Logback 配置4 日志使用效果5 推荐参考资料6 Github 源码​​1 摘要要实现精确的链路追踪,则需要针对每一次请求设置一个唯一编码,Trace ID 就是用于链路追踪的标识。本文将介绍 Skywalking 在 SpringBoot 项目中集成 Trace ID 以及配置 logback 实现日志异步上传到 Skywalking 的功能。准备工作Spring Cloud Alibaba 2.X 简易集成 Skywalking 实现微服务

2021-11-23 17:14:22 11546 4

原创 微服务链路追踪 Skywalking 支持 Spring Cloud Gateway

文章目录1 摘要2 操作方法3 对比测试3.1 添加 Gateway 插件的链路追踪3.2 没有添加 Gateway 插件的链路追踪4 推荐参考资料5 Github 源码​​1 摘要Skywalking 默认是不支持 Spring Cloud Gateway 网关服务的,需要手动将 Gateway 的插件添加到 Skywalking 启动依赖 jar 中。准备工作Spring Cloud Alibaba 2.X 简易集成 Skywalking 实现微服务链路追踪​2 操作方法Skywalk

2021-11-23 17:12:13 8419 7

原创 微服务链路追踪 Skywalking MySQL 持久化配置

文章目录1 配置文件2 添加数据库驱动3 推荐参考资料​​1 配置文件Skywalking OAP 服务配置:${skywalkingPath}/config/application.ymlstorage: selector: ${SW_STORAGE:mysql}将默认的持久化方式 h2 改为 mysql mysql: properties: jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://127.0.0.1:3306/skywalk

2021-11-23 17:09:53 1248

原创 SpringBoot 2.X Redis Jackson 序列化配置

文章目录1 摘要2 核心 Maven 依赖3 核心代码3.1 序列化配置类3.2 Redis 配置信息3.3 Redis 操作工具类​​1 摘要Spring Data Redis 的序列化使用的是 JDK 的序列化方案,储存的为二进制数据。一般集成 Redis 时,需要自定义序列化方案,本文将给出适用于 SpringBoot 2.5+ 的 Redis Jackson 序列化方案。​2 核心 Maven 依赖 <!-- redis --> <dep

2021-11-22 11:42:57 4849

原创 SpringBoot 2.X MongoTemplate 分组聚合查询一网打尽

文章目录1 摘要2 按照固定字段分组查询3 分组分页查询4 按照日期分组查询(字段为精确到秒的时间戳)5 按照日期分组查询(字段为精确到毫秒的时间戳)6 按照日期分组查询(字段为Date)7 按照自定义时间区间分组查询8 数据库实体类及其他相关类8.1 数据库实体类8.2 统计结果类8.3 日期分组信息类8.4 获取日期分组信息的方法9 推荐参考资料10 本次提交记录​​1 摘要MongoDb 如何实现聚合查询?分组查询?分组分页查询?自定义时间区间查询?时间格式转换查询?不要慌,本文将介绍基于 S

2021-11-19 15:44:38 5239 3

原创 Springboot 2.X MongoTemplate 统计查询以及查询部分指定字段

文章目录1 摘要2 查询指定字段3 统计查询4 推荐参考资料5 本次提交记录​​1 摘要MongoDB 作为 NoSQL 文档数据库,其查询的语法区别于传统的关系型数据库。本文将介绍 MongoTemplate 查询部分指定字段以及统计查询功能。​2 查询指定字段./demo-mongodb/src/main/java/com/ljq/demo/springboot/mongodb/service/impl/BlogServiceImpl.java /** * 查询博客阅读

2021-11-16 11:29:37 4314

原创 Springboot 2.X MongoTemplate 实现批量插入以及批量更新

文章目录1 摘要2 批量插入3 批量更新4 推荐参考资料5 本次提交记录​​1 摘要MongoTemplate 作为 Spring 对 MongoDB 提供的操作类,支持数据的批量操作。本文将介绍使用 MongoTemplate 实现批量插入和批量更新的功能。​2 批量插入./demo-mongodb/src/main/java/com/ljq/demo/springboot/mongodb/service/impl/BlogServiceImpl.java /** * 批

2021-11-16 11:28:00 10094 2

原创 Springboot 2.X 集成 MongoDB 使用 MongoTemplate 实现基本增删改查

文章目录1 摘要2 核心 Maven 依赖3 配置信息4 核心代码4.1 实体类4.2 MongoTemplate 核心操作示例-业务实现类4.3 其他操作类-请求参数4.4 其他操作类-控制层(Controller)5 推荐参考资料6 本次提交记录​​1 摘要MongoDB 作为应用广泛的文档数据库,Spring 对其提供了丰富的操作支持。主要操作 MongoDB 的类有 MongoRepository 以及 MongoTemplate。关于这两者的关系, MongoRepository 提供了

2021-11-15 13:56:14 1943

原创 Spring Cloud Alibaba 2.X 简易集成 Skywalking 实现微服务链路追踪

文章目录1 摘要2 Skywalking 所需条件3 下载 Skywalking3 服务配置与说明4 与 SpringBoot 项目集成5 控制台使用说明6 推荐参考资料​​1 摘要为什么要做链路追踪?当微服务的数量庞大、微服务之间相互调用复杂的时候,就需要做链路追踪,这样就能够理清服务调用关系、快速定位问题。对于微服务数量较少(<10个),则可以不做链路追踪。本文将介绍基于 Spring Cloud Alibaba 2.2 集成 Skywalking 实现微服务链路追踪。Skywalkin

2021-11-03 15:28:56 2722 1

原创 给 SpringBoot 项目配一套优雅实用的 logback 日志配置

文章目录1 摘要2 完整配置文件3 配置说明3.1 怎么个优雅法3.2 怎么个实用法4 推荐参考资料​​1 摘要logback 作为SpringBoot 默认日志记录框架,足以见得其技术地位。很多人随便从网上找一个 logback 的配置文件,但是多少有一些使用不便的地方,作为一个对代码有洁癖的开发者,作者自己折腾了一个既优雅又实用的 logback 日志配置模板。logback 官方文档:http://logback.qos.ch/documentation.html2 完整配置文件废话不

2021-11-02 14:56:02 918

原创 Spring Cloud Alibaba 集成 Gateway 实现动态路由功能

文章目录1 摘要2 核心 Maven 依赖3 名词释义4 Gateway 动态路由原理5 数据库表6 核心代码6.1 配置信息6.2 路由实体类6.3 本地路由数据库持久层(DAO/Mapper)6.4 操作 Gateway 路由的 Repository6.4 路由管理业务层 (Service)6.5 路由管理控制层6.6 其他相关类7 测试7.1 新增路由7.2 查询路由列表7.3 修改路由7.4 删除路由7.5 测试匹配路由规则的接口7.6 测试不匹配路由规则的接口7.7 测试微服务代理8 推荐参考资

2021-10-25 17:33:31 1874

原创 SpringBoot 2.X 基于 Redis 实现延时消息队列功能

文章目录1 摘要2 核心 Maven 依赖2 核心代码2.1 配置文件2.2 延时队列工具类3.3 使用示例(Controller)3.4 其他相关类(请求参数)4 测试5 推荐参考资料6 本次提交记录​​1 摘要延时消息队列的功能除了使用 RabbitMQ 这类专业的消息队列工具实现外,如果应对小规模简单的业务,也可以 Redis 实现延时队列的功能。本文将介绍 Springboot 基于 Redis 实现延时队列功能。​2 核心 Maven 依赖 <!-- redis

2021-10-18 15:07:02 1001

原创 Springboot 2.X 集成 RabbitMQ 实现延时消息队列功能

文章目录1 摘要2 安装 RabbitMQ 延时消息插件2.1 下载插件2.2 安装插件2.3 启用插件3 核心代码3.1 配置定义3.2 消息队列生产者3.3 消息队列消费者3.4 使用示例(Controller)4 测试5 推荐参考资料6 本次提交记录6 本次提交记录​​1 摘要延时消息,即生产者发送一条消息,消费者在等待指定的时间之后再进行消费。常见应用场景如商品下单后,当用户没有在固定时间内支付即会销毁订单。RabbitMQ 实现延时消息的原理是通过 TTL + dead message (

2021-10-13 16:55:44 377

原创 SpringBoot 集成 RabbitMQ 常用交换机

文章目录1 摘要2 常用交换机简介2.1 direct exchange2.2 Topic exchange2.3 Fanout exchange3 核心代码3.1 RabbitMQ 配置定义3.2 RabbitMQ 生产者3.3 RabbitMQ 消费者3.4 测试类(Controller)4 RabbitMQ 参数配置说明5 测试6 推荐参考资料7 本次提交记录​​1 摘要RabbitMQ 消息队列四种交换机,分别是: 直连交换机(Direct exchange)、主题交换机(Topic exc

2021-10-11 20:38:43 904

原创 Spring Boot 集成 Redisson 实现分布式锁

文章目录1 摘要2 核心 Maven 依赖3 核心代码3.1 Redisson 配置类3.2 Redisson 配置文件(yml)3.3 使用示例4 验证锁是否生效5 推荐参考资料6 本次提交记录​​1 摘要在分布式系统中高并发带来的除了流量大之外,更容易出现的是重复写操作的问题,典型的场景如抢票、购物等,一件商品只能卖一次,如果高并发的情况下,则容易出现一件商品被卖多次的情况。为避免重复写操作的问题,则需要通过加锁的方式保证写操作依次执行。常用的分布式锁实现方式有 Redis 和 Zookeepe

2021-09-29 17:22:26 699

原创 Java 通过 ip 获取所属城市信息

文章目录1 摘要2 核心 Maven 依赖3 离线数据 db 保存4 核心代码5 测试6 推荐参考资料1 摘要在实际项目中可能会用到统计用户地理位置的需求,这时可以通过客户端的 ip 地址来获取所属城市信息,ip2region 项目就是为解决这个需求而来的。ip2region 是一个开源、免费、可离线运行的通过 ip 获取全球城市信息的第三方库。本文将介绍在 Java 中使用 ip2region 库将 ip 转化为城市信息。ip2region github: https://github.com/li

2021-09-22 15:23:32 3974

原创 Google protobuf 与 Java POJO bean 相互转换

​1 摘要Google 的 protocol buffers 协议(简称: protobuf) ,凭借文本体积小、支持多语言、序列化与反序列化优秀等特点在一些场景中应用广泛。本文将介绍如何实现 protobuf 中定义的 message 与 Java 的 POJO bean 的相互转换。准备工作:Spring boot 2.5 集成 Google protocol bufferProtubuf 定义复杂格式的 message​2 核心 Maven 依赖./demo-mybatis-plus/

2021-08-18 17:41:52 5171 1

原创 Protubuf 定义复杂格式的 message

​1 摘要什么是 protobuf? Java Spring boot 如何集成 protobuf? 具体可参考以下博客:Spring boot 2.5 集成 Google protocol bufferProtobuf 官方文档:https://developers.google.com/protocol-buffershttps://developers.google.com/protocol-buffers/docs/overview本文将介绍如何定义较为复杂格式的 protobuf 文

2021-08-18 17:33:50 414

原创 Spring boot 2.5 集成 Google protocol buffer

Spring boot 2.5 集成 Google protocol buffer​​​1 摘要Portocol Buffers 是一种由 Google 开源的数据序列化格式,简称 protobuf,这是一种支持多语言、无关操作系统平台的、具有拓展性的数据格式。为什么要有 protobuf?或者说 protobuf 的应用场景有哪些?答案是 probuf 的最大优势是体积小,适用于网络状况不佳或者网络带宽有限的设备之间通讯,比如 IoT 之间数据传输。对于网页而言,则完全没有必要。除了网络带宽足够

2021-08-13 16:39:54 1608

空空如也

空空如也

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

TA关注的人

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