开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实战(二)

简介: Spring Cloud微服务架构设计与开发实战课时1.2—什么是微服务架构Microservice 。Java Spring Cloud是全球范围内最成熟、最完善、最流行的微服务架构方案体系。被众多的互联网大公司采用,包括阿里巴巴、腾讯、支付宝、网易、IBM、谷歌、京东、百度、滴滴等。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!

哈喽各位同学们大家好呀,小编今天带着开发者学院中课程什么是微服务架构Microservice”干货总结来了~一起学习新课程吧!

课程链接以及图谱地址小编已经为大家指路了,搭配学习效果更佳👇

课程名称:什么是微服务架构Microservice

课程地址:https://developer.aliyun.com/learning/course/60/detail/1105

图谱名称:Alibaba Java 技术图谱

图谱地址:https://developer.aliyun.com/graph/java


什么是微服务架构Microservice


微服务架构目前非常火爆,在架构领域属于当红的明星架构,那么什么是微服务架构? 

image.png 

微服架构是在移动互联网时代崛起的新架构模式现在架构模式一般称为Microservice,本身叫微服务现在的互联网公司,尤其是国内阿里、腾讯、微博、京东、拼多多等,严格来说都是微服务架构。 

回顾历史,这么多年架构的发展最具有代表性是淘宝腾讯,但是腾讯更像QQ微信的架构,后台主要以C++为主,是典型的分布式架构软件直播类、社交类的抖音也是一个典型的微服架构。 

起步较早的淘宝经历过三大阶段,单体到SOA,再到微服务。微服务架构是2000年到2010年之间非常火爆的架构,尤其是一些大型的银行项目。同时,它分布式架构非常重要的阶段,是一个代表性的架构。 

当年无论是IBM,还是各大银行的架构师,在技术峰会上基本上讨论的都是SOA相关的概念。微服架构作为现阶段比较火爆的架构,是在其他的架构基础上演化而来,诞生于分布式SOA的技术架构,淘宝是典型的案例 

淘宝早期是单体的,后面开始往分布式,转Java去Oracle,并开始用Microservice,包括引入其他的分布式解决方案,逐步构造今天的微服务架构。后续诞生的电商公司,大部分都借鉴了淘宝的架构发展历史经验,例如京东在2010年开始转Java,也有类似的微服务框架和解决方案。 

为什么国内大公司都是通过Java语言来进行编写 

本身编程语言没有优劣之分,对于项目的开发人员、工程师、架构师而言,解决问题,帮公司创造价值,在技术选型上满足公司不同阶段不同业务的需求,这是基本出发点。合格的架构师在技术选型时,需要考虑方案落地性,招人成本,组建团队成本以及后续开发过程中对应的解决方案。 

目前来看,微服务架构是Spring Cloud出现最早,参与公司最多,开源社区最活跃最成熟的微服务架构解决方案,并且还在不断的迭代演化。 

基于Java、Mysql、Linux等阿里不断摸索分布式架构的解决方案,并把积累的经典解决方案框架都开源供其他公司借鉴学习 

 

一、什么是微服务架构Microservice 

微服务的定义 

1. 微服务架构模式 

2. Microservice 

3. Dr. Peter Rodgers2005 Cloud Computing Expo技术大会上提出概念 

4. 2007, Netflix开始向微服务架构师进发 

5. 并最终开源了自己研发的Java微服务框架 

6. 开源社区命名为Spring Cloud 

7. 微服务是一种新型的 软件架构风格 

8. 把单个巨型服务应用,分解为多个独立的、微小的服务程序 

9. 单独部署 

10.单独伸缩 

11.去中心化:数据中心、管理中心 

12.敏捷性、灵活性、需求变化,更加高效的软件架构模式 

 

微服务架构生在SOS,最早的时候并不叫微服务架构,而是叫Micro Web Service,指微小的web service程序,使用Java写了一套轻量级的微服务架构的解决方案,是移动互联网时代很重要的一个标志,服务端的接口的应用程序的开始轻量计划。 

