《自学SpringCloud微服务架构》之第 1 篇 —— 微服务的自我修养

序言:

   我们先看看2019年中国首富排行榜。嗯,99%的财富掌握在1%的人手里。没错的,这个时代,是富豪们玩转手里的棋子的时代,而我们都是看客。本人已毕业四年,却还是一如既往的做着毕业生都能做的敲代码工作!当初选择了程序员这条路,不求大富大贵,只求三餐温饱。渐渐的,发现不是路子 —— 个税居然不过千!趁着微服务架构这股火苗刚刚蔓延,很多公司开始慢慢使用新架构,赶紧上车,没有时间解释了!不会微服务架构都不好意思说自己是程序员,真的!那么,为了提高自己的技术竞争力,交更多个税,管理更多的小弟小妹,从今天起,制定一个长远计划,逼自己一把,做一个全栈工程师,争取不久后,走上人生巅峰,上演屌丝逆袭的好戏吧!

1、微服务介绍

   简单来说(面试容易问到):微服务是系统的一种设计风格,它将一个原本独立的系统拆分成多个小型服务,这些小型服务可以独立运行,服务与服务之间通过 HTTP 协议的 RESTFul API 进行通信。每个小型服务完成特定的业务,能够独立部署。

   题外话1:在公司的项目开发里,一般的会接触到什么呢?前后端分离,有专门的运维人员和DBA(数据库管理员 Database Administrator,简称DBA)。做后台开发的人员,负责把后台的数据处理好传输给前端,前端人员调用接口拿到数据后做页面跳转和展示等。运维人员负责将项目部署到Linux虚拟机下,并且做监控。DBA负责数据库的维护。有些小公司就没有专门的运维人员和DBA,都是后台开发人员一站式搞定。后台人员通过编写接口文档给到前端人员,运维人员将配合后台开发人员配置好域名、服务器等环境,然后就可以上线系统了。   

    题外话2:这就跟我们以前在学校里做的课程设计大有不同了。以前在学校的时候,课程设计有做学生信息管理系统、公司员工管理系统,校务管理系统等等,那时候的技术还是 JSP + Servlet + MySQL,还是用Eclipse编辑器,运行项目的时候,一键启动Tomcat服务器,浏览器地址输入什么 localhost:8080/XXX,对,基本都经历过这些事的。真正来到互联网公司之后,以前在学校做的系统就像过家家的小打小闹了。

   那么,微服务架构和单体系统有什么区别呢?

   回答:在以前的系统里,所有的业务逻辑包括开发、测试、部署都在一个应用中,互联网迅猛发展之后,会有越来越多的业务模块,如一个商城有商品展示模块、搜索模块、下单模块、通知发货模块等等,如果都写在一个系统里,每次上线部署都会对其它功能造成影响,并发量一大,就会造成系统卡顿,极易宕机(dang第四声)。

 

   用一张图来解释说明从单体结构到微服务架构的演变过程。

图片英文单词说明:

①Dubbo:Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。

②Architecture:架构      ③Roadmap:路线图       ④application:应用       ⑤service:服务     ⑥framework:框架、架构、结构    ⑦Cluster:集群

然后,我们接着聊4个图的内容。

1、单一应用架构 —— ORM对象关系映射,英语:Object Relational Mapping,简称ORM。

   当网站流量很小时,只需一个应用,将所有功能都部署在一起(All in One),以减少部署节点和成本。此时,用于简化增删改查(CRUD)工作量的数据访问框架(ORM)可以解决问题。就像我们在学校做的课程设计。

2、垂直应用架构 —— MVC:MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码。

   当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)可以解决问题。

3、分布式服务架构 —— RPC:RPC(Remote Procedure Call Protocol)--远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

   当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式服务框架(RPC)可以解决问题。

4、流动计算架构 —— SOA:Service Oriented Architecture,面向服务的架构,是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来。

   当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键。

   

   也就是说,微服务架构,是一个Java程序员升级成架构师的必由之路。如果你们公司开发技术还停留在Struts2、SpringMVC,那么我要告诉你的是:你只要肯努力学技术,终究有一天成为你们公司的技术骨干!当然喽,没有盼头的公司赶紧飞。

   OK,作为程序员少说多做,少说一些高情怀的话。你就告诉我,怎么做就行了。

   简单点,我们要玩转微服务架构,学好 SpringCloud 就是大神级别的了,SpringCloud 整合了很多组件。举个例子:以前你小时候去逛街,去猪肉市场买猪肉,去农贸市场买青菜,去米行买米,去五金店买锅碗瓢盆。有一天,一家大型超市在街头开业,街上的男女老少全部跑去那里买东西了。只有那些朴素的农民还是坚持去专门的门店买,而这些门店熬不了几年也要面临倒闭关门。这个例子告诉我们一个道理:学会整合社会各种资源于一体,提供给用户一站式服务的经营方式,将会成为主流。电商巨头阿里巴巴,就是这样变强大的。

   概念:SpringCloud 是一个基于 SpringBoot 实现的微服务架构开发工具,它涉及配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供一种简单的开发方式。SpringCloud 是一个解决微服务架构实施的综合性解决框架,它整合了诸多被广泛实践和证明过的框架作为实施的基础部件,并在该体系基础上创建了一些优秀的边缘组件

一大堆关键字,太高深了,不容易理解,只有后续接触到,再回过头看看,才能体会其中含义!

OK,聊完微服务的自我修养,有没有兴趣自学了?跟着我的步骤一起自学吧!嗨起来~

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值