
中间件
文章平均质量分 91
阿昌喜欢吃黄桃
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Day920.结构化日志&业务审计日志 -SpringBoot与K8s云原生微服务实践
结构化日志(Structured Logging)是一种将日志信息组织为结构化数据的技术。传统的日志通常是一些文本信息,比如一行记录一个错误或者事件,这些信息往往是自由格式的。相比之下,结构化日志则采用一定的数据格式和模式,将日志信息组织为结构化的数据。结构化日志可以提供更多的信息,比如时间戳、请求 ID、日志级别、错误类型等等,并且还可以包含一些自定义字段。这些信息可以用于更好地理解应用程序的行为,从而更快地定位问题并进行故障排除。原创 2023-03-18 21:49:56 · 1565 阅读 · 0 评论 -
Day820.抢购活动性能瓶颈调优 -Java 性能调优实战
Hi,我是,今天学习记录的是关于。每年的双十一都是很多研发部门最头痛的节日,由于这个节日比较特殊,公司一般都会准备大量的抢购活动,相应的请求对系统来说是个不小的考验。一次做双十一抢购活动,优惠力度特别大,购买量也很大,提交订单的接口 TPS 一度达到了 10W。在首波抢购时,后台服务监控就已经显示服务器的各项指标都超过了 70%,CPU 更是一直处于 400%(4 核 CPU),数据库磁盘 I/O 一直处于 100% 状态。由于瞬时写入日志量非常大,导致后台服务监控在短时间内,无法实时获取到最新的请求监控数原创 2022-12-04 14:41:16 · 450 阅读 · 0 评论 -
Day806.生产者消费者模式 -Java 性能调优实战
使用生产者消费者模式来缓冲高并发数据库扣除库存压力,类似这样的例子其实还有很多。例如,平时使用消息队列来做高并发流量削峰,也是基于这个原理。抢购商品时,如果所有的抢购请求都直接进入判断是否有库存和冻结缓存库存等逻辑业务中,由于这些逻辑业务操作会增加资源消耗,就可能会压垮应用服务。此时,为了保证系统资源使用的合理性,可以通过一个消息队列来缓冲瞬时的高并发请求。生产者消费者模式除了可以做缓冲优化系统性能之外,它还可以应用在处理一些执行任务时间比较长的场景中。原创 2022-11-20 14:20:46 · 334 阅读 · 0 评论 -
Day177.ActiveMQ多节点集群 -ActiveMQ
ActiveMQActiveMQ多节点集群1、部署规划和步骤1、大概流程:如何保证高可用 ==》 搭建集群 ZooKeeper + Replicated LevelDB Store ==》 集群 http://activemq.apache.org/replicated-leveldb-store 这幅图的意思就是 Client们都连接Master,Slave不接收连接。当 Master 宕机后,zookeper 监测到没有心跳信号, 则认为 maste原创 2021-01-28 11:30:23 · 330 阅读 · 0 评论 -
Day173.入门概述&Linux安装 -ActiveMQ
AtiveMQ一、入门概述1、前言MQ == 消息中间件,消息、中间件消息:以一种双方约定好的格式作为一种信息的载体的传输媒介在网络上发布,然后获得信息的同步和资源的交换中间件:三个三角形,zookeeper、eureka、MQ的这种模式2、MQ的产品种类和对比MQ就是消息中间件。MQ是一种理念,ActiveMQ是MQ的落地产品。不管是哪款消息中间件,都有如下一些技术维度:掌握和了解了技术维度后去学习另外的MQ落地实现框架的方式方法是一样的(1) kafka编程语言:scal原创 2021-01-24 21:59:15 · 327 阅读 · 0 评论 -
Day175.ActiveMQ与Spring&SpringBoot整合【工作操作重点】 -ActiveMQ
ActiveMQ一、Spring整合ActiveMQ我个人的理解:我们之前介绍的内容也很重要,他更灵活,他支持各种自定义功能,可以满足我们工作中复杂的需求。很多activemq的功能,我们要看官方文档或者博客,这些功能大多是在上面代码的基础上修改完善的。如果非要把这些功能强行整合到spring,就有些缘木求鱼了。我认为另一种方式整合spring更好,就是将上面的类注入到Spring中,其他不变。这样既能保持原生的代码,又能集成到spring。不过将的Spring和SpringBoot整合ActiveM原创 2021-01-26 18:09:37 · 258 阅读 · 0 评论 -
Day177.高级特性 -ActiveMQ
ActiveMQ高级特性1 异步投递(1) 异步投递是什么自我理解:异步投递,是指生产者和broker之间发送消息的异步。不是指生产者和消费者之间异步。特征:① 不能有效保证消息的发送成功② 如果出现slowConsumer,可能会给Broker带来消息积压的可能官网介绍:http://activemq.apache.org/async-sends说明:对于一个Slow Consumer,使用同步发送消息可能出成Producer堵塞等情况,慢消费者适合使用异步发送。(这句话原创 2021-01-28 16:51:16 · 268 阅读 · 0 评论 -
Day176.ActiveMQ的消息储存和持久化 -ActiveMQ
ActiveMQActiveMQ的消息储存和持久化1.1 介绍(1) 此处持久化和之前的持久化的区别MQ高可用:事务、可持久、签收,是属于MQ自身特性,自带的。这里的持久化是外力,是外部插件。之前讲的持久化是MQ的外在表现,现在讲的的持久是是底层实现。通过独立的外部插件,如:文件储存、数据库等来做持久化备份,而不是单单储存在MQ数据库本身,加强了信息的高可用MQ如百度云盘,外部插件如本地硬盘(2)是什么:官网文档:http://activemq.apache.org/persist原创 2021-01-27 16:38:16 · 375 阅读 · 0 评论 -
Day174.AvtiveMQ控制台访问、Java编码实现[Topic&Queue] -ActiveMQ
ActiveMQ一、ActiveMQ控制台访问经过前置的操作,后台的服务已经启动,前台看不到61616是ActiveMQ的后台访问端口号8161是ActiveMQ的前台Web访问端口号linux虚拟机地址:192.168.109.101 ==>通过ip addr来查询win地址:192.168.109.1 ==>通过ipconfig查询自己遇到的问题:阿昌遇到的问题是windows无法访问linux的web前台,我已经关闭了win和linux的防火墙,但是发现还是无法访问,原创 2021-01-25 16:00:48 · 400 阅读 · 0 评论 -
Day174.JMS规范、JMS的可靠性【重要】、ActiveMQ的broker -ActiveMQ.md
ActiveMQ一、JMS规范复习一下:什么是JavaEE?【面试题】各个消息队列的比较:1.1 JMS是什么什么是Java消息服务?Java消息服务指的是两个应用程序之间进行异步通信的API,它为标准协议和消息服务提供了一组通用接口,包括创建、发送、读取消息等,用于支持Java应用程序开发。在JavaEE中,当两个应用程序使用JMS进行通信时,它们之间不是直接相连的,而是通过一个共同的消息收发服务组件关联起来以达到解耦/异步削峰的效果。1.2 消息头JMS的消息头有哪些属性:JM原创 2021-01-25 21:25:45 · 243 阅读 · 0 评论 -
Day175.ActiveMQ的传输协议 -ActiveMQ
ActiveMQActiveMQ的传输协议一、简介ActiveMQ支持的client-broker通讯协议有:TVP、NIO、UDP、SSL、Http(s)、VM。其中配置Transport Connector的文件在ActiveMQ安装目录的conf/activemq.xml中的< transportConnectors >标签之内。activemq传输协议的官方文档:http://activemq.apache.org/configuring-version-5-transports原创 2021-01-26 21:37:56 · 416 阅读 · 0 评论 -
Day542&543&544&545&Day546.kafka基础
kafka一、基础架构二、Kafka 快速入门1、集群规划2、集群部署下载地址1 )解压安装包:tar -zxvf kafka_2.12-3.0.0.tgz -C /opt/module/2 )修改解压后的文件名称:mv kafka_2.12-3.0.0/ kafka3 )进入到/opt/module/kafka 目录,修改配置文件cd config/vim server.properties输入以下内容:#broker 的全局唯一编号,不能重复,只能是数字原创 2022-02-21 20:00:05 · 8654 阅读 · 5 评论 -
Day548.Kafka相关外部系统整合 -kafka
Kafka相关外部系统整合一、集成 FlumeFlume 是一个在大数据开发中非常常用的组件。可以用于 Kafka 的生产者,也可以用于Flume 的消费者。1、Flume 生产者启动 kafka 集群zk.sh startkf.sh start启动 kafka 消费者bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic first配置 Flume在 hadoop102 节点原创 2022-03-02 23:06:37 · 2829 阅读 · 1 评论 -
Day549.kafka生产调优手册 -kafka
kafka生产调优手册一、Kafka 硬件 配置选择1、场景说明2、服务器台数选择3、磁盘选择4、内存选择Kafka 内存组成:堆内存 + 页缓存1)Kafka 堆内存建议每个节点:10g ~ 15g在 kafka-server-start.sh 中修改if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then export KAFKA_HEAP_OPTS="-Xmx10G -Xms10G"fi查看 Kafka 进程号:[atguigu@hadoop102原创 2022-03-03 23:03:38 · 2769 阅读 · 0 评论 -
Day550.kafka源码主内容解析 -kafka
kafka源码主内容解析一、源码环境准备源码下载地址安装 JDK&Scala:需要在 Windows本地安装 JDK 8或者 JDK8 以上版本。需要在 Windows本地安装 Scala2.12。加载源码:将 kafka-3.0.0-src.tgz源码包,解压到非中文目录。例如:D:\01_software\kafka-3.0.0-src。打开 IDEA,点击 File->Open…->源码包解压的位置。安装 gradle:Gradle是类似于 maven 的原创 2022-03-05 22:18:19 · 3461 阅读 · 0 评论 -
Day547.Kafka-Eagle监控&Kraft模式
Kafka-Eagle监控Kafka-Eagle框架可以监控 Kafka 集群的整体运行情况,在生产环境中经常使用。在此之前监控工具需要MySQL作为持久化手段。一、Kafka环境准备1、关闭 Kafka 集群# 停止集群kf.sh stop2、修改/opt/module/kafka/bin/kafka-server-start.shvim bin/kafka-server-start.sh修改如下参数值:if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then原创 2022-02-28 22:50:16 · 3541 阅读 · 3 评论 -
Day368&369&370.RocketMQ应用 -RocketMQ
RocketMQ应用一、普通消息1、消息发送分类Producer对于消息的发送方式也有多种选择,不同的方式会产生不同的系统效果。同步发送消息同步发送消息是指,Producer发出⼀条消息后,会在收到MQ返回的ACK之后才发下⼀条消息。该方式的消息可靠性最高,但消息发送效率太低。异步发送消息异步发送消息是指,Producer发出消息后无需等待MQ返回ACK,直接发送下⼀条消息。该方式的消息可靠性可以得到保障,消息发送效率也可以。单向发送消息单向发送消息是指,Producer仅原创 2021-08-23 23:02:49 · 1903 阅读 · 0 评论 -
Day362.RocketMQ概述 -RocketMQ
RocketMQ概述一、MQ概述1、MQ简介MQ,Message Queue,是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息生产、存储、消费全过程API的软件系统。消息即数据。一般消息的体量不会很大。2、MQ用途从网上可以查看到很多的关于MQ用途的叙述,但总结起来其实就以下三点。限流削峰MQ可以将系统的超量请求暂存其中,以便系统后期可以慢慢进行处理,从而避免了请求的丢失或系统被压垮。异步解耦上游系统对下游系统的调用若为同步调用,则会大大降低系统的吞吐量与原创 2021-08-17 22:53:34 · 1785 阅读 · 5 评论 -
Day366&367.RocketMQ工作原理 -RocketMQ
RocketMQ工作原理一、消息的生产1、消息的生产过程Producer可以将消息写入到某Broker中的某Queue中,其经历了如下过程:Producer发送消息之前,会先向NameServer发出获取消息Topic的路由信息的请求NameServer返回该Topic的路由表及Broker列表Producer根据代码中指定的Queue选择策略,从Queue列表中选出一个队列,用于后续存储消息Produer对消息做一些特殊处理,例如,消息本身超过4M,则会对其进行压缩Producer向选择原创 2021-08-21 19:12:15 · 1867 阅读 · 1 评论 -
Day363&364&365.RocketMQ的安装&启动 -RocketMQ
RocketMQ的安装与启动一、基本概念1 、消息(Message)消息是指,消息系统所传输信息的物理载体,生产和消费数据的最小单位,每条消息必须属于一个主题。2、 主题(Topic)Topic表示一类消息的集合,每个主题包含若干条消息,每条消息只能属于一个主题,是RocketMQ进行消息订阅的基本单位。 topic:message 1:n message:topic 1:1一个生产者可以同时发送多种Topic的消息;而一个消费者只对某种特定的Topic感兴趣,即只可以订阅和消费一种Topic原创 2021-08-18 22:40:42 · 1920 阅读 · 0 评论 -
Day427.RabbitMQ消息队列--1 -谷粒商城
RabbitMQ消息队列–1一、MQ队列介绍1、MQ全称 Message Queue,被称为消息队列2、回顾队列队列,一种类似于 List 的数据结构,专门来存储数据的队列如果要往队列中存数据的话可以从队头中存,1先进,存到队列中就是这样:3 -> 2 -> 1,从队尾取的时候,1先出,结果就是这样:1 -> 2 -> 3,这是很典型的先进先出队列如果存的方式与上面一样:3 -> 2 -> 1,而取的时候从队头取,3先出,结果就变成了这样:3 -原创 2021-10-22 22:45:47 · 1048 阅读 · 1 评论 -
Day428.RabbitMq消息队列--2 -谷粒商城
RabbitMq消息队列–2 -谷粒商城一、RabbitMQ消息确认机制1、可靠抵达在分布式系统中,比如现在有很多微服务,微服务连接上消息队列服务器,其它微服务可能还要监听这些消息,但是可能会因为服务器抖动、宕机,MQ 的宕机、资源耗尽,以及无论是发消息的生产者、还是收消息的消费者,它们的卡顿、宕机等各种问题,都会导致消息的丢失,比如发送者发消息的时候,给弄丢了 ,看起来消息是发出去了,MQ网络抖动没接到, 或者MQ接到了,但是它消费消息的时候,因为网络抖动又没拿到,等等各种问题所以在分布式系原创 2021-10-23 23:22:50 · 1099 阅读 · 0 评论 -
Day650.MQ异步处理问题 -Java业务开发常见错误
Hi,我是阿昌,今天学习记录分享的是关于。是互联网应用不可或缺的一种架构模式,大多数业务项目都是由同步处理、异步处理和定时任务处理三种模式相辅相成实现的。区别于同步处理,异步处理无需同步等待流程处毕,因此适用场景主要包括:同时,异步处理因为可以有 MQ 中间件的介入用于任务的缓冲的分发,所以相比于同步处理,在应对流量洪峰、实现模块解耦和消息广播方面有功能优势。不过,异步处理虽然好用,但在实现的时候却有三个最容易犯的错,分别是异步处理流程的可靠性问题、消息发送模式的区分问题,以及大量死信消息堵塞队列的问题。先原创 2022-06-17 23:53:28 · 2004 阅读 · 0 评论 -
Day450&451&452.Kafka架构深入&KafkaAPI -kafa
Kafka 架构深入一、Kafka 工作流程及文件存储机制工作流程每个分区中,对应的offset偏移量为区内有序,不是全局有序Kafka 中消息是以 topic进行分类的,生产者生产消息,消费者消费消息,都是面向 topic的。topic 是逻辑上的概念,partition 是物理上的概念。每个 partition 对应于一个 log 文件,该 log 文件中存储的就是 producer 生产的数据。Producer 生产的数据会被不断追加到该log 文件末端,且每条数据都有自己的 o原创 2021-11-14 18:20:28 · 2504 阅读 · 3 评论 -
Day449.kafka概述&快速入门 -kafka
Kafka 概述一、定义Kafka 是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。二、消息队列1、传统消息队列的应用场景MQ传统应用场景之异步处理异步、削峰、解耦使用消息队列的好处1)解耦允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。2)可恢复性系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复原创 2021-11-13 17:53:28 · 2691 阅读 · 0 评论 -
RocketMQ集群如何打开消息轨迹的追踪?
RocketMQ集群如何打开消息轨迹的追踪?对于一个消息,我想要知道,这个消息是什么时候从哪个Producer发送出来的?他在Broker端是进入到了哪个Topic里去的?他在消费者层面是被哪个Consumer什么时候消费出来的?一、操作我们有时候对于一条消息的丢失,可能就想要了解到这样的一个消息轨迹,协助我们去进行线上问题的排查,所以此时就可以使用RocketMQ支持的消息轨迹功能,我们看下面的配置过程。首先需要在broker的配置文件里开启traceTopicEnable=true这个选项,此原创 2021-07-03 17:51:47 · 2500 阅读 · 0 评论 -
企业级的RocketMQ集群如何进行权限机制的控制?
企业级的RocketMQ集群如何进行权限机制的控制?一、前言RocketMQ的权限控制的功能,简单来说,如果一个公司有很多技术团队,每个技术团队都会使用RocketMQ集群中的部分Topic,那么此时可能就会有一个问题了,如果订单团队使用的Topic,被商品团队不小心写入了错误的脏数据,那怎么办呢?可能会导致订单团队的Topic里的数据出错。所以此时就需要在RocketMQ中引入权限功能,也就是说规定好订单团队的用户,只能使用“OrderTopic”,然后商品团队的用户只能使用“ProductTopi原创 2021-07-03 17:27:50 · 627 阅读 · 1 评论 -
Day312.RocketMQ集群进行OS内核&JVM参数的调整 -RocketMQ
RocketMQ集群进行OS内存&JVM参数的调整为了让RokcetMQ发挥最佳的性能,对OS内存&JVM参参数进行优化调整因为RokcetMQ由Java代码编写,那么JVM的底层的内核参数,会直接影响RokcetMQ的性能一、对OS内核参数进行调整1、vm.overcommit_memoryos内核内存分配策略填写值:0:表示内核将检查是否有足够的可用内存供应用进程使用;如果内存足够的话就分配内存给你如果感觉剩余内存不足,就拒绝你的申请,导致你申请内存失败,进而原创 2021-06-28 14:01:51 · 1086 阅读 · 0 评论 -
Day306.中间件的功能&对比
中间件功能&对比一、中间件的功能1、MQ的异步1)同步的概念同步:用户发起一个请求,系统A收到请求,接着系统A必须立马去调用系统B,直到系统B返回了,系统A才能返回结果给用户,不是那种学术型的解释2)中间件实现异步用户发起①请求给系统A,系统A收到请求并②发送消息给MQ,系统A发送消息成功,MQ接收到小心后系统A就③返回用户结果,根据MQ和系统B的情况,系统B④拿到获取消息,整个过程异步执行,分工明确2、MQ的削峰大量用户发起请求,系统A然后发送过来的每秒1万请求是一个流原创 2021-06-22 11:55:00 · 400 阅读 · 0 评论