1.消息中间件定义
MOM:Message-Oriented Middleware 面向消息的系统是在分布式系统中完成消息的发送和接受的基础软件
几个要点:
- 远程过程调用和对象访问中间件
- 主要解决分布式环境下应用的互相访问问题
- 消息中间件
- 解决应用之间的消息传递、解耦和异步的问题
- 数据访问中间件
- 解决应用访问数据库的共性问题的组件
2. 中间件的基础知识
2.1 跨平台的Java运行环境—JVM
JVM是Java中间件运行的基础平台。
从源码到字节码再到不同平台的执行过程
2.2 垃圾回收和内存堆布局
堆内存布局
GC回收机制(Hotspot)
针对新生代:
- 串行GC:Serial Copying
- 并行GC:ParNew
- 并行回收:Parallel Scavenge
针对老生代
- 串行GC:Serial MSC
- 并行MS GC:Parallel MSC
- 并行Compating GC:Parallel Compacting
- 并发GC:CMS
3.分布式系统中的Java中间件
中间件用来解决网站的应用拆分,服务拆分,数据拆分和应用解耦。
服务框架帮助我们解决应用拆分,完成服务化;数据层帮助我们完成数据的拆分以及整个数据的管理、库容、迁移等工作;消息中间件帮助我们完成应用的解耦。
引入消息中间件的结构图
在WebApp和Service之间通过服务框架解决集群间的通信问题;在应用和数据库之间,通过分布式数据层让引用可以方便的访问被分库分表的数据库节点;数据复制/迁移可以更好的完成数据分布。