首页  

《Java应用架构设计:模块化模式与OSGi》读书笔记     所属分类 OSGI 浏览量 944
微服务 模块化  Java9 Jigsaw 


模块定义
软件模块是独立可部署的、可管理的、进程内可重用的、无状态的软件单元。
可管理即模块可以安装、卸载和更新。 
在Java中,模块就是jar包。 
与分布式服务不同的是,这里的模块是进程内重用 
模块是比服务更小的单元

动态模块化技术如OSGi 尚未普及
微服务 更流行  , 微服务架构更优

应用  模块 包 类 


模块化模式 基本模式 管理关系:设计模块之间的关系 模块重用:强调模块级别的重用 模块内聚:模块的行为应该只服务于一个目的 依赖模式 非循环关系:模块之间的关系非循环依赖 等级化模块:模块关系是等级化的,物理分层旨在为组成应用的分层创建多个模块,更多是与职责相关,而等级与理解系统的结构和关系更为密切,比分层更为细粒度,一个分层可能会有多个等级。 物理分层:模块关系不影响物理分层,如展现、领域、DAO。 容器独立:模块不依赖于具体容器,采用轻量级容器,如Spring 独立部署:模块可独立部署 可用性模式 发布接口:暴露API 外部配置:使用独立的配置文件用于不同的上下文。外部化配置增加了模块的重用行,但降低的易用性。如一个提供连接池的模块,user,password通过配置文件配置而不是硬编码在模块中,这就方便重用,但会使得易用性降低,因为使用之前必须配置对应的上下文 默认实现:为模块接口提供默认实现,并提供扩展机制,默认实现有助于在重用和易用之间取得平衡。如dubbo的扩展点机制 模块门面:为底层细粒度模块创建一个门面,提供高层API协调一组细粒度模块的行为 扩展性模式 抽象化模块:依赖于抽象而不是具体,典型的例子如通过Spring注入具体实现,bean里面依赖的属性是接口 实现工厂:通过实现工厂建立适当的对象引用,如Spring的装配 分离抽象:将抽象类与实现类放在各自的模块中,从而能用新的实现替换已有的实现,帮助创建灵活和可扩展的系统 通用模式 就近异常:异常定义应该接近抛出他们的模块 等级化构建:按照模块的等级构建 测试模块:每个模块应该有一个对应的测试模块
模块化与OSGi OSGi是Java中的动态模块系统,定义了一个模块化单元,称之为bundle,是一个jar文件。 bundle在同一个JVM中进行部署和交互,在进程内跨bundle交互,并且可动态部署bundle OSGi只是提供一个运行时环境
模块化与微服务 两者都是可独立部署的,重视逻辑的可复用性,强调一个大的软件系统需要拆分为各个部分,保持高内聚低耦合,实现更好的软件架构。 模块化强调进程内重用 微服务属于分布式服务,通过RPC协议在进程间重用
Java9 模块化项目(Jigsaw ) https://mp.weixin.qq.com/s/SrRAPsC9ZodzktORMV2D4Q
常见的OSGI框架

上一篇     下一篇
Mysql binlog 简介

mysql的一些技术名词

常见的OSGI框架

程序出问题时程序员最喜欢说的20句话

Iterator 与 ListIterator

eclipse安装jetty插件