自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 FluxMQ:新一代的高性能MQTT代理服务器

FluxMQ是一款专为物联网应用打造的MQTT网关产品,致力于为企业和开发者提供高效、安全的数据传输解决方案。基于业界领先的MQTT协议,支持多协议拓展,FluxMQ具有低延迟、低功耗、高并发连接等优势,能够确保在各种应用场景下实现稳定、可靠的数据传输。

2024-02-02 12:07:51 1437

原创 FluxMQ—引领物联网新时代的高性能MQTT网关

FLuxMQ是一款基于java开发,支持无限设备连接的云原生分布式物联网接入平台。FluxMQ基于Netty开发,底层采用Reactor3反应堆模型,具备低延迟,高吞吐量,百万-千万设备连接;方便企业快速构建其物联网平台与应用。

2023-04-18 12:33:17 1711 8

原创 一款高性能分布式MQTT Broker(带web)

SMQTTX是基于SMQTT的一次重大技术升级,基于Java开发的分布式MQTT集群,是一款高性能,高吞吐量,并且可以完成二次开发的优秀的开源MQTT broker,主要采用技术栈:reactor3、reacotr-netty、netty、ignite等开源软件,基于SMQTTX可以轻松完成百万级别设备接入。

2023-01-31 09:24:37 771

原创 FluxMQ—2.0.8版本更新内容

FLuxMQ是一款基于java开发,支持无限设备连接的云原生分布式物联网接入平台。FluxMQ基于Netty开发,底层采用Reactor3反应堆模型,具备低延迟,高吞吐量,千万、亿级别设备连接;方便企业快速构建其物联网平台与应用。

2023-12-05 22:43:20 267

原创 几款流行MQTT Broker性能对比

最近百度新开源了一款MQTT Broker,带着期待,于是我们准备了了一次性能的基准测试,主要为了测评各MQTT Broker之间的性能差异。

2023-07-24 18:19:43 1383

原创 FluxMQ 规则引擎 《一》

FluxMQ Rule Engine (以下简称规则引擎) 用于配置FluxMQ 消息流与设备事件的处理、响应规则。规则引擎不仅提供了清晰、灵活的 "配置式" 的业务集成方案,简化了业务开发流程,提升用户易用性,降低业务系统与 FluxMQ 的耦合度;也为 FluxMQ 的私有功能定制提供了一个更优秀的基础架构。

2023-06-07 17:16:35 1148 1

原创 MQTT 5.0协议新特性介绍

项目中逐步完成了 MQTT 5.0的开发,这里介绍下MQTT 5.0 的一些新特性。

2023-02-10 13:51:15 626

原创 smqtt:高性能开源MQTT消息代理Broker

SMQTT基于reactor-netty(spring-webflux底层依赖) 开发,底层采用Reactor3反应堆模型,支持单机部署,支持容器化部署,具备低延迟,高吞吐量,支持百万TCP连接,同时支持多种协议交互,是一款非常优秀的消息中间件!

2022-11-01 10:24:54 2831

原创 【三】工厂模式

工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。

2022-07-03 22:26:37 155

原创 【二】建造者(Builder)模式

建造者(Builder)模式的定义:指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示。

2022-06-26 20:20:46 498

原创 【一】策略模式:使用案例

指的是可以实现目标的方案集合,根据不同的入参,策略之间是可以相互替换的。比如我们再登录某一个平台的时候,可以有多种登录方式( 用户名+密码,手机号+验证码,手机号+密码,或者第三方认证登录)这些登录方式即为不同的策略。如上代码,虽然写起来简单,但违反了面向对象的 2 个基本原则:单一职责原则:一个类只有1个发生变化的原因,之后修改任何逻辑,当前方法都会被修改,维护比较麻烦。开闭原则:对扩展开放,对修改关闭...

2022-06-14 17:28:03 757

原创 Redis面试题

redis 设置过期时间Redis 中有个设置时间过期的功能,即对存储在redis数据库中的值可以设置一个过期时间。作为一个缓存数据库, 这是非常实用的。如我们一般项目中的token 或者一些登录信息,尤其是短信验证码都是有时间限制的,按照传统的数据库处理方式,一般都是自己判断过期,这样无疑会严重影响项目性能。我们set key 的时候,都可以给一个expire time,就是过期时间,通过过期时间我们可以指定这个key 可以存活的时间。如果假设你设置了一批key 只能存活1 个小时,那么接下来1 小