目前微服务框架以recipe风格为主的一个很重要的原因,后续无论是去中心化、敏捷开发、单独部署等都是随着程序的微服务化快速开发与部署,逐步诞生了一系列的经典的工具,辅助用户提升业务应用的开发部署模式效率。 

 

微小的服务 

1.微服务架构:将单个应用拆分成多个独立的、微小的服务。 

2.每个小服务程序运行在独立的进程中。 

3.服务与服务之间通过轻量协议通信。 

4.通信机制互相协作、互相配合,从而为终端用户提供业务价值。 

5.每个小服务,可以采用不同的语言、框架、工具 独立开发、测试、部署、运维 

6.微服务:独立的小服务。 

 

Michael Service的简称过来就是微服务,实际指微小的服务程序,之前各个服务程序都在一个项目中,现在拆开方便进行各个功能单独迭代升级。移动互联网中微服务迭代的非常快,无论是淘宝的支付宝,还是微信、微博,其他的APP都是微服务加工。设置手机默认浏览器也是,子功能模块它其实都在单独的进行功能迭代的,尤其是国内定制的浏览器,360浏览器,腾讯浏览器,百度浏览器其实里面在各种功能基本上也都单独进行迭代的。杀毒软件也有各种不同的背后通信数据采集的机制。 

 

Microservices 

In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. 

These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies. 

 

-- James Lewis and Martin Fowler 

 

image.png 

詹姆斯里维斯            Money Follow              

除了麦飞公司是微服务架构的先驱公司以外,还有几个重要的技术专家他们不断宣传微服务架构,他们工作sort of works软件咨询架构,中国也有分公司。从他们做的架构可以看到,咨询师使用微服务架构,微服务架构已成为时代的潮流。 

 

微服务 

简而言之,微服务架构风格是一种将单个应用程序开发为一套小服务程序的方法,每个小服务都在自己的进程中运行,并使用轻量级协议(通常是HTTP协议)进行通信。 

这些服务围绕业务功能构建,可通过全自动部署机制独立部署。这些服务很少使用中心化管理模式,可以用不同的编程语言开发,也可能使用不同的数据存储技术。 

 

-- James Lewis 与 Martin Fowler 

 

现在看到关于微服务架构的一些书籍或公开文章里面,基本上认为现在微服务架构,通信的接口都是 Recipe,HTTP+Jason格式进行交互。相比传统的 rpc、double、web service重量级的框架来说,有些业务场景需要更高性能的通信协议后续会看到一些新版本的微服务框架在不断迭代和进化。 

 

Wikipedia定义 

1. In computing, microservices is a software architecture style in which complex applications are composed of small, independent processes communicating with each other using language-agnostic APIs.  

2. 在计算机领域中,微服务是一种软件架构风格,复杂的应用程序由语言无关的API、相互通信的小型独立服务进程组成 

3. These services are small building blocks, highly decoupled and focused on doing a small task, facilitating a modular approach to system-building. 

  1. 这些服务是小型构建模块,高度解耦,专注于完成一项小任务,是一种便捷的模块化系统构建方法。 

在协议这个层次上进行了迭代改造,微服务架构并不是只一种架构,它是复杂架构的一个代表,里面涉及到很多种设计模式与框架。 

 

 

二、微服务的发展历史 

1. Dr. Peter Rodgers introduced the term “Micro-Web-Services”during a presentation at the Web Services Edge conference in 2005. On slide #4 

2. In 2007, Netflix started on a long road towards fully operating in thecloud. 

3. A workshop of software architects held near Venice in May 2011used the term “microservice” 。 

4. All of these Netflix libraries and systems were open-sourced around20125. In May 2012, the same group decided on“microservices” as the most appropriate name。 

6. James Lewis presented some of those ideas as a case study in March2012 at 33rd Degree in Kraków in Microservices - Java, the UnixWay, as did Fred George about the same time. 

