开发者学堂课程【5天突破 Spring Cloud:微服务架构、新特性与注册中心】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/781/detail/13700
微服务架构、新特性与注册中心
Adrian Cockcroft在 Netfix 公司负责微服务的工程实践,Spring Cloud 早期的工程框架。
国内的淘宝、阿里也在做这方面的探索,它是基于 SOA 框架改的,后面在社区里看到的框架 ,有比微服务更加经典的设计思想,阿里内部有两套框架。十几年前,它已经开始有类似于微服务架构的探索。Netfix 走了轻量级的路线。
一些架构中所有部分之间捆绑、开发、打包,而在微服务架构中各个部分可以独立开发,可以只更改某一块然后快速上线。(船小好调头)
③微服务优点:拆分后每一块可以独立进程、独立开发、独立部署、独立测试,体现了服务治理的思想。如果系统较小,就不需要拆分了。有横向纵向膨胀、成长的需求时,则需要拆分。早期对于企业来说,单体应用绝大部分分层,后面是剥离,按照功能开始拆分,各种不同的子功能全部划分开,每个子功能按照需要进行部署。如支付宝的支付功能的接口并发最高。
敏捷开发、敏捷运维 DevOps:
易于替换、专注某个任务、高度解耦(依赖关系)、
基于功能进行组织:商品、支付、评论、机票、新闻、酒店、游戏等
服务可使用不同的语言、系统、平台,通信中使用语言中立的协议,通常是http 独立技术栈、易于测试。
如高德地图的打车功能,是增加后台服务接口,来对接各个公司不同平台的接口,借此实现所需功能。
2. 微服务的发展:微服务的发展历史
① Dr. Peter Rodgers introduced the termMicro-Web-Services”during a presentation at the Web Services Edge conference in 2005. On slide#4
② In 2007, Netflix started on a long road towards fully operating in the cloud
③A workshop of software architects held near Venice in May 2011 used the term "microservice".
④ All of these Netflix libraries and systems were open-sourced around 2012
⑤ In May 2012, the same group decided on“microservices”as the most appropriate name.
⑥ James Lewis presented some of those ideas as a case study in March 2012 at 33rd Degree in Kraków in Microservices-Java, the Unix Way, as did Fred George about the same time.
⑦ Adrian Cockcraft at Netflix, describing this approach as"fine grained SOA"
⑧2014年4月25号, Martin Fowler发表
Microservices a definition of this new architectural term
⑨ In 2015, Spring Cloud Netflix reached 1.0.
⑩2018年10月31日Spring Cloud Alibaba宣布正式开源,提交给Spring官方孵化器
3.微服务的优缺点:
①开发简单 ①架构复杂
②技术线灵活 ②多服务运维难度
③协议简单 ③系统部署依赖
④服务独立无依赖 ④服务间通信成本
⑤独立按需扩展 ⑤数据一致性
⑥可用性高 ⑥系统集成测试
⑦高伸缩性 ⑦重复工作
⑧易于维护单一服务 ⑧性能监控
应用场景:社交、电商、游戏、导航、聊天、搜索、IOT
微服架构:后台应用接口
小型公司、创业公司不适用微服架构,因为它们早期没有用户,某些特定的系统、平台几乎无人使用。微服架构意味着更加复杂的架构交互,更多的开发步骤及成本,更长的周期,技术复杂度更高。
架构设计的出发点一定是基于实际需求的。
开发使用软件 ,需要安装插件, Spring Cloud 项目是在 Spring Bort 项目基础上修改的。