为什么要使用微服务器,Java后端微服务开发

【为什么要使用微服务器,Java后端微服务开发】为什么要在项目中使用docker?你需要了解docker的优势 , 根据项目的实际情况决定是否使用docker 。千万不要为了使用而使用docker或者跟风 。先不说今天用Dubbo或者SpringCloud做微服务 , 或者RPC或者RestfulAPI 。只说为什么大部分Java微服务都用SpringBoot 。
Java后端微服务开发 , 为什么要单独把api模块分离出来?
现在的软件开发模式和传统的有很多差别 , 传统的开发模式耦合度较高 , 随着技术的发展越来越多的开发模式被应用 , 比如微服务架构模式 。其实很多开发语言都有自己的微服务解决方案 , 如Java系的Spring BootSpring Cloud等 。但在实际项目开发中 , 即使是在微服务开发模式下 , 依旧有很多人喜欢单独抽离出一个api模块 , 这是为什么呢?什么是微服务?其实微服务并不是一种新的技术 , 而是一种新兴的架构模式 。
简单的说就是将一个服务拆成多个颗粒度小易复用的子服务 , 这样做的好处就是应用/服务解耦 , 避免了单个业务过于复杂每个微服务独立开发和部署 , 扩展性更强 , 可以实现服务高可用服务组件化 , 易复用 。后端微服务开发时为什么还要单独抽离API模块?既然我们是以微服务模式来开发项目的 , 为什么很多开发者还习惯性的建立一个API模块出来呢?其实开发微服务时 , 可以采用单模块模式来开发 , 而很多人采用多模块来开发是因为遵循了高内聚低耦合的设计模式 , 这样做的优点就是1边界清晰易于管理一个中型项目在开发时会有很多业务和模块 , 它们分散在各个包中 , 这样就很混乱 。
如果有些API是希望对外公开的 , 有些API只允许内部访问或有限访问 , 那就有必要将公开的API单独抽离到一个单独的API模块中 , 这样管理起来更方便 。2各模块间更容易聚合把项目拆成多模块来开发 , 我们可以通过maven等来解决依懒关系 , 可以很方便的实现模块间的聚合 , 各个模块也可以单独使用 。比如将工程拆分为这几个模块公共模块对外API模块管理和监控模块业务模块等 。
微服务为什么不需要esb?
首先我个人不认为微服务不需要ESB 。两者是相互融合相互配合的 , 在不同的应用场景下发挥自身的优势 , 共同助力企业的发展 。并且在微服务快速兴起的现在 , ESB本身也在不断完善调整 , 比如 , 数通畅联的AEAI ESB本身就支持微服务架构的开发 , 实现了跟微服务架构的融合 。其次微服务是近几年比较流行的新兴架构 , 更多的采用Restful接口而不是WebService , 微服务类似于七巧板的组件 , 以小粒度为用户提供服务 , 用户可以根据自身的喜好自由组合配置服务组件 , 灵活的进行扩展 。
但是微服务的局限在于因为服务量增多 , 管理成本增加 , 微服务难以用整体架构的形式进行支撑 , 个人认为微服务更加适用于快速响应如APP , 前后端分离架构 , 互联网模式交互 。ESB企业服务总线作为SOA中重要的承载物 , 可以说是企业信息的龙骨 , 通过ESB实现服务的消费者及提供者之间的联通与管理 , 实现服务的治理重组编排和代理等 , 可以有效的支撑企业级的信息化集成架构的落地 。

推荐阅读