• 谢幕整理SpringCloud系列01-微服务的开始


    我打算把之前在有道云的笔记整理一下,加深自己的印象,同步到博客园。所以有了这个系列!

    springcloud练手系列

    为什么要使用微服务

    传统架构的问题

    • (1)单块应用,耦合严重
    • (2)开发速度慢,新需求
    • (3)不易于扩展和重构
    • (4)不易于技术升级

    微服务架构的几大特征:

    • (1)足够单一的职责与功能
    • (2)非常的微型 :几百行~几千行代码
    • (3)面向服务的思想
    • (4)独立开发:团队,技术选型,前后端分离,存储分离,独立部署
    • (5)自动化开发流程:编码,自动化测试,持续集成,自动化部署

    微服务的强大作用:

    • (1)迭代速度:你只要管好自己的服务就行了,跟别人没关系,随便你这么玩儿,修改代码,测试,部署,都是你自己的事情,不用考虑其他人,没有任何耦合
    • (2)复用性:拆分成一个一个服务之后,就不需要写任何重复的代码了,有一个功能别人做好了,暴露了接口出来,直接调用不就ok了么
    • (3)扩展性:独立,扩展,升级版本,重构,更换技术
    • (4)完全克服了传统单块应用的缺点

    微服务的缺点

    • (1)服务太多,难以管理
    • (2)微服务 = 分布式系统,你本来是一个系统,现在拆分成多块,部署在不同的服务器上,一个请求要经过不同的服务器上不同的代码逻辑处理,才能完成,这不就是分布式系统
    • (3)分布式一致性,分布式事务,故障+容错

    微服务的技术栈

    • (1)领域驱动设计:微服务建模

    你的任何业务系统都有自己独特的复杂的业务,但是这个时候就是有一个问题,怎么拆分服务?拆成哪些服务?拆成多大?每个服务负责哪些功能?

    • 微服务的建模,模型怎么设计

    领域驱动的设计思想,可以去分析系统,完成建模的设计

    至少如果你真的很了解你的业务的话,你大概也知道应该如何去拆分这个服务

    (2)Spring Cloud:基础技术架构

    • 各个服务之间怎么知道对方在哪里 -> 服务的注册和发现

    • 服务之间的调用怎么处理,rpc,负载均衡

    • 服务故障的容错

    • 服务调用链条的追踪怎么做

    • 多个服务依赖的统一的配置如何管理

    (3)DevOps:自动化+持续集成+持续交付+自动化流水线,将迭代速度提升到极致

    如果要将微服务的开发效率提升到最高,DevOps,全流程标准化,自动化,大幅度提升你的开发效率

    • (4)Docker:容器管理大量服务

    微服务,一个大型的系统,可以涉及到几十个,甚至是上百个服务,比较坑,怎么部署,机器怎么管理,怎么运维


    1、Spring Boot的特点

    • (1)快速开发spring应用的框架

    spring mvc+spring+mybatis,首先配置一大堆xml配置文件,其次部署和安装tomcat,jetty等容器,跟java web打交道

    跟servlet,listener,filter,打交道

    手工部署到tomcat或者jetty等容器中,发布一个web应用

    spring boot,简单来说,就是看中了这种java web应用繁琐而且重复的开发流程,采用了spring之上封装的一套框架,spring boot,简化整个这个流程

    尽可能提升我们的开发效率,让我们专注于自己的业务逻辑即可

    • (2)内嵌tomcat和jetty容器,不需要单独安装容器,jar包直接发布一个web应用
    • (3)简化maven配置,parent这种方式,一站式引入需要的各种依赖
    • (4)基于注解的零配置思想
    • (5)和各种流行框架,spring web mvc,mybatis,spring cloud无缝整合

    2、Spring Boot和微服务

    • (1)spring boot不是微服务技术

    • (2)spring boot只是一个用于加速开发spring应用的基础框架,简化工作,开发单块应用很适合

    • (3)如果要直接基于spring boot做微服务,相当于需要自己开发很多微服务的基础设施,比如基于zookeeper来实现服务注册和发现

    • (4)spring cloud才是微服务技术

    我只想安静的学习,捡拾前人的牙慧。默默地强大如此弱小的我...
  • 相关阅读:
    二分图匹配详解
    树状数组略解
    质数算法略解
    主席树详解
    线段树略解
    【题解】Luogu P2073 送花
    【题解】Luogu P1533 可怜的狗狗
    分块入门
    【题解】Luogu CF86D Powerful array
    【题解】Luogu UVA12345 Dynamic len(set(a[L:R]))
  • 原文地址:https://www.cnblogs.com/Profound/p/14688215.html
Copyright © 2020-2023  润新知