7. Adrian Cockcroft at Netflix, describing this approach as "fine grained SOA“ 

8. 2014年4月25号,Martin Fowler发表Microservices a definition of this new architectural term 

9. In 2015, Spring Cloud Netflix reached 1.0. 

10.2018年10月31日Spring Cloud Alibaba宣布正式开源,提交给Spring 方孵化器 

 

微服务并非全新的架构,回顾计算机历史发展史,会发现基本上无论算法框架还是理论知识都有一个明显的时间线或者依赖关系。后续出现的框架一定比前面的框架设计的更好,因为它是借鉴或者总结前面经典的设计思想模式,然后进行改进,代表性公司麦飞,内部实践并且把框架全部贡献给社区,做出了很大贡献 

麦飞后续将微服务架构的解决方案全部开源,是Spring Cloud 最早的一批微服务框架,目前社区也在用阿里也把自己的方案打包进行了开源。 

 

微服务架构的发展历史 

1. Dr. Peter Rodgers 在2005年的Web Services Edge conference 大会上演讲,PPT第4页引入了“Micro-Web-Services一词 

2. 2007年,Netflix开始走向全面拆分巨型SOA服务的漫长道路。 

3. 2011年5月在威尼斯附近举办的软件架构师研讨会使用了“微服务”“microservices”一词。 

4. 2012 Netflix 开源了所有的微服务相关工具框架的源码 

5. 2012年5月, 同一个组织宣布“microservices是最恰当的名词 

6. James Lewis 在2012年4月 第33届 Degree in Kraków in Microservices- Java, the Unix Way,大会上案例研究分享时提出了类似的想法, Fred George 也大约在这个时间提出了类似观点. 

7. Netflix公司的Adrian Cockcroft, 称为:“fine grained SOA“ 

8. 2014年4月25号,Martin Fowler发表Microservices a definition of this new architectural term 

9. 2015, Spring Cloud Netflix 正式发布1.0版本. 成为微服务架构的首选 

10.2018年10月31日Spring Cloud Alibaba 宣布正式开源 

 

微服务架构先驱 

image.png 

Money Follow (图右1),写了很多经典的书:企业应用架构模式重构等、敏捷宣言17发起人之一,目前一直活跃软件架构领域。他是在技术大会上公开进行与演讲、推广,为领域做出了很大贡献 

詹姆斯里维斯(上图下方)微服务架构发明人,在work PSL主要负责服务架构宣传与咨询 

