微服务与微服务架构
微服务化的核心就是将传统的一站式应用,根据业务拆分一个一个的服务,彻底地区偶尔,每一个微服务提供单个业务功能的服务,一个做一件事情,从技术角度看就是一个小而独立的处理过程,类似进程的该连,能够自行单独启动或销毁,拥有自己独立的数据库。
微服务技术栈
微服务条目 | 落地技术 |
---|---|
服务开发 | Springboot、Sptring、SpringMVC |
服务配置与管理 | Netfix公司的Archaius、阿里的Diamond等 |
服务注册与发现 | Eureka、Consul、Zookeeper |
服务调用 | Rest、RPC、gRPC |
服务熔断器 | Hystrix、Envoy等 |
负载均衡 | Ribbn,Nagix等 |
服务接口调用 | Feign等 |
消息队列 | Kafka、RabbitMQ、ActiveMQ等 |
服务配置中心管理 | SpringCloudConfig、Chef等 |
服务理由 | Zuul |
服务监控 | Zabbix、Nagios、Metrics、Spectator等 |
全连路追踪 | Zipkin、Brave、Dapper等 |
服务部署 | Docker、OpenStack、Kubenetes |
数据流操作开发包 | SpringCloud Stream、redis.Rabbit、Kafka |
事件消息总栈 | Spring Cloud Bus |
Spring Cloud 是什么
在这里大家可以配合我上面的表格可以一一对比,分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶
。
Spring Cloud 和Spring Boot是什么关系?
-
Spring Boot专注于快速方便的开发单个个体微服务。
-
Spring Cloud 是关注全局的微服务协调整理治理框架,他将Spirng Boot 开发的一个个单体微服务整合管理起来,为各个微服务之间提供,配置管理、服务发现、断路器、理由、微代理、事件总线、全局锁、决策精选、分布式会发等等集成服务
-
Spring Boot可以离开Spring Cloud独立开发项目,但是Spring Clout离不开Spring Boot,属于依赖关系。
-
Spring Boot专注于快速、方便的开发单个微服务个体。
-
Spring Cloud关注全局的服务治理框架
Dubbo是这么到Spring Cloud的?哪些优点让你去技术选型?
目前成熟的互联网架构(分布式+服务治理Doubb)
Spring Cloud VS Dubbo 的对比
Dubbo | Spring Cloud | |
---|---|---|
服务注册中心 | Zookeeper | Spring Cloud Netflix Eureka |
服务调用方式 | RPC | REST API |
服务监控 | Dubbo-monitor | Spring Boot Admin |
断路器 | 不完善 | Spring Cloud Netflix Hystrix |
服务网关 | 无 | Spring Cloud Netflix Zuul |
分布式配置 | 无 | Spring Cloud Config |
服务追踪 | 无 | Spring Cloud Sleuth |
数据流 | 无 | Spring Cloud Bus |
数据流 | 无 | Spring Cloud Stream |
批量任务 | 无 | Spring Cloud Task |
总结Spring Cloud 与 Dubbo
问题:
国内的开源RPC服务框架Dubbo的重启维护后,令许多用户为之雀跃,但同时,也迎来了一些之一的声音。互联网技术发展迅速,Doubbo是否能跟上时代?Dubbo与Spring Cloud 相比又有何优势和差异?是否会有相关举措保证Dubbo的后续更新频率?
人物:Dubbo重启维护开发的刘军,主要负责人之一
刘军,阿里巴巴中间件高级研发工程师,主导了Dubbo重启维护后的几个发版计划,专注于高性能RPC框架和微服务相关领域。增幅则网易考拉RPC框架的研发及指导在内部使用,参与了服务治理平台、分布式跟踪系统、分布式一致性框架等从无到有的设计与开发过程。
Eureka基本框架
Spring Cloud封装了Netfilx公司开发的Eureka模板来实现服务注册和发现(请对比Zookeeper)
与Dubbo框架进行对比
Eureka
Dubbo
分布式架构CAP结论
在分布式架构中往往伴随CAP的结论。因为分布式的架构,不再使用传统的单机架构,多机为了提供可靠服务所以需要冗余数据因为存在分区容忍性P。
冗余数据的同时会在复制数据的同事伴随着可能性 A 与强一制性 C 的问题。是选择停止可用性达到强一制性还是保留可能性选择最终一至性,通常选择后者。
其中zookeeper和eureka分别是注册中心CP AP的两种的实践。他们都是提供服务注册中心的功能。建议使用AP。不强求数据的强一致性,达成数据的最终一致性。