开发者学堂课程【5天突破 Spring Cloud:微服务架构、新特性与注册中心】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/781/detail/13700
微服务架构、新特性与注册中心
内容介绍:
一.微服务架构
二.20年软件架构演化之路
三.服务注册与发现
四.Spring Cloud Eureka 服务发现与注册
五.Eureka 注册中心开发实战
六.Spring Cloud 2020 重大变化
七.Spring Cloud 2020 微服务架构提醒
一、微服务架构 (Microsservices):
微服务架构强调微(micro),微服架构属于分布式架构,但又在其基础上进行了发展。
如中国的应用互联网产品:微博、微信,相比于PC时代的传统网站,微博源自于 Blog 思想,微信相当于 PC时代的聊天程序的移动版。相比之前的,更加微小、灵活。
手机桌面 APP 后台也是微服务架构。很多公司的业务场景及业务规模还达不到微服务。它们的架构多为三层、四层、五层,架构层次稍微扩展则形成分布式扩展,达到集群。
提及 Spring Cloud ,Java在微服务领域起步较早,实际案例较多 。绝大部分互联网公司的微服务框架都使用 Spring Cloud, 其他语言仿制的微服框架,也是以 Spring Cloud 为基础。
IOT 物联网设备(监控、车载设备可以通过物联网实现前端数据与后台交互,其中也可能使用微服务架构,比如高德地图,个人的位置信息会实时上传到公网服务器)
微服务可以与接口关联,一般指网络接口或公共接口 ,一些应用的登录功能、查询功能、评论功能、点赞功能都有专门的服务接口,考虑到应用的用户量等,所以不止有一台服务器接口。
在中国,当年以淘宝为首的互联网公司走了基于 Java mysql Linux 的免费的技术路线,抛弃了包括 IBM 大型机,以及其他的 EMC 昂贵的存储设备的技术架构。走了一条相对来说低成本的技术路线。
互联网公司服务器大多采用集群模式——多台模式(即多个低配的服务器),来实现一台高配置的昂贵的大型服务器所达到的处理的请求数量,如支付宝支付、交水电费、微信聊天、人脸识别等接口其后台在实际部署时都是多台服务器,具有高并发 、高可用的特点。保证服务尽量都是功能可用的状态。
二.20年软件架构演化之路
微服架构不一定完美、不一定必须。
架构一词源于建筑行业,指整体建筑物的结构,即架构。
微服务架构也是在之前的架构上一步步演化过来的,包括三层、四层、五层,到单体,再到分布式,中间还经历了 SOA 时代(面向服务的架构)。在不同时代背景下,应用、平台、软件架构都要适应当时的架构发展。软件技术架构也在不断迭代演化,这是技术不断进步的体现。
1. 微服务架构
当时背景下大部分都是单体,全部在一个程序里开发,部署为 word ,出现了拆分的理念。该领域最早探索的是 Netfix , 美国在线视频网站公司, 开发了基于 Java 的编程语言应用框架。淘宝则开发了不同的技术路线。
微服务架构模式 Microserivce
Dr.Peter Rodgers 2005 Could Computing Expo 技术大会上提出概念
2007, Netfix 开始向微服务架构师进发,并最终开源了自己研发的 Java 微服务框架,开源社区命名为 Spring Cloud
①微服务的定义:微服务是一种新型的软件架构风格,其将多个巨型服务应用,分解为多个独立的、微小的服务程序,单独部署,单独伸缩,去中心化(数据中心、管理中心),敏捷性、灵活性、需求变化,更加高效的软件架构模式。
②微服务架构:将单个应用拆分成多个独立的、微小的服务,体现了分家的概念,每个小服务程序运行在独立的进程中,服务与服务之间通过轻量协议通信,通信机制相互协作、互相配合,从而为终端用户提供价值,每个小服务可以采用不同的语言、框架、工具独立开发、测试、部署、运维。
Java 在语言语法,包括开发工具已经足够老,它相比于其他语言,已经不是最友好的,但它也一直在不断进步。Java 从诞生之初就开源,很多公司都使用,不管是 PNP 、或是J语言,高端软件人才,如架构师,设计模式比较早的工程实践探索基本都是 Java 领域率先推出,总结了更好的实践经验。Java 整个体系庞大。
Spring Cloud 专门解决微服务的技术架构方案。
国内某些文章关于微服务提出者的说法有误,国外设计模式的经典书目的作者都是 Martin Fowler ,包括敏捷开发等,他是敏捷开发的提出人,在软件架构领域有很大影响,但他不是微服务的提出人。James Lewis 是 Martin Fowler同事,同样也有关于写关于微服务的书,Martin Fowler做序,他们共同推动微服务发展。目前在 Solidworks 做首席科学家,Solidworks 软件工程领域有名的咨询公司。



