Spring Cloud 学习笔记(1 / 3)

01_前言闲聊

微服务的概念提出已经有几年了,相对于传统技术架构来说微服务不仅仅是新一代架构,更是具有划时代意义的架构。目前国外一些大型互联网公司如亚马逊、Netflix、Spotify和一些传统 公司如沃尔玛都已经采用微服务架构并且实际效果非常好。

与此同时,微服务架构在国内一直不温不火, 大多呈观望态势,直到容器技术的出现,为微服务架构的落地完成了最后一块拼图, 国内IT公司对微服务架构的热情才大增,从各种微服务培训大会一票难求可见一斑。

国内很多公司已经开始或正在着手准备使用微服务架构,与市场需求暴增对应的是巨大的人才缺口,市面上相关材料、书籍的信息量很小,且大多偏技术实现,既缺少理论的指导又缺少项目实践,无法满足最终用户的需求。最重要的是还没有介绍Spring Boot+Spring Cloud的书问世,它可是当前世界上最主流的微服务技术实现,这多少影响了微服务在国内的发展。

文章有点长,老铁们收藏下来慢慢观看

02_零基础微服务架构理论入门

什么是微服务

  • 微服务是一种架构风格
  • 一个应用拆分为一组小型服务
  • 每个服务运行在自己的进程内,也就是可独立部署和升级
  • 服务之间使用轻量级HTTP交互
  • 服务围绕业务功能拆分
  • 可以由全自动部署机制独立部署
  • 去中心化,服务自治。服务可以使用不同的语言、不同的存储技术

主题词01:现代数字化生活-落地维度

  • 手机
  • PC
  • 智能家居

主题词02:分布式微服务架构-落地维度

满足哪些维度?支撑起这些维度的具体技术?

  • 服务调用
  • 服务降级
  • 服务注册与发先
  • 服务熔断
  • 负载均衡
  • 服务消息队列
  • 服务网关
  • 配置中心管理
  • 自动化构建部署
  • 服务监控
  • 全链路追踪
  • 服务定时任务
  • 调度操作

Spring Cloud简介

是什么?符合微服务技术维度

SpringCloud=分布式微服务架构的站式解决方案,是多种微服务架构落地技术的集合体,俗称微服务全家桶

猜猜SpringCloud这个大集合里有多少种技术?

SpringCloud俨然已成为微服务开发的主流技术栈,在国内开发者社区非常火爆。

“微”力十足,互联网大厂微服务架构案例

京东的:

阿里的:

京东物流的:

Spring Cloud技术栈

总结

03_第二季Boot和Cloud版本选型

源码私信博主777获取

Spring Boot 2.X 版

  • 源码地址私信博主777获取
  • Spring Boot 2 的新特性
  • 通过上面官网发现,Boot官方强烈建议你升级到2.X以上版本

Spring Cloud H版

  • 源码地址
  • 官网

Spring Boot 与 Spring Cloud 兼容性查看

  • 文档
  • JSON接口

接下来开发用到的组件版本

  • Cloud - Hoxton.SR1
  • Boot - 2.2.2.RELEASE
  • Cloud Alibaba - 2.1.0.RELEASE
  • Java - Java 8
  • Maven - 3.5及以上
  • MySQL - 5.7及以上

04_Cloud组件停更说明

停更引发的“升级惨案”

  • 停更不停用
  • 被动修复bugs
  • 不再接受合并请求
  • 不再发布新版本

Cloud升级

  • 服务注册中心
  • × Eureka
  • √ Zookeeper
  • √ Consul
  • √ Nacos

服务调用

  • √ Ribbon
  • √ LoadBalancer

服务调用2

  • × Feign
  • √ OpenFeign

服务降级

  • × Hystrix
  • √ resilience4j
  • √ sentienl

服务网关

  • × Zuul
  • ! Zuul2
  • √ gateway

服务配置

  • × Config
  • √ Nacos

服务总线

  • × Bus
  • √ Nacos

05_父工程Project空间新建

约定 > 配置 > 编码

创建微服务cloud整体聚合父工程Project,有8个关键步骤:

  1. New Project - maven工程 - create from archetype: maven-archetype-site
  2. 聚合总父工程名字
  3. Maven选版本
  4. 工程名字
  5. 字符编码 - Settings - File encoding
  6. 注解生效激活 - Settings - Annotation Processors
  7. Java编译版本选8
  8. File Type过滤 - Settings - File Type

archetype 英 [ˈɑːkitaɪp] 美 [ˈɑːrkitaɪp]
n. 典型

site 英 [saɪt] 美 [saɪt]
n. (建筑物、城镇等的)地点,位置,建筑工地;现场;发生地;场所;网站;站点
v. 使坐落在;为…选址

06_父工程pom文件

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>  

    <groupId>com.lun</groupId>
    <artifactId>LearnCloud</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>pom</packaging><!-- 这里添加,注意不是jar或war -->
    
    <!-- 统一管理jar包版本 -->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <junit.version>4.12</junit.version>
        <log4j.version>1.2.17</log4j.version>
        <lombok.version>1.16.18</lombok.version>
        <mysql.version>5.1.47</mysql.version>
        <druid.version>1.1.16</druid.version>
        <mybatis.spring.boot.version>1.3.0</mybatis.spring.boot.version>
    </properties>
    
    <!-- 子模块继承之后,提供作用:
		锁定版本+子modlue不用写groupId和version -->
    <dependencyManagement>
        <dependencies>
            <!--spring boot 2.2.2-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.2.2.RELEASE</version>
                <type>pom</
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值