前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springclound概述

springclound概述

作者头像
微醺
发布2019-01-17 13:04:23
7360
发布2019-01-17 13:04:23
举报

一、微服务架构概述

1.单体应用架构

代码语言:javascript
复制
 优点:比较容易部署测试,项目初期可以很好的运行
 
 存在的问题:随着需求的增加,开发人员的增加,单体应用越来越臃肿,可维护性,灵活性变低,维护成本越来越高。
 复杂性高,可靠性低,扩展能力受限,阻碍技术创新。
 
 例如:电影售票系统

2.什么是微服务?

代码语言:javascript
复制
 微服务本身并没有严格定义,每个人的理解也可能不同。
 martin fowler是这样描述的:
 微服务架构风格是一种将一个单体应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制。
 这些服务围绕业务能力构建并且可通过全自动部署机制独立部署。
 这些服务公用一个最小型的集中式管理,服务可用不同语言开发,使用不同的数据存储技术。

3.微服务架构的优点和挑战

代码语言:javascript
复制
 优点:
 1.易于开发和维护
 2.单个微服务启动快
 3.局部修改容易部署
 4.技术栈不受限
 5.按需伸缩,可根据需求,实现细粒度的扩展
 
 面对的挑战:
 1.运维要求较高
 2.分布式固有的复杂性
 3.接口调整成本高
 4.重复劳动

4.微服务设计原则

代码语言:javascript
复制
1.单一职责原则:一个单元(类、方法、服务)只关注整个系统中单独、有界限的一部分。
 单一职责可帮助我们更加敏捷的交付。
2.服务自治原则:每个微服务应具备独立的业务能力、依赖与运行环境。
3.轻量级通信机制:微服务之间通过轻量级的通信机制交互。
	体量轻和跨语言。
	如rest协议,就是典型的轻量级通信机制。
	如java的rmi则不符合轻量级通信机制的要求,绑定了java语言。
	微服务架构中,常用的协议有rest,amqp,stomp,mqtt等。
4.微服务粒度
	应使用合理的粒度划分微服务,确定边界,而不是一味做小服务。

5.如何实现微服务架构

代码语言:javascript
复制
1.技术选型

springcloud  dubbo  dropwiz-ard  armada

2.架构图及常用组件

二、微服务开发框架

1.springcloud简介

代码语言:javascript
复制
    Spring是一个轻量级的Java开发框架,它能使用基本的JavaBean代替EJB。
    SpringBoot是由Pivotal团队提供的全新框架,用来简化新Spring应用的初始搭建和开发过程。开发人员无需定义样板化配置。    
    SpringCloud是一系列框架的有序集合,它把好的东西集合到一起,这就是所谓的集大成者。同时它利用SpringBoot的开发便利性巧妙的简化了分布式系统基础设施的开发。

常用项目简介:

代码语言:javascript
复制
    Spring Cloud Config 是配置管理工具包,让你可以把配置放到远程服务器,几种化管理集群配置,目前支持本地存储,Git以及Subversion。
    Eureka 云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。
    Hystrix 熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。
    Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。
    Spring Cloud Bus 事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。
    Spring Cloud Data Flow 大数据操作工具,作为Spring XD的替代产品,它是一个混合计算模型,结合了流数据与批量数据的处理方式。

2.优点

SpringCloud很有可能成为未来微服务架构的标准框架。

代码语言:javascript
复制
约定优于配置
开箱即用、快速启动
适用于各种环境
轻量级的组件
组件支持丰富,功能齐全
选型中立
灵活

3.缺点

代码语言:javascript
复制
文档较少,国内研究并不成熟,相对国外较为火热,社区活跃度高。

4.springcloud版本

代码语言:javascript
复制
大多数 Spring  项目都是以“主版本号 次版本号.增量版本号.里程碑版本号” 的形式命名版本号的, 例如Spring Framework  稳定版本4.3.5.RELEASE、里程碑版本 5.0.0.M4  等。其中, 主版本号表示项目的重大重构; 次 版本号表示新特性的添加和变化; 增量版本号 一般表示 Bug 修复; 里程碑版本号表示某版本号的里程碑。
然而, Spring Cloud 并未使用这种方式管理版本。下面来详细探讨一下 Spring Cloud 的版本。
版本简介
代码语言:javascript
复制
 Spring Cloud 是以英文单词 SRX  (  X 为数字)的形式命名版本号的。那么英文单词和SR 分别表示什么呢?

Spring Cloud 是一个综合项目, 它包含很多的子项目。由千子项目也维护着自己的版本号, Spring Cloud 采用了这种版本命名方式, 从而避免与子项目的版本混淆。
其中英文单词叫作 "release train" ,   Angel 、Brixton  、Camden 等都是伦敦地铁站的名称, 它们按照字母顺序发行, 可将其理解为主版本的演进。 SR 表示 "Service Release", 一般表示Bug 修复; 在 SR 版本发布之前, 会先发布一个 Release 版本, 例如Camden RELEASE。
Spring Cloud/Spring Boot 版本兼容性
代码语言:javascript
复制
Angel 版本基千 Spring Boot 1.2.x 构建, 在一些场景下, 与 Spring Boot 1.3.x 及以上版本不兼容。
Brixton 版本基千 Spring Boot 1.3.x 构建,也 可使用 1.4.x 进行测试,与Spring Boot 1.2.x不兼容。
Camden 版本基于Spring Boot 1.4.x 构建,也可使用 1.5.x 进行测试。读者可前往h ttp://projects.spring.io/spring-cloud/查看版本兼容性。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年01月09日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、微服务架构概述
    • 1.单体应用架构
      • 2.什么是微服务?
        • 3.微服务架构的优点和挑战
          • 4.微服务设计原则
            • 5.如何实现微服务架构
            • 二、微服务开发框架
              • 1.springcloud简介
                • 2.优点
                  • 3.缺点
                    • 4.springcloud版本
                      • 版本简介
                      • Spring Cloud/Spring Boot 版本兼容性
                  相关产品与服务
                  数据保险箱
                  数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档