消息类型-2工作模式-公平派发

100 未经授权,禁止转载了解课程
课程介绍
讨论{{interaction.discussNum ? '(' + interaction.discussNum + ')' : ''}}
适合人群
Java工程师,Java初学者
你将会学到
消息队列与工作流 视频课程
课程简介

RabbitMQ

        1、MQ简介

                MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列

                的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送

                数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。

        2、MQ消息中间件

                消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性

                等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、

                RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。

                Kafka 是一种分布式的MQ。

        3、AMQP协议 & JMS规范

                AMQP即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层

                协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间

                件不同产品,不同开发语言等条件的限制。

                优点:可靠、通用

                JMS(Java Messaging Service)是Java平台上有关面向消息中间件(MOM)的技术规范,它便于消息系统中的Java

                应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发,翻译为Java消息服

                务。

                比如,ActiveMQ 是基于JMS规范的MQ产品 RabbitMQ是实现AMQP协议的MQ产品

        4、RabbitMQ

                RabbitMQ在全球范围内在小型初创公司和大型企业中进行了超过35,000次RabbitMQ生产部署,

                源消息代理。RabbitMQ轻量级,易于在内部和云中部署。它支持多种消息传递协议。RabbitMQ可以部署在分布式

                和联合配置中,以满足高规模,高可用性要求。

                安装 RabbitMQ

                1、Erlang 环境

                2、安装RabbitMQ服务

                准备: 计算机名要用英文,关闭安全软件。

Activiti工作流框架

    学习内容

            1. 工作流的概念

            2. Activiti概述

            3.Activiti入门程序

            4.Activiti核心API

            5.流程定义、流程实例、流程变量

            6.流程定义语言元素

            7.Spring框架集成

    一.工作流的概念

        1.工作流的的定义

            将业务流程拆分成多个任务,然后有多个角色(人,系统 参与者)完成各个任务。按照某种预定义的规则传递

            文档,信息以及任务。

            例如,请假流程。张三提交申请,由他的上司去审批(多个 李四是部门经理,王五项目经理...)

            工作流的管理系统:他是一个软件,定义和管理流程。

    二.Activiti概述

        工作流(Workflow),指“业务过程的部分或整体在计算机应用环境下的自动化”。是对工作流程及其各操作步

        骤之间业务规则的抽象、概括描述。在计算机中,工作流属于计算机支持的协同工作(CSCW)的一部分。后者是

        普遍地研究一个群体如何在计算机的帮助下实现协同工作的。

    

        1.Activiti简介

                Activiti是Alfresco软件在2010年发布的一个业务流程管理框架。

                Activiti前身其实就是jBPM。

                JBPM后来被JBoss收购了,JBPM的主要创始人后来离开了JBoss。后来又写了一个工作流框架,这个框架就是

                Activiti。

        2.Activiti特点

                工作流引擎。负责生成流程运行时的各种实例,数据,监控以及管理流程

                遵循BPMN2.0(Business Process Model And Notation 标注)。定义了很多的基本符号,业务流程图

                数据库的支撑。表有特点的。表名称由ACT_xxx

                ACT_RE_xxx:repository。流程定义以及流程数据

                ACT_RU_xxx:runtime。流程实例、任务,流程变量

                ACT_GE_xxx:general。

                ACT_HI_xxx:history。

                ACT_ID_xxx:identity。身份信息,用户,组的数据

 

Quartz概述

        Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使

        用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或

        EJBs。Quartz的**版本为Quartz 2.3.0。

           

    应用场景

    - 在固定的某一个时间点系统去做一件事

    - 例如:每天凌晨3点系统向用户发送邮件

Nginx概述

        1.Nginx是什么

            - Nginx是一个高性能的**反向代理**服务器

            - Nginx也是一个Web服务器,主要用来实现**负载均衡**。也是一个邮件服务器

            - Nginx使用C语言开发。由一个俄罗斯人(伊戈尔·赛索耶夫)开发

            - Nginx优点

            - 解决高并发问题

            - 解决负载均衡问题

        二.正向代理和反向代理

            1.正向代理

                    - 客户端发送请求,客户端与服务器之间有一台代理服务器。代理服务器拦截请求,由代理服务器向远程

                    服务器获取数据,然后再将数据发送给客户端,一般正向代理都需要在客户端进行相关配置;

                    Nexus服务

            2.反向代理

                    - 对于客户端而言,代理服务器就是远程服务器,而且客户端不需要关注远程服务器在哪里。

                    - 而是由代理服务器调用服务,然后再将请求转发,一般反向代理不需要再客户端进行相关配置

            3.软件架构的演变

                    3.1 单体应用(ALL-IN-ONE)

                    3.2 集群架构

                    3.3 集群与分布式综合架构

展开更多
发布
头像

{{ item.user.nick_name }} {{ EROLE_NAME[item.user.identity] }}

置顶笔记
讨论图
{{ item.create_time }}回复
  • 删除

    是否确认删除?

    确认
    取消
  • {{ item.is_top == 1 ? '取消置顶' : '置顶'}}

    已有置顶的讨论,是否替换已有的置顶?

    确认
    取消
{{ tag.text}}
头像
{{ subitem.user.nick_name }}{{ EROLE_NAME[subitem.user.identity] }}
{{ subitem.create_time }}回复
删除

是否确认删除?

确认
取消
发布
{{pageType === 'video' ? '讨论区抢占沙发,可获得双倍学分' :'讨论区空空如也,你来讲两句~'}}
发布
{{tips.text}}
{{ noteHeaderTitle }} 笔记{{ hasMyNote ? '我的笔记' : '记笔记' }}
{{ hasMyNote ? '我的笔记' : '记笔记' }}
优质笔记
更新于:{{ $dayjs.formate('YYYY-MM-DD HH:mm:ss', item.last_uptime*1000) }}
头像
{{ detail.username }}

公开笔记对他人可见,有机会被管理员评为“优质笔记”

{{ noteEditor.content.length }}/2000

公开笔记
保存
提问

讲师收到你的提问会尽快为你解答。若选择公开提问,可以获得更多学员的帮助。

记录时间点
记录提问时视频播放的时间点,便于后续查看
公开提问
提交