2021-11-04 15:27:29 152

原创 http/1.1将来不久会被http/2完全替代!

前言HTTP/1.1协议为现在网络提供了20年的支持。从那时起,网站已经从静态的、文本驱动的文档发展为交互式的、富媒体的应用程序。在此期间底层协议保持不变这一事实正好说明了它的通用性和能力。但随着网络变得越来越大,它的局限性变得更加明显。我们需要一个替代品,而且我们很快就需要它。于是HTTP/2诞生了。HTTP/2 于 2015 年初发布,在不改变现有应用程序语义的情况下优化了网站连接。这意味着你可以利用 HTTP/2 的特性,例如更高的性能、更新的错误处理、减少延迟和降低开销,而不需要改动你的您的 W

2021-07-15 22:01:28 355 3

原创 全网唯一开源java开发的支持高扩展、高性能的Mqtt集群broker!

SMQTT是一款开源的MQTT消息代理Broker,SMQTT基于Netty开发,底层采用Reactor3反应堆模型,支持单机部署,支持容器化部署,具备低延迟,高吞吐量,支持百万TCP连接,同时支持多种协议交互,是一款非常优秀的消息中间件!smqtt目前拥有的功能如下:消息质量等级实现(支持qos0,qos1,qos2)会话消息保留消息遗嘱消息客户端认证tls加密websocket协议支持http协议交互SPI接口扩展支持消息管理接口(会话消息/保留消息管理)通道管理接口 (.

2021-07-13 16:49:08 657 2

原创 彻底掌握HashMap集合相关面试题

收藏吧 还等啥??一:HashMap与ConcurrentHashMap的区别?首先两者的相同点在于底层都是数组+链表实现实现的。但两者最大的区别就是HashMap是线程非安全的,ConcurrentHashMap是线程安全的。二:HashMap为什么会有线程安全问题?我们知道jdk1.7和jdk1.8中HashMap都是线程不安全的,那我们就具体讲一下为什么会线程不安全(两个方面:调用put方法、扩容)。①调用put方法假如有两个线程A和B,A希望插入一个key-value

2021-07-07 17:43:32 176 5

原创 java中位运算详解

位运算什么是位操作?程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6 and 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理)。❝算术运算简称运算。指按照规定的法则和顺序对式题或算式进行运算,并求出结果的过程。包括:加法、减法、乘法、除法、乘方、开方等几种运

2021-07-05 23:02:30 913 10

原创 HashMap线程安全问题以及处理方法!

一:HashMap为什么会有线程安全问题?我们知道jdk1.7和jdk1.8中HashMap都是线程不安全的,那就具体讲一下为什么会线程不安全(两个方面)。①调用put方法假如有两个线程A和B,A希望插入一个key-value到HashMap中,首先会通过A的key得到桶的索引坐标,然后获取该桶的链表头结点,线程A的时间片用完,而此时B线程被调用执行,和线程A一样执行,只不过线程B成功的将数据插入到桶里面。假设线程A插入时候计算的坐标和B线程要插入的索引坐标是一致的,那么当B线程成功插入以后,线

2021-06-26 22:20:24 6698 7

原创 未来将要干掉Spring WebMVC的Spring WebFlux到底强在何处?

Spring WebFlux 教程:如何构建反应式 Web 应用程序反应式系统提供了我们在高数据流世界中所需的无与伦比的响应能力和可扩展性。然而,反应式系统需要经过专门培训的工具和开发人员来实现这些独特的程序架构。Spring WebFlux with Project Reactor 是一个专门为满足现代公司的响应式需求而构建的框架。今天,我们将通过解释 WebFlux 如何与其他反应式堆栈工具配合、有何不同以及如何制作您的第一个应用程序来帮助您开始使用 WebFlux。什么是反应式系统?反应式系

2021-06-25 11:01:34 1347 9

原创 带你彻底搞定java线程池原理!吊打面试官!

