zoukankan      html  css  js  c++  java
  • JMS

    192.168.200.128:8161

    什么是Jms
    jms全称叫做java message service (java消息服务)是jdk底层定义的协议.各大厂商都有实现的产品.

    JMS的作用:
    jms的作用是在系统也系统间进行异步传递数据
    同步:
    a系统调用B系统中的方法, a发送请求调用让B系统执行, 之后后返回结果. a系统一直等待B处理完成后返回结果
    再继续往下执行代码, 如果B没有返回结果之前, A系统一直处于等待状态.
    例如: dubbo, springCloud, webService
    异步:
    A发送消息(一条数据)向消息服务器, 消息服务器再将消息(数据)发送给B系统.
    A将消息发送给消息服务器后, 不会等待, 立即执行下面的代码或者是操作, 不会等待B系统的执行.
    例如: JMS技术, activeMq, rabbitMq, roketMq, zeroMq, kafka

    jms在企业中的作用一般适用于以下几种场景:
    a. 系统和系统间解耦
    b. 使用JMS技术可以抗住流量压力洪峰
    c. 广播发送, 系统间可以解耦并且, 将串行执行改为并行执行, 加快执行效率, 合理分配硬件资源.

    JMS的同类型产品(重点):
    a. activeMq: 一个老牌的apache下的消息中间件产品, 特点就是均衡, 不是最安全的也不是最快的.
    b. rabbitMq: 比较安全, 保证数据不发丢.
    c. zeroMq: 史上最快的队列系统, 可以用它来抗住压力洪峰.
    d. kafka 史上发送接收速度最快的消息中间件产品(一般大数据使用), 对于数据安全性完全不考虑
    e. roketMq: 一般使用roketMq来实现分布式事务(数据最终一致性方案), roketMq中有分布式消息级别事务的支持.
    roketMq是阿里巴巴公司研发, 现已经捐献给apache, 所以现在是apache的顶级项目.

    JMS支持的发送和接收的数据类型(重点):
    • TextMessage--一个字符串对象    (纯文本)
    • MapMessage--一套名称-值对  (web类型消息)
    • ObjectMessage--一个序列化的 Java 对象 (onject类型包含实体类---一定要实现序列化接口)
    • BytesMessage--一个字节的数据流  (字节流)
    • StreamMessage -- Java 原始值的数据流     (io流)


    JMS的两种发布模式(重点):
    queue发送模式(点对点模式):
    一个消息发送方, 一个消息接收方. 也可以是多个消息发送方, 一个消息接收方. (一个接收方)
    topic主题发送模式(发布订阅模式):
    一个消息发送方, 多个消息接收方, 也可以是多个消息发送方, 多个消息接收方. (多个接收方)


    activeMq中两种发送模式的特点:
    点对点发送模式(Queue):
    一个发送方, 一个接收方. 它绝对安全, 能够保证接收方一定会接收到数据.使用消息服务器内部机制实现.
    不用认为去考虑数据安全性问题.
    内部实现保证数据安全性的原理:
    1. 发送方将数据发送给消息服务器
    2. 消息服务器在队列中保存消息, 先进先出, 将数据发送给接收方
    3. 如果接收方没有宕机成功接收了消息, 则返回响应给消息服务器, 消息服务器
    接收到响应后会将发送成功的数据从队列中删除
    4. 如果接收方宕机, 那么在一定的时间内没有返回响应给消息服务器, 消息服务器认为,
    消息发丢了, 则将队列中没有发送成功的数据持久化到消息服务器的硬盘上.
    5. 如果宕机的消息接收方重启后, 会连接消息服务器, 消息服务器会再次将持久化的数据发送给
    消息接收方, 消息接收方接收到数据后会返回响应, 消息服务器接收到响应收将持久化的数据
    删除.发送成功.
    订阅发布模式(topic):
    一个发送方, 多个接收方, 发送接收数据不安全, 一旦接收方宕机, 数据有可能接收不到, 丢失.无法找回.
    如果想要数据安全, 换用其他消息中间件技术.

    积少成多, 积沙成塔.
  • 相关阅读:
    后端——框架——视图层框架——spring_mvc——《官网》阅读笔记——第一章节26(过滤器,ShallowEtagHeaderFilter)
    后端——框架——视图层框架——spring_mvc——《官网》阅读笔记——第一章节27(过滤器,CorsFilter)
    后端——框架——视图层框架——spring_mvc——《官网》阅读笔记——第一章节28(过滤器,其他Filter)
    后端——框架——视图层框架——spring_mvc——《官网》阅读笔记——第一章节29(注解,Controller类注解)
    后端——框架——视图层框架——spring_mvc——《官网》阅读笔记——第一章节30(注解,Handler方法注解)
    任务日历关联(Project)
    新建日历(Project)
    例外日期(Project)
    自定义日历(Project)
    日历的种类(Project)
  • 原文地址:https://www.cnblogs.com/lei0913/p/10851337.html
Copyright © 2011-2022 走看看