阿德里安(左一麦飞的技术总监,将理论和实践结合先驱,基于Java框架做出了一套自研微服务解决方案,并且开源给社区 

相关文章
|
4月前
|
负载均衡 Java API
《深入理解Spring》Spring Cloud 构建分布式系统的微服务全家桶
Spring Cloud为微服务架构提供一站式解决方案,涵盖服务注册、配置管理、负载均衡、熔断限流等核心功能,助力开发者构建高可用、易扩展的分布式系统,并持续向云原生演进。
|
10月前
|
人工智能 安全 Java
智慧工地源码,Java语言开发,微服务架构,支持分布式和集群部署,多端覆盖
智慧工地是“互联网+建筑工地”的创新模式,基于物联网、移动互联网、BIM、大数据、人工智能等技术,实现对施工现场人员、设备、材料、安全等环节的智能化管理。其解决方案涵盖数据大屏、移动APP和PC管理端,采用高性能Java微服务架构,支持分布式与集群部署,结合Redis、消息队列等技术确保系统稳定高效。通过大数据驱动决策、物联网实时监测预警及AI智能视频监控,消除数据孤岛,提升项目可控性与安全性。智慧工地提供专家级远程管理服务,助力施工质量和安全管理升级,同时依托可扩展平台、多端应用和丰富设备接口,满足多样化需求,推动建筑行业数字化转型。
370 5
|
5月前
|
监控 Java 数据库
从零学 Dropwizard:手把手搭轻量 Java 微服务,告别 Spring 臃肿
Dropwizard 整合 Jetty、Jersey 等成熟组件,开箱即用,无需复杂配置。轻量高效,启动快,资源占用少,内置监控、健康检查与安全防护,搭配 Docker 部署便捷,是构建生产级 Java 微服务的极简利器。
494 3
|
11月前
|
安全 Java Apache
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 身份和权限认证
本文介绍了 Apache Shiro 的身份认证与权限认证机制。在身份认证部分,分析了 Shiro 的认证流程,包括应用程序调用 `Subject.login(token)` 方法、SecurityManager 接管认证以及通过 Realm 进行具体的安全验证。权限认证部分阐述了权限(permission)、角色(role)和用户(user)三者的关系,其中用户可拥有多个角色,角色则对应不同的权限组合,例如普通用户仅能查看或添加信息,而管理员可执行所有操作。
571 0
|
11月前
|
安全 Java 数据安全/隐私保护
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 三大核心组件
本课程介绍如何在Spring Boot中集成Shiro框架,主要讲解Shiro的认证与授权功能。Shiro是一个简单易用的Java安全框架,用于认证、授权、加密和会话管理等。其核心组件包括Subject(认证主体)、SecurityManager(安全管理员)和Realm(域)。Subject负责身份认证,包含Principals(身份)和Credentials(凭证);SecurityManager是架构核心,协调内部组件运作;Realm则是连接Shiro与应用数据的桥梁,用于访问用户账户及权限信息。通过学习,您将掌握Shiro的基本原理及其在项目中的应用。
412 0
|
10月前
|
人工智能 Java 数据库
飞算 JavaAI:革新电商订单系统 Spring Boot 微服务开发
在电商订单系统开发中,传统方式耗时约30天,需应对复杂代码、调试与测试。飞算JavaAI作为一款AI代码生成工具,专注于简化Spring Boot微服务开发。它能根据业务需求自动生成RESTful API、数据库交互及事务管理代码,将开发时间缩短至1小时,效率提升80%。通过减少样板代码编写,提供规范且准确的代码,飞算JavaAI显著降低了开发成本,为软件开发带来革新动力。
|
7月前
|
IDE Java API
Java 17 新特性与微服务开发的实操指南
本内容涵盖Java 11至Java 17最新特性实战,包括var关键字、字符串增强、模块化系统、Stream API、异步编程、密封类等,并提供图书管理系统实战项目,帮助开发者掌握现代Java开发技巧与工具。
357 1
|
9月前
|
人工智能 数据可视化 JavaScript
颠覆开发效率!国内首个微服务编排框架Juggle开源啦!
Juggle是国内首个开源的微服务编排框架,专注于解决企业微服务进程中接口重复开发、系统对接复杂等问题。它提供零代码、低代码和AI增强功能,通过可视化拖拽快速组装简单API为复杂接口,支持多协议、多语言脚本和流程多版本管理。相比国外框架如Conductor,Juggle更贴合国内需求,具备高效开发、企业级可靠性及信创适配等优势,助力企业实现敏捷创新与数字化转型。
颠覆开发效率!国内首个微服务编排框架Juggle开源啦!
|
8月前
|
Java API 微服务
Java 21 与 Spring Boot 3.2 微服务开发从入门到精通实操指南
《Java 21与Spring Boot 3.2微服务开发实践》摘要: 本文基于Java 21和Spring Boot 3.2最新特性,通过完整代码示例展示了微服务开发全流程。主要内容包括:1) 使用Spring Initializr初始化项目,集成Web、JPA、H2等组件;2) 配置虚拟线程支持高并发;3) 采用记录类优化DTO设计;4) 实现JPA Repository与Stream API数据访问;5) 服务层整合虚拟线程异步处理和结构化并发;6) 构建RESTful API并使用Springdoc生成文档。文中特别演示了虚拟线程配置(@Async)和StructuredTaskSco
974 0