springcloud
微服务和springcloud的简介
1、微服务架构
它提倡将单一应用程序划分为一组小的服务 、每个服务运行在自己独立的进程中、 轻量级的通信机制(RESTful API) 、 独立部署到生产环境或类生产环境等。
微服务的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底地去耦合,每一个微服务提供单个业务功能的服务,一个服务做一件事,从技术角度看就是一种小而独立的处理过程,类似进程概念,能够自行单独启动或销毁,拥有自己独立的数据库。
微服务的九大特征
特征一 : "组件化"和"多服务"
一个组件就是一个可以独立更换和升级的软件单元。
如果该应用系统被分解为多个服务,那么对于一个服务的多处修改,仅需要重新部署这一个服务。 -- 服务可以被独立部署。
特征二 :围绕"业务功能"组织团队
微服务使用不同的方法来分解系统,即根据业务功能(business capability)来将系统分解为若干服务。
特性三:“做产品”而不是“做项目”
特性四:“智能端点”与“傻瓜管道”
特性五:“去中心化”地治理技术
特性六:“去中心化”地管理数据
特性七:“基础设施”自动化
特性八:“容错”设计
特性九:“演进式”设计*
微服务的优缺点
----> 优点:
①、每个服务足够内聚,足够小,代码容易理解这样能聚焦一个指定的业务功能或业务需求;
②、开发简单、开发效率提高,一个服务可能就是专一的只干一件事;
③、微服务能够被小的团队独立开发、这个小团队是2到5人的开发人员组成;
④、微服务是松耦合的,是有功能意义的服务,无论是开发阶段或部署阶段都是独立的;
⑤、微服务是使用不同的语言开发;
⑥、易于和第三方集成,微服务允许容易且灵活的方式集成自动部署,通过持续集成工具,如Hudson 、bamboo;
⑦、微服务易于被一个开发人员理解,修改和维护,这样小的团队能够更关注自己的工作成果。无需通过合作才能体现价值;
⑧、微服务你允许利用融合最新的技术;
⑨、微服务只是业务逻辑的代码,不会和HTML、CSS或其他界面组件混合。
⑩、每个微服务都有自己的存储能力,可以有自己的数据库,也可以有统一数据库
----> 缺点:
开发人员要处理分布式系统的复杂性;
多服务运维难度,随着服务的增加,运维的压力也在增大
系统部署依赖
服务间通信成本
数据一致性
系统集成测试
性能监控 .......
2、springcloud
= 分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶。
3、springcloud定义(官网) http://projects.spring.io/spring-cloud/
SpringCloud,基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。
SpringCloud利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发,SpringCloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等,它们都可以用SpringBoot的开发风格做到一键启动和部署。
SpringBoot并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过SpringBoot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包
4、springboot和springcloud 的区别
springboot 专注于快速,方便的开发单个微服务个体 (偏微观);可以单独使用(不依赖于springcloud)
springcloud 关注全局的服务治理框架(偏宏观);必然依赖于springboot,它将springboot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供,配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等集成服务;
5、配置文件 bootstrap.yml
spring: application: name: foo cloud: config: uri: ${SPRING_CONFIG_URI:http://localhost:8888}
6、dubbo和springcloud的区别
①、dubbo是基于RPC远程过程调用;springcloud是基于HTTP的RESTful API调用。
②、dubbo的社区不活跃;springcloud的社区相当的活跃
7、springcloud的书籍推荐
开发API声明:https://springcloud.cc/spring-cloud-dalston.html