有些概念---它们不是一些规范标准,所以也没有明确的、具体的实现。因为对概念的理解角度未必一致,我们不能很明确评判一些具体的实现是否在这些概念的范畴之内。
关于服务化架构,就有很多这类的概念,例如:SOA、微服务。
到底什么是SOA?什么是微服务?业界只有一些条目说明,而没有清晰的、硬性的标准和规范。更没有参考实现之类的东西。
于是,不断有不同的实现或架构出来,宣称是SOA,是微服务。按实证主义观点来说,这些都是对的,因为没有标准去证伪,讲得通就行。
虽然当前微服务的概念炒得十分火热,但也不可否认这种多进程构建应用的架构会存在运维的压力,于是DevOps应运而生,试图用自动化运维、多实例部署等手段来解决运维和可靠性问题。
从本质上看,微服务更是为了解决互联网应用性能方面扩展的问题,而非结构方面的问题。可能有人说微服务把大的应用拆分成很多小的领域,分而治之,就解决了结构方面的问题,其实这个是忽略了运维方面的问题,无论应用被拆分得多细,但被拆出来的部分最终还是要组合成完整的应用,只是单体应用基于开发手段来组合,而微服务则基于运维的手段来组合,所以结构问题只是被转移了。
从这点看,单体应用的模块化和微服务在结构上都会有所帮助,避免了意大利面式的代码结构。
微服务架构要求通过独立进程部署达到自治,这是在边界上设定的架构约束,有利于优化领域的边界划分。这点和osgi的classloader隔离有类似的效果,所以osgi应用在设计时,也应该借鉴领域驱动设计的方法。
在服务化方面,osgi服务有动态的特性,这个动态性并非单纯的服务发布和服务下线的动态,还包含服务组装的动态性,这种特性称为Fast forwards。在osgi环境下,我们可以把很多细粒度服务组装成较粗粒度的服务,粗粒度服务依赖细粒度服务的存在而存在,当被依赖的服务下线时,依赖它的服务也立即下线,也就是说只要一个服务发布出来,它就是可用的,不会存在外部可调用,而内部却无能力的情况。
企业应用和互联网应用会有些不同,通常企业应用的结构会更复杂,但性能要求则远低于互联网应用。所以,企业应用不应只强调微服务,而忽视了模块化。
未完待续……
分享到:
相关推荐
标题中的“osg3.7.0、osgearth3.4和osgQt”是三个关键的开源项目,它们在计算机图形学和地理信息系统领域有广泛应用。接下来,我们将详细探讨这三个组件以及与之相关的第三方库。 osg(OpenSceneGraph)是一个高...
在本文中,我们将深入探讨如何在Visual Studio (VS)环境中集成osgEarth 3.2与Qt 5.9,以便加载和操作Shapefile(SHP)文件。osgEarth是一个基于OpenSceneGraph(OSG)的开源库,它提供了一种方便的方式来加载和显示...
6. **测试和使用**:使用提供的SDK(如压缩包中的OsgEarth2.8_SDK和Osg3.4.0_SDK),可以快速开始开发。SDK通常包含预编译的库文件、头文件、示例代码和文档,方便开发者直接引用。 7. **示例运行**:运行SDK中的...
附书源码中的"OSG程序设计教程"可能是一个全面的指南,包含了关于OSG的详细讲解和实践练习。通过阅读文档和运行示例,你可以深入理解OSG的工作原理和最佳实践。 总的来说,这个教程对于想要进入3D图形编程领域,...
OSG(OpenSceneGraph)和osgEarth是两个在三维图形渲染和地理信息系统中广泛应用的开源库。它们在游戏开发、虚拟现实、地球科学可视化等领域有着广泛的应用。了解这两个库的依赖项对于正确安装和使用它们至关重要。 ...
4. **视图与相机**:OSG提供了灵活的视图和相机模型,允许用户设置不同的视角和投影方式。源码解析会揭示这些功能背后的实现细节。 5. **动画与动态更新**:OSG支持时间驱动的动画系统,包括关键帧动画和基于插值的...
在OpenSceneGraph (OSG) 中,加载地形和模型文件是一项基本操作,它允许开发者创建交互式的3D场景。OpenSceneGraph是一个开源的C++图形库,专为高性能的实时3D图形设计,广泛应用于科学可视化、游戏开发、虚拟现实等...
在Windows 10操作系统中,OSG(OpenSceneGraph)3.6.5和OSGEarth 3.1是两个重要的开源图形库,主要用于构建3D地理信息系统和虚拟现实应用。这两个库提供了丰富的功能,包括地形渲染、纹理映射、光照效果、动画支持...
关于OSG OpenThreadsd.lib osgd.lib osgDBd.lib osgFXd.lib osgGAd.lib osgManipulatord.lib osgParticled.lib osgShadowd.lib osgSimd.lib osgTerraind.lib osgTextd.lib osgUtild.lib osgViewerd.lib
osgEarth_package是osgEarth框架下的一款工具,专用于创建地形和影像的TMS(Tile Map Service)切片。TMS是一种将大图像分块存储的机制,便于网络传输和快速加载,广泛应用于地图服务中。 首先,我们来详细了解一下...
总结来说,编译osg和osgEarth涉及到下载源代码、依赖库以及数据资源,使用cmake配置编译选项,并在编译完成后设置环境变量。尽管过程可能复杂,但按照上述步骤操作,应该能够成功编译并使用这两个库。对于初学者来说...
- **平台支持**:OSG同样支持Windows、Linux和Mac OS X等操作系统,并且兼容Direct3D和OpenGL。 - **模块化设计**:OSG采用了模块化的设计思路,使得开发者可以根据需要选择加载特定的模块,从而提高应用的性能和...
这个压缩包文件“OpenSceneGraph-2.9.5”包含的是关于OSG 2.9版本的相关资料,主要可能包括源代码、文档、示例程序、库文件等,用于开发和学习OpenSceneGraph的高级特性。 OpenSceneGraph是一个高度优化的C++库,它...
**osg和osgEarth简介** osg(OpenSceneGraph)是一个开源的3D图形库,它基于OpenGL,用于构建高性能的3D应用。OSG提供了一系列高级功能,如场景管理、动画系统、几何处理、光照和纹理处理等,为开发者提供了一个...
知识点:ArcGIS 10.2 和 osgEarth 2.5 是常用的版本。ArcGIS 10.2 是 ESRI 公司发布的 ArcGIS 软件的版本,osgEarth 2.5 是 OsgEarth 的版本。 8. 使用 ArcGIS Manager 可以管理和配置 ArcGIS Server 的服务。 ...
这个压缩包包含了四本关于OSG编程的重要参考资料,涵盖了从基础到高级的各个方面,适合对OSG感兴趣的开发者深入学习。 1. **《OSG三维渲染引擎编程指南》**:这本书可能是入门OSG的首选资料,它详细介绍了如何使用...
这个压缩包文件“osgEarth数据组织.zip”包含的内容是关于如何在OSGEarth中组织和使用这些数据的参考资料。 首先,我们要理解OSGEarth的数据结构。OSGEarth的核心是地球模型,它由一系列的层次组成,每个层次可以...
同时,了解如何利用OSG提供的加载器(`osgDB::readNodeFile()`)加载不同格式的模型,以及如何使用OSG的渲染和动画机制,如状态集(`osg::StateSet`)、几何节点(`osg::Geometry`)和行为节点(`osg::AnimationPath...
通过深入理解OSG的相机、视口和渲染机制,开发者能够构建出具有高级交互和视觉效果的应用程序。如果你希望进一步探索这个话题,可以下载并研究提供的"osg_multiViewer"源代码,这将有助于加深对OSG多视图实现的理解...