SpringCloud初级学习(一)------SpringCloud简介
前言
随着IT行业的不断发展,我们从原来的单一应用,慢慢发展到了现在的SOA分布式应用架构,近几年,微服务的概念更是一度走红,越来越多的公司开始使用微服务技术栈来部署自己的应用,因此,了解微服务相关的技术栈,是提高我们自身价值的不二之选.在这个系列的博文中,我们将对SpringCloud微服务技术栈做一个初步的学习,了解一些初步的使用和原理.
正文
1. 什么是微服务?
所谓微服务,就是将传统的一站式应用,根据业务或者其他的方式拆分成一个一个的服务,彻底地去解构,每一个微服务提供单个业务功能的服务,一个服务做一件事,从技术角度看,就是一种小而独立的处理过程,有点类似于进程的概念,能够自行单独启动或销毁,拥有自己独立的数据库.
微服务强调的是服务的大小,它关注的是一个点,是具体解决某个问题,并对其提供落地实现的一个服务应用.
比如说一个电商应用,在之前的架构中,我们是订单,用户,库存,物流等模块组合在一起,在一个工程中相互交互的;而在微服务中,将订单,用户等功能拆分,一个模块就是一个工程应用,同时对外部提供服务,这样就不必在改动了一处以后,全部逻辑都要影响.
2. 微服务技术栈有哪些?
目前主要的微服务技术栈有以下几种:
服务功能 | 落地技术 |
---|---|
服务开发 | SpringBoot、Spring、SpringMVC |
服务配置与管理 | Netflix公司的Archaius、阿里的Diamond |
服务注册与发现 | Eureka、Zookeeper、Consul |
服务调用 | Rest、RPC、gRPC |
服务熔断器 | Hystrix、Envoy |
负载均衡 | Ribbon、Nginx |
服务接口调用 | Feign等 |
消息队列 | Kafka、RabbitMQ、ActiveMQ等 |
服务配置中心 | SpringCloudConfig、Chef等 |
服务路由 | Zuul等 |
服务监控 | Zabbix、Nagios、Metrics、Spectator |
全链路追踪 | Zipkin、Brave、Dapper |
服务部署 | Docker、OpenStack、Kubernetes等 |
数据流操作开发 | SpringCloud Stream |
事件消息总线 | Spring Cloud Bus |
3. SpringCloud是什么?
关于SpringCloud的定义,官方的解释里面已经很清楚了,简而言之,SpringCloud只是将各家公司开发比较成熟,经得起实际考验的服务框架组合起来,通过SpringBoot风格再封装屏蔽掉了复杂的配置和实现原理,最终形成的一套简单易懂、易于维护的分布式开发工具包.
4. SpringCloud和SpringBoot的关系
SpringBoot专注于快速方便的开发个体微服务.
SpringCloud是关注全局的微服务协调整理框架,它将SpringBoot开发的一个个单体微服务整合起来统一管理.
SpringBoot可以离开SpringCloud独立使用开发项目,SpringCloud离不开SpringBoot.
5. SpringCloud与Dubbo
目前的市面上,除了使用SpringCloud技术栈部署的分布式架构以外,Dubbo系列的分布式部署也是比较火的.这两者之间的区别如下:
可以看到,两者最大的区别是:SpringCloud抛弃了Dubbo的RPC通信,采用的是基于HTTP的REST方式.
Dubbo的定位是一款RPC框架,而SpringCloud的目标是微服务架构下的一站式解决方案.
总结
对于SpringCloud的简介就说到这里,了解了SpringCloud是什么以后,我们就能对他的角色有所了解,在开发中也能帮助我们理解相关技术栈的实现目的.在下一篇博文中我们将通过简单的项目来一步一步的了解SpringCloud的每一个技术的使用