SpringCloud

451 阅读6分钟

微服务是什么?

拆分 各自独立的进程 拥有自己独立的数据库 微服务架构是一种结构模式或是一种结构风格,它提倡单一应用程序划分成一组小的服务,每个服务运行在其独立的自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。服务之间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。

微服务与微服务架构

微服务强调的是服务的大小,它关注的是某一个点,是具体解决某一个问题的一个服务应用。狭义的看,可以看做是Eclipse里面的一个个微服务工程或者Module。 微服务强调的是一个个的个体,每个个体完成一个具体的任务或者功能

微服务优缺点

优点 每个服务足够内聚,足够小,代码容易理解 开发简单、开发效率提高,一个服务可能就是做一件事 微服务能够被小团队单独开发,这个小团队是2到5人的开发人员组成 微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的 微服务可以使用不同的语言开发 易于和第三方集成,微服务允许容易且灵活的方式集成自动部署,通过持续集成工具如Jenkins 微服务易于被一个开发人员理解、修改和维护,这样小团队能够更关注自己的工作成果,无需通过合作才能体现价值 微服务允许利用融合最新技术

微服务只是业务逻辑的代码,不会和HTML,CSS或其他界面组件混合 每个微服务都有自己的存储能力,可以有自己的数据库,也可以有统一的数据库

缺点 开发人员要处理分布式系统的复杂性 多服务运维难度,随着业务的增加,运维的压力也在增大 系统部署依赖 服务间通信成本 数据一致性 系统集成测试 性能监控

微服务技术栈有哪些

微服务技术栈:多种技术的集合体 服务开发:Springboot、Spring、SpringMVC 服务配置与管理:Netflix公司的Archaius、阿里的Diamond等 服务注册与发现:Eureka、Consul、Zookeeper等 服务调用:Rest、RPC、gRPC 服务熔断器:Hystrix、Envoy等 负载均衡:Ribbon、Nginx等 服务接口调用(客户端调用服务的简化工具):Feign等 消息队列:Kafka、RabbitMQ、ActiveMQ等 服务配置中心管理:SpringCloudConfig、Chef等 服务路由(API网关):Zuul等 服务监控:Zabbix、Nagios、Metrics、Spectator等 全链路追踪:Zipkin、Brave、Dapper等 服务部署:Docker、OpenStack、Kubernetes等 数据流操作开发包:SpringCloud Stream(封装与Redis、Rabbit、Kafka等发送接收消息) 事件消息总线:Spring Cloud Bus

天上飞的理念,必定有落地的实现

为什么选择SpringCloud作为微服务架构

SpringCloud入门概述

SpringCloud是什么?

SpringCloud,基于SpringBoot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。 SpringCloud利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发,SpringCloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等,它们都可以用SpringBoot的开发风格做到一键启动和部署 SpringBoot并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过SpringBoot风格进行再封装,屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包 SpringCloud=分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶

SpringCloud和SpringBoot是什么关系?

SpringBoot专注于快速方便的开发单个个体微服务 SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等集成服务 SpringBoot可以离开SpringCloud独立使用开发项目,但是SpringCloud离不开SpringBoot,属于依赖的关系 SpringBoot专注于快速、方便的开发单个微服务个体,SpringCloud关注全局的服务治理框架

Dubbo是怎么到SpringCloud的?哪些优缺点让你去技术选型

4、Rest微服务构建案例工程模块

一、架构演进和分布式系统基础知识

1、传统架构演进到分布式架构

简介:讲解单机应用和分布式应用架构演进基础知识 (画图)
单体应用:

分布式架构:
微服务架构:
单体应用: 开发速度慢 启动时间长 依赖庞大 微服务: 易开发、理解和维护 独立的部署和启动 不足: 分布式系统--分布式事务问题 需要管理多个服务--服务治理

2、微服务核心基础讲解

简介:讲解微服务核心知识:网关、服务发现注册、配置中心、链路追踪、负载均衡器、熔断
1、网关:路由转发 + 过滤器
    /api/v1/pruduct/      商品服务
    /api/v1/order/        订单服务
    /api/v1/user/   	  用户服务

2、服务注册发现:调用和被调用方的信息维护
3、配置中心:管理配置,动态更新 application.properties
4、链路追踪:分析调用链路耗时
	例子:下单-》查询商品服务获取商品价格-》查询用户信息-》保存数据库
5、负载均衡器:分发负载
6、熔断:保护自己和被调用方

3、常见的微服务框架

简介:讲解常用的微服务框架
consumer: 调用方
provider: 被调用方
一个接口一般都会充当两个角色(不是同时充当)
1、dubbo: zookeeper + dubbo + springmvc/springboot
	官方地址:http://dubbo.apache.org/#!/?lang=zh-cn
	配套
		通信方式:rpc
		注册中心:zookeper/redis
		配置中心:diamond

2、springcloud: 全家桶+轻松嵌入第三方组件(Netflix 奈飞)
	官网:http://projects.spring.io/spring-cloud/
	配套
		通信方式:http restful
		注册中心:eruka/consul
		配置中心:config
		断路器:hystrix
		网关:zuul
		分布式追踪系统:sleuth+zipkin

学习资料:https://blog.csdn.net/zhangweiwei2020/article/details/78646252

4、微服务下电商项目基础模块设计

简介:微服务下电商项目基础模块设计 分离几个模块,课程围绕这个基础项目进行学习	
小而精的方式学习微服务
1、用户服务
    1)用户信息接口
    2)登录接口
2、商品服务
    1)商品列表
    2)商品详情
3、订单服务 
    1)我的订单
    2)下单接口