Spring Cloud 微服务 简单入门

软件架构的发展历程

ALL IN ONE 优缺点

ALL IN ONE 架构优点:

●单一代码库调试,纠错简单
●易于部署,打单一包
●技术栈单一,不需要额外学习新的技术

ALL IN ONE 架构缺点:

●项目过大引起代码库庞大,模块间关系复杂
●拓展能力受限
●负载均衡模式下不同模块间互相竞争单机资源

ALL IN ONE 负载均衡:

负载均衡模式所有后端服务器代码必须相同,模块间资源间竞争压力,某个模块宕机导致整个模块宕机Nginx服务的流量,等于后端服务器的流量总和

SOA架构

SOA(Service-Oriented Architecture)面向服务架构,他可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。
SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型、XML(标准通用标记语言的子集)/Web Service技术之后的自然延伸。
SOA将能够帮助软件工程师们站在一个新的高度理解企业级架构中的各种组件的开发、部署形式,它将帮助企业系统架构者以更迅速、更可靠、更具重用性架构整个业务系统。较之以往,以SOA架构的系统能够更加从容地面对业务的急剧变化

传统SOA优缺点

SOA架构的优点:

●系统根据业务拆分成不同子系统
●子系统间通过rpc进行服务调用 解耦
●每个子系统间都可以有自己的技术栈

SOA架构的缺点:

●对于部分服务而言 代码量依然够大
●新增子系统间无法实现自动发现
●子系统属于系统的一部分

什么是微服务

●微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。
●服务间可以通过“轻量级设备与HTTP型API进行沟通”
●服务之间可以通过注册中心来注册和发现

微服务实例
打车系统微服务架构:
打车系统微服务架构

微服务框架对比

●consul:是google开源的一个使用go语言开发的服务发现、配置管理中心服务。内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等)。服务部署简单
●etcd:是一个高可用的键值存储系统 由CoreOS开发并维护的, 主要用于共享配置和服务发现
●dubbo:是 阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。提供中文文档,更新不稳定
●Springcloud:是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。

SpringCloud简介

Spring Cloud对Netflix的多个开源组件封装而成,同时又实现了和云端平台,和Spring Boot开发框架很好的集成。

Spring Cloud是一个相对比较新的微服务框架,今年(2016)才推出1.0的release版本. 虽然Spring Cloud时间最短, 但是相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案。

Spring Cloud 为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性token,全居琐,leader选举,分布式session,集群状态)中快速构建的工具,使用Spring Cloud的开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接

SpringCloud版本是使用英国城市来定义一个版本号 【 Dalston为稳定版本】
在这里插入图片描述
网址:http://spring.io/projects/spring-cloud#learn

SpringCloud组件

配套使用图

在这里插入图片描述

组件

●Eureka负责服务的注册与发现,很好将各服务连接起来。 Hystrix 负责监控服务之间的调用情况,连续多次失败进行熔断保护。
● Hystrix dashboard,Turbine 负责监控 Hystrix的熔断情况,并给予图形化的展示
● Spring Cloud Config 提供了统一的配置中心服务
● 当配置文件发生变化的时候,Spring Cloud Bus 负责通知各服务去获取最新的配置信息
● 所有对外的请求和服务,都通过Zuul来进行转发,起到API网关的作用
● 使用Sleuth+Zipkin将所有的请求数据记录下来,方便进行后续分析

SpringCloud服务注册发现

实现简单的用户微服务案例(zookepper,consul,eureka【默认】)
在这里插入图片描述
官网:https://github.com

spring cloud官方文档https://cloud.spring.io/spring-cloud-static/Dalston.SR5/single/spring-cloud.html

启动简单的eurekaserver

eurekaserver是一个类似于zookeeper的分布式调度中心 用于注册节点和发现节点信息

网址:https://cloud.spring.io/spring-cloud-static/Dalston.SR5/single/spring-cloud.html#spring-cloud-eureka-server

因为IDEA 一个工作空间只能打开一个项目,所以在里面建子项目来运行。

因为可以继承父项目导入库:

	<parent>
		<groupId>org.springframework.boot</groupId>
	    <artifactId>spring-boot-starter-parent</artifactId>
	    <version>1.5.10.RELEASE</version>
	 </parent>

加入相应的依赖管理:

<dependencyManagement>
	<dependencies>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值