SpringCloud(一)微服务架构入门
最近比较流行的技术莫属微服务架构了,今天我也来学习下微服务架构理论和技术实践
一、微服务
概念:springcloud作者给出的微服务概念是,微服务的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底的去耦合,每一个服务提供单个服务的模块,一个服务做一件事情;从技术上来讲就是一种小而独立的过程,类似进程概念,能够单独的启动或者销毁,甚至拥有自己的数据库。
二、微服务架构
概念:是一种架构模式,它提倡将单一程序划分为一组小的服务,服务之间相互协调、相互配合、为用户提供最终的价值,每一个服务都是自己运行独立的进程,服务与服务之间使用轻量级通讯机制相互通讯(通常是基于HTTP协议的RESTful API),每个服务都围绕着具体业务进行构建,并且能够独立的部署到生产环境等。
三、优缺点
既然我们使用springcloud,那肯定是有他的优点和缺点,下面我就来简单的说下相关的优点和缺点。
优点:
1、每个服务足够内聚,足够小,代码容易理解能聚集一个指定的业务功能或者业务需求,开发简单,效率高,一个服务可能只干一件事情。
2、小团队可以进行开发,一般2到5个人则搞定。
3、微服务是松耦合的,是功能意义的服务,无论是开发阶段还是不熟阶段都是独立的。
4、微服务可以使用不通的语言开发。
5、微服务可以拥有自己的数据库、也可以共同使用同一套数据库。
缺点:
1、系统多,开发人员需要处理分布式系统的复杂性。
2、多运维难度,随着业务服务的增多,运维的压力越来越大。
3、系统部署依赖。
4、服务之间通讯成本。
5、系统集成测试
四、微服务技术栈
微服务条目 | 技术 |
服务开发 | SpringMVC、spring、springboot |
服务配置和管理 | Netfix公司的Archaius,阿里的Diamond |
服务的注册和发现 | zookeeper、consul、eureka |
服务调用 | rest、rpc,grpc |
服务熔断器 | Hystrix,Envoy |
负载均衡 | Ribbon,Nginx |
消息队列 | ActiveMQ,,Kafka,RabbitMQ |
服务配置中心管理 | springcloudConfig,Chef等 |
服务路由(API网关) | zuul |
服务监控 | zabbix,nagios |
五、springboot和springcloud的区别
springboot;整体来说是微观的,因为主要是开发的细节。
springcloud:整体上来说是微观。
1、springboot专注于快速的开发单个个体服务。
2、springcloud是关注全局的微服务协调整理处理框架,他将springboot开发的一个个单体微服务整合并管理起来。为各个微服务之间提供,配置管理,服务发现,断路由,服务发现,分布式发现等。
六、springcloud和dubbo的区别?
最大的区别就会springcloud抛弃了dubbo的RPC调用,采用了基于Http的rest方式。
严格
七、微服务的落地实现就是springcloud
1、springcloud能干嘛?
我们都知道springcloud是很多个技术的整合体,具有的功能实现
分布式/版本配置控制
服务注册和发现
路由
服务到服务的调用
负载均衡配置
断路由
分布式消息管理
2、中文版API地址
https://springcloud.cc/spring-cloud-dalston.html
springcloud中文社区:http://springcloud.cn
springcloud中文网:https://springcloud.cc