java消息服务初步学习(基于springinaction的整理)

     2022-03-26     721

关键词:

几个名词

  • Java消息服务(Java Message Service)是一个Java标准,定义了使用消息代理的通用API。
  • 消息代理(message broker):类似于邮局的作用,确保消息被投递到指定的目的地。
    • ActiveMQ
    • Kafka
  • 目的地(destination)
    • 队列(queue,点对点模型):消息可以有多个接收者,但每一条消息只能被一个接收者取走。
    • 主题(topic,点对线模型):订阅此主题的订阅者都会接收到此消息的副本。

异步消息相较于同步消息的优点

  • 时间:异步消息不需要等待服务端的返回,只需发送消息即可。
  • 地点:不依赖于服务端的网络位置。
  • 解耦:不需要了解服务端的服务接口。
  • 安全:即使消息发送时,服务端无法正常运行服务,消息也会被存储起来,直到服务重新可以使用为止。

Spring对JMS的支持,包括JmsTemplate和消息驱动POJO

  • JmsTemplate作用:消除冗长和重复的JMS代码,可以创建连接、获得会话以及发送和接收消息,使开发者专注于构建要发送的消息或处理接收到的消息,捕获抛出的JMSException异常的子类检查型异常,并重新抛出对应JMSException异常的子类非检查型异常。
  • 消息驱动bean(message-driven bean,MDB):不必主动查看队列或主题中是否有消息(返回或超时),被动等待消息到达的通知,解决同步消息在消息可用前的阻塞问题。

kafka初步学习

消息系统什么是消息系统?消息系统负责将数据从一个应用程序传输到另一个应用程序,因此应用程序可以专注于数据,但不担心如何共享它。分布式消息传递给予可靠消息队列的概念。消息在客户端应用程序和消息传递系统之... 查看详情

rsyslog初步学习

一、Rsyslog整体架构 Rsyslog消息流:输入模块——>预处理模块——>主队列——>过滤模块——>执行队列——>输出模块1.输入模块  输入模块是消息来源  2.预处理模块  主要解决各种syslog协议实现间的差... 查看详情

jms学习

1.为什么使用JMS(java消息中间件)javamessageservice   为了解决一个系统对服务调用进行解耦(在一个系统需要调用多个服务的时候,需要通过中间件来进行消息进行交流)2.AMQP协议:  即AdvancedMessageQueuingProtocol,一个提供... 查看详情

kafka初步学习(代码片段)

一、官网教程案例学习 Kafka—分布式消息队列 消息系统消息中间件:缓冲于生产与消费中间缓冲满了,可以进行Kafka的扩容 特性:水平扩展性、容错性、实时、快  Kafka架构:  理解producer、consumer、broke... 查看详情

微服务架构问题(springcloud初步认知)

微服务架构问题四个核心问题1.服务如何去访问?2.服务如何进行通信?3.服务如何治理?4.服务挂了怎么办?在Java生态上,构建是基于SpringBoot,协调是基于SpringCloud,以下所有架构,全部基于以上4个问题进行解决1.netflix一站式... 查看详情

javascript学习js的初步了解

1、javascript的简介:     *javascript是一种基于对象和事件驱动的语言,主要应用于客户端。         --基于对象:             **提供了很多对象,可以直接使用。         -... 查看详情

java初步学习helloword

java初步学习helloword发表于2012-08-1608:05:12by 月小升 1.下载javaJDKhttp://www.oracle.com/technetwork/java/javase/downloads/index.html2.安装JDK3.打开命令行输入java按下Enter你会看到Usage:java[-options]class[args...](to 查看详情

初步学习fineuploader(java)

一、认识FineUploader的功能:进入示例网站:https://fineuploader.com/demos.html#basic-setup;二、准备相关的js,css BuildFineUploaderyourselffromtheGitHubrepogitclonehttps://github.com/FineUploader/fine-uploader.gitcdfine- 查看详情

consul初步学习

简介consul是一个服务发现框架类似的还有zookeeper,eureka,etcd等作用服务发现(servicediscovery)健康检查(healthchecking)配置存储管理(key/valuestorage)可支持任意数量的区域:multi-datacenteconsul与eureka比较最大的区别是Eureka保证AP,Cons... 查看详情

java中的datagrampacket与datagramsocket的初步

...送成功,接收方收到数据时也不会  向发送方反馈成功消息,容易导致 查看详情

rabbitmq学习第一记:用java连接rabbitmq

1、什么是RabbitMQ  MQ(MessageQueue):消息队列,是服务端设计的一个可以存储大量消息的队列,并提供客户端操作队列的方法:生产队列(向队列中添加数据)、消费队列(从队列中取数据)。RabbitMQ就是基于消息队列的一个... 查看详情

lagom学习

...的系统,分布式系统的复杂性。通信默认是异步的,基于消息(akkaactor)和流(akkastream)——但是,如果需要的话,也可以考虑同步的REST。 查看详情

actor模式初步入门

...一直在做Unity相关的业务,不知不觉中感觉已经不在关注服务器相关的技术了。一次偶然的机会再腾讯的gad平台上观看了云风在15年在腾讯做的skynet讲座(http://gad.qq.com/content/coursedetail/467),skynet是用c写的核心,lua做上层业务,... 查看详情

java注解的初步学习

注解语法public@interfaceLength{}说明:通过关键字@interface定义,并不是接口;注解的属性注解的属性也叫做成员变量。注解只有成员变量,没有方法。注解的成员变量在注解的定义中以“无形参的方法”形式来声明,其方法名定义... 查看详情

02后端初步学习笔记

...常用指令cmd/powershell部分mysqld--install/--remove?安装/移除mysql服务netstart/stopmysql?启动/关闭mysql服务mysql-uroot-p?以root用户登陆mysql?mysql部分showdatabases;?查看数据库use库名称;?使用某个数据库showtables;?查看这个库里的表select 查看详情

基于apachespark机器学习的客户流失预测

...流失预测是个重要的业务,通过预测哪些客户可能取消对服务的订阅来最大限度地减少客户流失。虽然最初在电信行业使用,但它已经成为银行,互联网服务提供商,保险公司和其他垂直行业的通用业务。预测过程是大规模数据... 查看详情

spring源码学习的初步体会

Spring源码学习的初步体会:深入学习和巩固java的基础知识,其中的java知识范围全部,可以边研究源码边巩固复习基础知识体会其中用到的设计思想:其中包含的设计原则和设计模式.加深对spring的理解,在业务开发中使用spring更... 查看详情

关于自动化测试平台搭建的初步构想

...。下面就以接口测试为例,接口测试一般抓包后需要进行消息体的构造,有人喜欢用postman工具直接保存接口,有人喜欢直接使用fiddler等其他的工具,这样不同的测试人员各自工具不统一、各自用例也不统一。前者新人来了接手... 查看详情