目录
5、消息中间件的两种模型(Messaging Models):Queue and Topic
8、简单的消息队列 java.util.concurrent.ArrayBlockingQueue
12、被JNDI名字空间管理的对象ConnectionFactory和Destination
14、ActiveMQ及其支持的协议:AMQP、OpenWire、Stomp、MQTT and WS
第一章 中间件概述知识点
1、什么是软件平台和中间件?了解中间件背景
软件平台是指用来构建与支撑应用软件的独立软件系统(A software platform is an Independent software systems used to build and support application software),它是开发与运行应用软件的基础,是任何一个应用软件得以实现与应用的必要条件。
For example: operating system, database, middleware, JavaEE,and so on.(举例:操作系统、数据库、中间件)
中间件是一种独立的系统软件服务程序(Middleware is an independent system software service program)
2、中间件的分类
- UDA(universal data access):数据访问中间件
数据访问中间件是为了建立数据应用资源互操作的模式,对异构环境下的数据库实现连接或文件系统实现连接的中间件。例如:JDBC。
- RPC(Remote Procedure access):远程过程调用中间件
一个应用程序使用RPC来远程执行一个位于不同地址空间的过程,从效果上看和执行本地调用相同
- MOM(Messaage Oriented Middleware):消息中间件
消息中间件是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。例如:ActiveMQ、Kafka等
- TPM(Transaction Processing Monitors):交易中间件
- ORB(Object Request Broker):对象中间件
ORB提供了一个标准的构件架构,能使不同厂家的软件通过不同的地址空间、网络和操作系统实现交互访问。
- AS(Application Server):应用服务器
3、中间件技术的优势
- 满足大量应用的需求
Meet the needs of a large number of applications
- 运用于多种硬件、数据及操作系统平台
It is used in various hardware, database and operating system platforms
- 支持分布式计算,支持互操作性
Support distributed computing and interoperability
- 支持标准协议:HTTP、SOAP、SMTP、AMQP......
Support standard protocols: http, soap, SMTP, AMQP
- 支持标准的接口(组件接口)
Support standard interface (component interface): JMS
- 节省应用开发,减少初期投入资金,缩短开发周期,减少项目开发风险,应用集成,系统维护方便,简洁而且省钱
Save application development, reduce initial investment, shorten development cycle, reduce project development risk, application integration, system maintenance is convenient, simple and cost-effective
4、框架与中间件的区别
框架是半成品可扩展,中间件是成品可独立运行也可扩展
5、论述:中间件技术在应用技术软件开发中的作用?
中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。中间件带给应用系统的,不只是开发的简便、开发周期的缩短,也减少了系统的维护、运行和管理的工作量,还减少了计算机总体费用的投入。
第二章 ORM与UDA
1、JDBC驱动类型
第一类:JDBC—ODBC桥驱动,把JDBC操作翻译成对应的ODBC调用
第二类:本地API驱动,通过客户端加载数据库厂商提供的本地代码库来访问数据库
第三类:网络协议的驱动,给客户端提供了一个网络API,客户端上的JDBC驱动程序使用套接字来调用服务器上的Middleware,然后再转换成具体的API调用
第四类:本地协议驱动,数据库可用的最高性能驱动程序,通常由供应商提供,使用Socket直接在客户端与数据库间通信
第三章 AS和JavaEE
1、什么是应用服务器?
An application server’s fundamental job is to provide its clients with access to what is commonly called business logic, which generates dynamic content.
(应用服务器的基本工作是为其客户机提供对通常称为业务逻辑的访问,业务逻辑生成动态内容。)
2、什么是web服务器?
A web server’s fundamental job is to accept and fulfill requests from clients for static content from a website.
(web服务器的基本工作是接受和满足客户对网站静态内容的请求。)
第四章 MOM消息中间件
1、什么是消息中间件?
Message-oriented middleware (MOM) is software infrastructure supporting sending and receiving messages between distributed systems.
(面向消息的中间件(MOM)是支持在分布式系统之间发送和接收消息的软件基础设施。)
2、企业为什么需要消息中间件?
- 利用MQ可以实现企业/部门之间的数据交换
- 实现企业级大规模数据传送
3、消息中间件的应用场景
- 异步处理:相比于传统的串行、并行方式,提高了系统吞吐量Throughput(TPS)
- 应用解耦:
- 流量削峰:可以通过消息队列长度控制请求量;可以缓解短时间内的高并发请求
- 日志处理
- 消息通讯
4、消息幂等性(接口幂等性)
接口幂等性:在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。
消息幂等性:即使多次收到消息,也不会重复消费,消息的幂等性就是保证消息不会重复消费。
例如:用户点击付款,不论点击多少次,只扣费一次
5、消息中间件的两种模型(Messaging Models):Queue and Topic
Queue(point to point messaging),特点如下:
- 消息由发布者发送到特定的接受者。
- 消息由指定的消费者消费
- 对应用程序没有约束
- 消息被消费后队列中不再存储,所以消费者不会消费到已经被消费掉的消息
Topic(publish /subscribe messaging),特点如下:
- 发布者可将消息发布到主题,用户根据主题或内容接收消息
- 生产者将消息发布到Topic中,每个消息可以有多个消费者,是1:N的关系
- 通过配置文件将拉取的数量改为0,则变为不允许主动推送消息,由用户主动