线程池(Executor)什么是线程池?Java5引入了新的称为Executor框架的并发API,以简化程序员的工作。它简化了多线程应用程序的设计和开发。它主要由Executor、ExecutorService接口和ThreadPoolExecutor类组成,ThreadPoolExecutor类同时实现Executor和ExecutorService接口。ThreadPoolExecutor类提供线程池的实现。我们将在教程的后面部分了解更多。为什么我们需要线程池?当我们创建一个简单的多线程应用程

2021-06-10 15:27:58 320 11

原创 java IO教程《四》

properties使用什么是Properties?Properties(Java.util.Properties),该类主要用于读取Java的配置文件,不同的编程语言有自己所支持的配置文件,配置文件中很多变量是经常改变的,为了方便用户的配置,能让用户够脱离程序本身去修改相关的变量设置。就像在Java中,其配置文件常为.properties文件,是以键值对的形式进行参数配置的。Properties 详解Api介绍构造函数构造函数说明Properties()创建

2021-06-08 10:38:20 199 10

原创 java IO教程《三》

缓冲区流讲解(Buffered)什么是缓冲区?缓冲流,也叫高效流,是对4个基本的File流的增强,所以也是4个流,按照数据类型分类:字节缓冲流:BufferedInputStream,BufferedOutputStream字符缓冲流:BufferedReader,BufferedWriter缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。缓冲技术的原理?整个过程可以形容成一个快递小哥,开始时候自行车送快递,

2021-06-01 15:11:34 250 18

原创 史上最全Idea的下载和安装步骤

文章目录前言第一步、IDEA下载①百度搜索idea,找到官网下载②选择版本③此处我选择的版本是2019,既然可以破解那不如选择选正版的进行破解,后面也有破解的方式,可以用到退休二、idea的安装步骤①.双击上面的.exe文件进行下面步骤的安装②.如果电脑上之前有安装老版本的 IDEA, 会提示卸载,小伙伴们按照提示,先卸载掉老版本的 IDEA。③:勾选自己想要创建的桌面快捷方式,由于操作系统是 64 位的,所以勾选的 64 位快捷方式:步骤三、idea的破解总结前言此篇文章帮助你下载idea和安装各

2021-05-27 17:49:15 5858 7

原创 java IO教程《二》

字符流讲解什么是字符流?字符流=字节流+编码表字符其实只是一种特殊的二进制字节,是按照一定的编码方式处理之后,按照一定规则来存储信息的数据,字符在计算机中也是由二进制组成的,只不过这种二进制可以按照一种规则解码后,成为人类可以直接阅读的自然语言,而普通的二进制文件只有计算机能直接“阅读”。字节操作和字符操作的区别就在于数据的格式。在使用场景上,字符流无法直接获取文本信息的二进制文件,比如图片,mp3,视频文件等,只能使用字节流。而对于文本信息,则更适合使用字符流。Reader与WriterR

2021-05-25 22:00:27 548 16

原创 java IO教程《一》

IO教程什么是IO?Java的核心库java.io提供了全面的IO接口。包括:文件读写、标准设备输出等。Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。发展历程BIO(本文主要讲解,一下IO简称默认是BIO) 就是传统的 java.io 包,它是基于流模型实现的,交互的方式是同步、阻塞方式,也就是说在读入输入流或者输出流时,在读写动作完成之前,线程会一直阻塞在那里,它们之间的调用时可靠的线性顺序。它的有点就是代码比较简单、直观;缺点就是 IO 的效率和

2021-05-20 14:52:03 182

原创 全网最详细的Lambda教程

Java8 新特性----Stream流jdk8是Java 语言开发的一个主要版本,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等等。今天就重点介绍一个非常重要得特性之一 lambda表达式一:什么是 Stream?Stream(流)是一个来自数据源的元素队列并支持聚合操作Java中的Stream并不会存储元素,而是按需计算。数据源 流的来源。 可以是集合,数组,I/O channel, 产生器generator 等。聚合操作 类似SQL

2021-05-16 21:09:15 981 7

原创 如何使用java搭建一款高性能的Mqtt集群broker!

