广州做网站报价,石家庄网站建设公司,做传感器的网站,平台开发的基本流程目录 微服务架构快速指南 SOA Dubbo Spring Cloud Dubbo与SpringCloud对比 微服务(Microservice)架构快速指南 什么是软件架构? 软件架构是一个包含各种组织的系统组织#xff0c;这些组件包括 Web服务器, 应用服务器, 数据库,存储, 通讯层), 它们彼此或和环境存在关系…目录 微服务架构快速指南 SOA Dubbo Spring Cloud Dubbo与SpringCloud对比 微服务(Microservice)架构快速指南 什么是软件架构? 软件架构是一个包含各种组织的系统组织这些组件包括 Web服务器, 应用服务器, 数据库,存储, 通讯层), 它们彼此或和环境存在关系。 什么是微服务架构? 微服务是指开发一个单个 小型的但有业务功能的服务每个服务都有自己的处理和轻量通讯机制可以部署在单个或多个服务器上。 微服务也指一种种松耦合的、有一定的有界上下文的面向服务架构。也就是说如果每个服务都要同时修改那么它们就不是微服务因为它们紧耦合在一起如果你需要掌握一个服务太多的上下文场景使用条件那么它就是一个有上下文边界的服务这个定义来自DDD领域驱动设计。 微服务架构的优缺点 优点 每个微服务都很小这样能聚焦一个指定的业务功能或业务需求。微服务能够被小团队单独开发这个小团队是2到5人的开发人员组成。微服务是松耦合的是有功能意义的服务无论是在开发阶段或部署阶段都是独立的。微服务能使用不同的语言开发。微服务允许容易且灵活的方式集成自动部署通过持续集成工具如Jenkins, Hudson, bamboo 。一个团队的新成员能够更快投入生产。微服务易于被一个开发人员理解修改和维护这样小团队能够更关注自己的工作成果。无需通过合作才能体现价值。微服务允许你利用融合最新技术。微服务只是业务逻辑的代码不会和HTML,CSS 或其他界面组件混合。微服务能够即时被要求扩展。微服务能部署中低端配置的服务器上。易于和第三方集成。每个微服务都有自己的存储能力可以有自己的数据库。也可以有统一数据库。 缺点 微服务架构可能带来过多的操作。需要DevOps技巧 (http://en.wikipedia.org/wiki/DevOps).可能双倍的努力。分布式系统可能复杂难以管理。因为分布部署跟踪问题难。当服务数量增加管理复杂性增加。SOA面向服务的架构 SOA是一个组件模型它将应用程序的不同功能单元称为服务通过这些服务之间定义良好的接口和契约联系起来。面向服务架构它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。 soa基本架构图 1.注册中心 保存服务提供方暴露的服务信息常见的注册中心有zookeeper eureka 也可用redis 默认eureka 2.服务提供方提供服务者 3.服务消费方当需要调用远程服务接口时必须在注册中心发现服务找到服务提供者从而进行远程方法调 dubbo实现微服务 Dubbo是阿里开源的一个SOA服务治理解决方案文档丰富在国内的使用度非常高。 dubbo 调用中间层变成了可选组件消费者可以直接访问服务提供者。 服务信息被集中到Registry中形成了服务治理的中心组件。 通过Monitor监控系统可以直观地展示服务调用的统计信息。 Consumer可以进行负载均衡、服务降级的选择。 但是对于微服务架构而言Dubbo也并不是十全十美的 Registry严重依赖第三方组件zookeeper或者redis当这些组件出现问题时服务调用很快就会中断。 DUBBO只支持RPC调用。使得服务提供方与调用方在代码上产生了强依赖服务提供者需要不断将包含公共代码的jar包打包出来供消费者使用。一旦打包出现问题就会导致服务调用出错。 最为重要的是DUBBO现在已经停止维护了对于技术发展的新需求需要由开发者自行拓展升级。这对于很多想要采用微服务架构的中小软件组织显然是不太合适的。 新选择SpringCloud 与dubbo对比spring cloud是借助以下组件来实现的 上图来自于SpringCloud中文文档 包括了spring cloud现在有的所有组件以及每个组件的作用。 后续会讲解常用组件例如配置管理服务发现断路器智能路由微代理控制总线在这里先不做解释。 SpringCloud与Dubbo对比 微服务需要的功能DubboSpringCloud服务注册与发现ZookeeperEureka服务调用方式RPCRestful API服务路由和过滤有Zuul负载均衡有Ribbon断路器有Hystrix分布式配置无Spring Cloud Config分布式消息无Spring Cloud Bus集群选主无Spring Cloud Cluster批量任务无Spring Cloud Task服务跟踪无SleuthZipkin.................. 很明显SpringCloud的功能比Dubbo的功能更加强大涵盖面更广而且它也能够与Spring Framework、Spring Boot、Spring Data、Spring Batch等其他Spring项目完美融合这些对于微服务而言是至关重要的。 文档对比 Dubbo的 文档 可以说在国内开源框架中算是一流的非常全并且讲解的也非常深入由于版本已经稳定不再更新所以也不太会出现不一致的情况另外提供了中文与英文两种版本对于国内开发者来说阅读起来更加容易上手这也是dubbo在国内更火一些的原因吧。 Spring Cloud由于整合了大量组件文档在体量上自然要比dubbo多很多文档内容上还算简洁清楚但是更多的是偏向整合更深入的使用方法还是需要查看其整合组件的详细文档。另外由于Spring Cloud基于Spring Boot很多例子相较于传统Spring应用要简单很多因为自动化配置很多内容都成了约定的默认配置这对于刚接触的开发者可能会有些不适应比较建议了解和学习Spring Boot之后再使用Spring Cloud不然可能会出现很多一知半解的情况。 虽然Spring Cloud的文档量大但是如果使用Dubbo去整合其他第三方组件实际也是要去阅读大量第三方组件文档的所以在文档量上我觉得区别不大。对于文档质量由于Spring Cloud的迭代很快难免会出现不一致的情况所以在质量上我认为Dubbo更好一些。而对于文档语言上Dubbo自然对国内开发团队来说更有优势。 关注博主 后续继续带来Spring Cloud的系列文章也欢迎各位朋友一起交流共同进步。 转载于:https://www.cnblogs.com/yanfeiLiu/p/9461859.html