一、内存与线程

1、内存结构

内存是计算机的重要部件之一,它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平。JVM的内存结构规定Java程序在执行时内存的申请、划分、使用、回收的管理策略,通说来说JVM的内存管理指运行时数据区这一大块的管理。

mysql查看线程池 mysql线程安全吗_JVM

RabbitMQ:

优点:轻量,迅捷,容易部署和使用,拥有灵活的路由配置
缺点:性能和吞吐量较差,不易进行二次开发

RocketMQ:

优点:性能好,稳定可靠,有活跃的中文社区,特点响应快
缺点:兼容性较差,但随意影响力的扩大,该问题会有改善

ActiveMQ:

目前,消息队列在各大互联网平台,尤其是电商平台如京东、淘宝、去哪儿等网站有着深入的应用,主要作用是高并发访问高峰,通过异步消息模式减少网站响应时间,提高系统吞吐量。ActiveMQ作为众多MQ中的一员,而且也是最老牌的一员,有其优势:1)多编程语言多协议支持。2)完全支持JMS1.1和J2EE 1.4规范 3)对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去 4)从设计上保证了高性能的集群。

Kafka:

优点:拥有强大的性能及吞吐量,兼容性很好
缺点:由于“攒一波再处理”导致延迟比较高,有可能消息重复消费

作为一个有着丰富经验的微服务架构师,经常有人问我:“应该选择 MQ 还是 Kafka ?”。基于某些原因,许多开发者会把这两种技术当作等价的来看待。的确,有些案例场景下选择 RabbitMQ 还是 Kafka 没什么差别,但是这两种技术在底层实现方面是有许多差异的。不同场景需要不同的解决方案,选错一个方案能够严重的影响你对软件的设计,开发和维护的能力。

小编这期的专题总结市面上不常见到的技术点拉满的四大主流消息中间件学习笔记,归类整理了MQ(ActiveMQ/RabbitMQ/RocketMQ)+Kafka等的纯手写的实战+原理整合笔记,有需要的同学文末自取!

第一份资料:Kafka实战笔记

mysql查看线程池 mysql线程安全吗_面试_02

  • Kafka入门
  • 为什么选择Kafka
  • Karka的安装、管理和配置

mysql查看线程池 mysql线程安全吗_经验分享_03

  • Kafka的集群
  • 第一个Kafka程序
  • Kafka的生产者

mysql查看线程池 mysql线程安全吗_经验分享_04

mysql查看线程池 mysql线程安全吗_JVM_05

  • Kafka的消费者
  • 深入理解Kafka
  • 可靠的数据传递

mysql查看线程池 mysql线程安全吗_mysql查看线程池_06

mysql查看线程池 mysql线程安全吗_面试_07

  • Spring和Kalka的整合
  • Sprinboot和Kafka的整合
  • Kafka实战之削峰填谷
  • 数据管道和流式处理(了解即可)

mysql查看线程池 mysql线程安全吗_java_08

Kafka实战之削峰填谷

mysql查看线程池 mysql线程安全吗_java_09

第二份资料:ActiveMQ实战笔记

mysql查看线程池 mysql线程安全吗_JVM_10

  • ActiveMQ入门
  • ActiveMQ的安装

mysql查看线程池 mysql线程安全吗_mysql查看线程池_11

mysql查看线程池 mysql线程安全吗_java_12

  • 原生JMS API操作ActiveMQ
  • Spring与ActiveMQ整合

mysql查看线程池 mysql线程安全吗_面试_13

mysql查看线程池 mysql线程安全吗_经验分享_14

  • SpringBoot与ActiveMQ整合
  • ActiveMQ消息组成与高级特性
  • ActiveMQ企业面试经典问题

mysql查看线程池 mysql线程安全吗_java_15