SMQTT是一款开源的MQTT消息代理Broker,SMQTT基于Netty开发,底层采用Reactor3反应堆模型,支持单机部署,支持容器化部署,具备低延迟,高吞吐量,支持百万TCP连接,同时支持多种协议交互,是一款非常优秀的消息中间件!smqtt目前拥有的功能如下:消息质量等级实现(支持qos0,qos1,qos2)会话消息保留消息遗嘱消息客户端认证tls加密websocket协议支持http协议交互SPI接口扩展支持消息管理接口(会话消息/保留消息管理)通道管理接口 (管

2021-05-12 11:23:31 1493 10

原创 原来发送http请求可以这么优雅!

前沿项目中我们经常会使用HTTP工具向外部的REST接口发送请求,大家一般使用Okhttp,或者java的HttpClient发起,今天给大家介绍一款轻量级声明式的Http库(FeignClient),使用起来会使我们的项目代码更整洁,利于维护!快速开始Feign是spring cloud中服务消费端的调用框架,通常与ribbon,hystrix等组合使用。但是在某些项目中,由于遗留原因,整个系统并不是spring cloud项目,甚至不是spring项目,而使用者关注的重点仅仅是简化http调用代

2021-04-30 14:06:55 588

原创 一文彻底了解泛型!

// 擦除后的方法只剩下Objectpublic List<Object> withErasure(List<Object> list) { return list.stream().collect(Collectors.toList());}​// which in practice results inpublic List withErasure(List list) { return list.stream().collect(Collectors.

2021-04-23 18:22:31 173 1

原创 spring cloud面试题【第二期】

Ribbon和Feign区别①: 二者调用方式不同Ribbon添加maven依赖 spring-starter-ribbon 使用@RibbonClient(value=“服务名称”) Ribbon需要自己构建http请求,模拟http请求然后使用RestTemplate发送给其他服务,步骤相当繁琐;feign添加maven依赖 spring-starter-feign 服务提供方提供对外接口 调用方使用 在接口上使用@FeignClient(“指定服务名”)Feign则是在Ribbon的基..

2021-04-22 10:04:54 125 1

原创 springcloud中Gateway的限流熔断机制!

前言目前,Spring Cloud Gateway是仅次于Spring Cloud Netflix的第二个最受欢迎的Spring Cloud项目(就GitHub上的星级而言)。它是作为Spring Cloud系列中Zuul代理的继任者而创建的。该项目提供了用于微服务体系结构的API网关,并基于反应式Netty和Project Reactor构建。它旨在提供一种简单而有效的方法来路由到API并解决诸如安全性,监视/度量和弹性之类的普遍关注的问题。基于Redis限流Spring Cloud Gatewa

2021-04-20 09:32:30 1348

原创 Gateway的限流重试机制

前言前面给大家介绍了Spring Cloud Gateway的入门教程,这篇给大家探讨下Spring Cloud Gateway的一些其他功能。Spring Cloud Gateway中的重试我们知道Spring Cloud Gateway中的大多数操作都是使用过滤器模式实现的,该模式是Spring Framework的一种实现GatewayFilter。在这里,我们可以在发送下游请求之前或之后修改传入请求和传出响应。与我之前关于Spring Cloud Gateway的前两篇文章中描述的示例相同

2021-04-15 15:01:15 642 3

原创 原来Ribbon如此简单易用!【第三期】

Springcloud的核心组件之Ribbon上篇文章详细介绍了springcloud的注册中心Eureka,那么这篇文章则会介绍springcloud的另外一个组件Spring Cloud Ribbon以及我们较为熟知同样起到了负载均衡作用的Nginx,二者又有怎样的区别呢?Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负

2021-04-14 09:38:25 720 3

原创 史上最全jdk版本新特性大全

前言在本文中,我将描述自第8版以来Java最重要且对开发人员友好的功能。为什么会有这样的主意?在Web上,您可以找到许多文章,其中包含每种Java版本的新功能列表。但是,由于缺少文章,因此无法简要概述自第8版以来最重要的更改。好的,但是为什么是第8版?令人惊讶的是,它仍然是最常用的Java版本。即使我们已经到了Java 16发行版的前夕果。如您所见,超过46%的响应者仍在生产中使用Java 8。相比之下,只有不到10%的响应者使用Java 12或更高版本。那接下来咋们从JDK8到JDK15,给大家介绍

2021-04-14 09:36:20 2848 7

原创 终于彻底搞明白了微服务网关Gateway!【第七期】

前言在深入探讨Spring Cloud Gateway的细节之前,让我们了解有关反向代理和api网关模式的一些基础知识。什么是反向代理?反向代理是代表其他事物进行请求的事物。它的行为更像是简单的路由。它可以增加基本的安全性和监视功能,但实际上不能做某些高级事情,例如中介或业务流程。NGINX是众所周知的反向代理服务器之一。什么是API网关?简而言之,API Gateway是增强的反向代理,具有更高级的功能,包括编排以及增加的安全性和监视功能。Netflix Zuul(上文介绍),Amazo

2021-04-12 14:45:04 1263 3

原创 带你快速了解微服务网关!【第六期】

网关概念网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。微服务的中网关是用来处理外部请求分发到内部服务,用于控制外部流量的分发!zuul网关简介Zuul

2021-04-11 12:26:42 157 4

原创 一起快速入门Docker容器网络概念!

容器网络概念首先了解下linux的网络构成概念命名空间: Linux在网络栈中引入网络命名空间,将独立的网络协议栈隔离到不同的命令空间中,彼此间无法通信;Docker利用这一特性,实现不容器间的网络隔离。Veth设备对:实现不同命名空间通信Iptables/Netfilter: Iptables/Netfilter:Netfilter负责在内核中执行各种挂接的规则(过滤、修改、丢弃等),运行在内核模式中;Iptables模式是在用户模式下运行的进程,负责协助维护内核中Netfilte

2021-04-09 10:31:19 117

原创 走进docker-聊聊日志

Docker日志概念如果时光可以倒流,现实世界的每一步都可以分解到最小,记录下来,就是日志。万物即日志。面对历史,审视日志,可以选择忘却,也可以选择铭记;经历过的,可以选择珍藏,同样也可以让它尘封。Docker 容器又何尝不是?日志就像一根时间轴,你在或者不在,他都在那。有人对其善意,有人却对其随意。如若不信,可以回忆,自己是否善待 Docker 容器的日志传统应用的日志stdout标准输出日志通过log4j等工具直接写入硬盘的日志Docker 时代的日志所有的容器通过Doc

2021-04-09 10:26:58 153 1

原创 一文彻底搞定Hystrix!【第五期】

前言?Netflix Hystrix断路器是什么?Netflix Hystrix是SOA/微服务架构中提供服务隔离、熔断、降级机制的工具/框架。Netflix Hystrix是断路器的一种实现,用于高微服务架构的可用性,是防止服务出现雪崩的利器。为什么需要断路器在分布式架构中,一个应用依赖多个服务是非常常见的,如果其中一个依赖由于延迟过高发生阻塞,调用该依赖服务的线程就会阻塞,如果相关业务的QPS较高,就可能产生大量阻塞,从而导致该应用/服务由于服务器资源被耗尽而拖垮。另外,故障也

2021-04-08 10:21:47 2307 21

原创 springcloud面试题【第一期】

全文目录1:谈一谈你对微服务的理解?2:微服务之间是如何独立进行通讯的?3:springcloud和dubbo有哪些区别?4:springboot和spring cloud得区别?5:Eureka和ZooKeeper都可以提供服务注册与发现的功能,说说二者的区别?6:什么是熔断? 什么是服务降级?7:说一下你所知道的微服务技术栈?8:说一下CAP定理1:谈一谈你对微服务的理解?最初我们学习Java的时候接触的都是单机项目,会把各种业务需求,数据库链接,页面展示等都会糅合在一个项目中,如

2021-04-02 15:54:36 2540 4

原创 彻底学会微服务之间的服务调用【第四期】

Springcloud的核心组件之Feign假如现在有三个服务,入库,库存,出库,这三个微服务是互相隔离的,那么微服务和微服务之间如何互相调用呢?显然三个微服务都可以采用http通信,也就是可以采用Ribbon+restTemplate进行互相访问(具体如何使用上篇文章讲Ribbon组件有案例),但是这种方式对参数传递和使用都不是很方便,所以弃用此方式,采用Feign进行服务之间的调用,大大简化调用过程。Feign如何使用?当我们使用feign客户端时,一般要做以下三件事情 :1:使用注解@E

2021-03-31 13:59:36 1632 7

空空如也

空空如也

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

TA关注的人

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