继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

微服务架构概述—Spring Cloud&Dubbo

狐的传说
关注TA
已关注
手记 304
粉丝 88
获赞 555

微服务架构概述

微服务是一种架构模式或一种架构风格,提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。服务之间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生成环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务,可以使用不同的语言来编写服务,也可以使用不同的数据存储

微服务

强调的是服务的大小,它关注的是某一个点,是具体解决某一个问题/提供落地对应服务的一个服务应用,狭义的看,可以看作Eclipse里面的一个个微服务工程/或者Module,可以理解成它具体是使用Springboot开发的一个小模块

微服务优点


  • 每个服务足够内聚,足够小,代码容易理解,这样能聚焦一个指定的业务功能或业务需求

  • 开发简单、开发效率高,一个服务可能就是专一的只干一件事

  • 微服务是松耦合的,是有功能意义的服务

  • 微服务只是业务逻辑的代码,不会和HTML,CSS或其他界面组件混合

  • 每个微服务都有自己的存储能力,可以有自己的数据库,也可以有统一数据库

微服务缺点:


  • 开发人员要处理分布式系统的复杂性

  • 多服务运维难度,随着服务的增加,运维的压力也在增大

  • 系统部署依赖

  • 服务间通信成本

  • 数据一致性

  • 系统集成测试

  • 性能监控

微服务技术栈:多种技术的集合体

微服务条目
落地技术
服务开发Springboot、Spring、SpringMVC
服务配置与管理Netflix公司的Archaius、阿里的Diamond等
服务注册与发现Eureka、Consul、Zookeeper等
服务调用Rest、RPC、gRPC
服务熔断器Hystrix、Envoy等
负载均衡Ribbon、Nginx等
服务接口调用(客服端调用服务的简化工具)Feign等
消息队列Kafka、RabbitMQ、ActiveMQ等

服务配置中心管理

Spring Cloud Config、Chef等

服务路由(API网关)

Zuul等

服务监控

Zabbix、Nagios、Metrics、Spectator等

全链路追踪

Zipkin、Brave、Dapper等

服务部署

Docker、OpenStack、Kubernetes等

数据流操作开发包

Spring Cloud Stream(封装与Redis、Rabbit、Kafka等发送接收消息)

事件消息总线

Spring Cloud Bus

为什么选择Spring Cloud作为微服务架构

Spring Cloud,基于Spring Boot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件

Spring Cloud利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,Spring Cloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等,它们都可以用Spring Boot的开发风格做到一键启动和部署

Spring Boot并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包

Spring Cloud=分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶

Spring Boot专注于快速、方便的开发单个微服务个体,Spring Cloud关注全局的服务治理框架

Spring Cloud和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

原文出处

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP