收藏 分销(赏)

spring cloud微服务架构设计与开发实践.pdf

上传人:Stan****Shan 文档编号:1240841 上传时间:2024-04-19 格式:PDF 页数:221 大小:10.34MB
下载 相关 举报
spring cloud微服务架构设计与开发实践.pdf_第1页
第1页 / 共221页
spring cloud微服务架构设计与开发实践.pdf_第2页
第2页 / 共221页
spring cloud微服务架构设计与开发实践.pdf_第3页
第3页 / 共221页
spring cloud微服务架构设计与开发实践.pdf_第4页
第4页 / 共221页
spring cloud微服务架构设计与开发实践.pdf_第5页
第5页 / 共221页
点击查看更多>>
资源描述

1、书籍简介Java Spring Cloud 是全球范围内最成熟、最完善、最流行的微服务架构方案体系。被众多的互联网大公司采用,包括阿里巴巴、腾讯、支付宝、网易、IBM、谷歌、京东、百度、滴滴等。本次课程涵盖最新版本的 Spring Cloud 微服务架构体系,微服务架构模式、算法与典型场景、框架、优缺点,Spring Cloud 2020 的重大变化、扩展 Netflix、SpringCloud Alibaba 阿里巴巴体系,Dubbo 等架构选型对比,淘宝微服务架构案例。重点讲解:服务治理、注册发现、熔断限流、网关代理、链路追踪、安全监控等核心问题,循序渐进,概念为辅、实战为主,涵盖经典面试

2、题。让您成为合格的微服务架构师。目录1.0 Java Spring Cloud 微服务实战大纲71.1 什么是微服务架构 Microservice121.2 微服务架构 Microservice 的优缺点211.3 微服务架构 Microservice 的典型应用场景271.4 微服务架构 Microservice 的淘宝改造案例341.5 微服务架构 Microservice 的经典协议401.6 微服务架构 Microservice 的开发框架451.7 微服务架构 Microservice 的设计策略521.8 微服务架构 Microservice 的经典设计模式581.9 Java S

3、pring Cloud 微服务开发环境配置621.10 Spring Cloud 2020 重大变化与选型提示692.1 为什么选择 Java Spring Cloud 微服务架构742.2 Spring Cloud 微服务注册与发现 Eureka812.3 Spring Cloud 微服务 API 实战开发并注册到 Eureka872.4 Spring Cloud 客户端 Feign 调用微服务 API932.5 Spring Cloud 微服务 Ribbon 负载均衡算法1012.6 Spring Cloud 微服务 API 的监控 Hystrix1072.7 Spring Cloud 微

4、服务 API 的 Hystrix 熔断限流降级1162.8 Spring Cloud 微服务网关代理 Zuul1222.9 Spring Cloud 微服务的身份验证与安全机制1312.10 Spring Cloud 微服务集群 Monitor 监控中心1373.1 Spring CloudAlibaba 微服务体系1433.2 Spring Cloud AlibabaNacos 经典注册中心对比14993.3 Spring Cloud 开发微服务 API 注册到 Nacos1613.4 Spring Cloud 客户端 Feign 集成 Nacos 中心1743.5 Spring Cloud

5、 使用 Nacos 作为微服务统一配置中心1813.6 Spring Cloud 实战集成 Sentinel 熔断限流1933.7 Spring Cloud 网关 Zuul 集成 Nacos 注册中心2003.8 Spring Cloud Alibaba Seata 分布式事务2043.9 Spring Cloud Gateway 微服务新网关实战2103.10 Spring Cloud Gateway 实战接入 Nacos 服务21671.0 Java Spring Cloud 微服务实战大纲1.0 Java Spring Cloud 微服务实战大纲内容简介:一、微服务架构课程大纲二、Dub

6、bo 集成 Nacos 注册中心实战目前微服务架构是非常的火爆,各个大型互联网公司都在使用微服务架构,目前是以 Java Spring Cloud 的微服务架构为主。本次课程是贴近目前以阿里等 BAT 为首的微服务架构的技术方案。一、一、微服务架构课程大纲微服务架构课程大纲1.1.微服务架构理论知识微服务架构理论知识第一阶段会讲解课程最重要的一个部分微服务架构体系的基础理论知识。介绍微服务架构的理论、分布式的协议、微服务架构技术方案的选型以及微服务架构的拆分的原则。之后会讲解目前几个典型互联公司的案例。这里是以淘宝的微服务架构作为其中一个重要的一个知识点给大家进行分享,作为供大家学习的一个参考

7、。1.0 Java Spring Cloud 微服务实战大纲1.0 Java Spring Cloud 微服务实战大纲在微服务架构体系概念这一板块给大家介绍比较重要的几个知识点,包括微服务架构优缺点、经典的设计原则、微服架构领域比较经典的设计模式以及淘宝微服务架构设计案例。在 Spring Cloud 微服务架构实战阶段,会给大家系统的讲解整个微服务架构的治理知识、注册和发现、在高频化的情况下如何做到高可用、限流、熔断、网管代理相关内容以及微服务领域另外一个重要功能-安全。在这里面会涉及到一种必须使用的技术叫令牌机制。最后作为扩展阶段的知识,以阿里巴巴开源的微服务框架为主重点介绍阿里开源的Li

8、nux 平台以及 Sentinel-实现熔断、限流非常重要的一个框架。二、微服务学习路线图二、微服务学习路线图1.0 Java Spring Cloud 微服务实战大纲1.0 Java Spring Cloud 微服务实战大纲在国内阿里巴巴对 Java 技术的发展贡献是非常大的。阿里巴巴也是国内最大的开源框架公司,科研项目贡献最多的中国互联网公司。Java 早期缺少典型的解决方案的时候,阿里巴巴都在公司内部进行大规模的实践,包括淘宝以及支付宝等等这些典型的互联网项目。1.1 什么是微服务架构 Microservice1.1 什么是微服务架构 Microservice回顾历史,这么多年架构的发展

9、最具有代表性是淘宝和腾讯,但是腾讯更像 QQ 与微信的架构,后台主要以 C+为主,是典型的分布式架构软件,直播类、社交类的抖音也是一个典型的微服架构。起步较早的淘宝经历过三大阶段,单体到 SOA,再到微服务。微服务架构是 2000年到 2010 年之间非常火爆的架构,尤其是一些大型的银行项目。同时,它也是分布式架构非常重要的阶段,是一个代表性的架构。当年无论是 IBM,还是各大银行的架构师,在技术峰会上基本上讨论的都是 SOA 相关的概念。微服架构作为现阶段比较火爆的架构,是在其他的架构基础上演化而来,诞生于分布式 SOA 的技术架构,淘宝是典型的案例。淘宝早期是单体的,后面开始往分布式,转

10、Java 去 Oracle,并开始用Microservice,包括引入其他的分布式解决方案,逐步构造今天的微服务架构。后续诞生的电商公司,大部分都借鉴了淘宝的架构发展历史经验,例如京东在 2010 年开始转Java,也有类似的微服务框架和解决方案。为什么国内大公司都是通过 Java 语言来进行编写?本身编程语言没有优劣之分,对于项目的开发人员、工程师、架构师而言,解决问题,帮公司创造价值,在技术选型上满足公司不同阶段不同业务的需求,这是基本出发点。合格的架构师在技术选型时,需要考虑方案落地性,招人成本,组建团队成本以及后续开发过程中对应的解决方案。1.1 什么是微服务架构 Microservi

11、ce1.1 什么是微服务架构 Microservice微服务架构诞生在 SOS,最早的时候并不叫微服务架构,而是叫 Micro WebService,指微小的 web service 程序,使用 Java 写了一套轻量级的微服务架构的解决方案,是移动互联网时代很重要的一个标志,服务端的接口的应用程序的开始轻量计划。目前,微服务框架以 recipe 风格为主的一个很重要的原因,后续无论是去中心化、敏捷开发、单独部署等都是随着程序的微服务化快速开发与部署,逐步诞生了一系列的经典的工具,辅助用户提升业务应用的开发部署模式与效率。2.2.微小的服务微小的服务1)微服务架构:将单个应用拆分成多个独立的、

12、微小的服务。2)每个小服务程序运行在独立的进程中。3)服务与服务之间通过轻量协议通信。4)通信机制互相协作、互相配合,从而为终端用户提供业务价值。5)每个小服务,可以采用不同的语言、框架、工具 独立开发、测试、部署、运维。6)微服务:独立的小服务。Microservice 的简称过来就是微服务,实际指微小的服务程序,之前各个服务程序都在一个项目中,现在拆开方便进行各个功能单独迭代升级。移动互联网中微服务迭代的非常快,无论是淘宝的支付宝,还是微信、微博,其他的 APP 都是微服务加工。设置手机默认浏览器也是,子功能模块它其实都在单独的进行功能迭代的,尤其是国内定制的浏览器,360 浏览器,腾讯浏

13、览器,百度浏览器其实里面在各种功能基本上也都单独进行迭代的。杀毒软件也有各种不同的背后通信数据采集的机制。1.1 什么是微服务架构 Microservice1.1 什么是微服务架构 Microservice4.4.微服务微服务简而言之,微服务架构风格是一种将单个应用程序开发为一套小服务程序的方法,每个小服务都在自己的进程中运行,并使用轻量级协议(通常是 HTTP 协议)进行通信。这些服务围绕业务功能构建,可通过全自动部署机制独立部署。这些服务很少使用中心化管理模式,可以用不同的编程语言开发,也可能使用不同的数据存储技术。-James Lewis 与 Martin Fowler现在看到关于微服务

14、架构的一些书籍或公开文章里面,基本上认为现在微服务架构,通信的接口都是 Rest API,以 HTTP+Jason 格式进行交互。相比传统的 rpc、dubbo、web service 重量级的框架来说,有些业务场景需要更高性能的通信协议,后续会看到一些新版本的微服务框架在不断迭代和进化。5.5.WikipediaWikipedia 定义定义1)In computing,microservices is a software architecture style in whichcomplex applications are composed of small,independent pro

15、cesses communicating with each other using language-agnostic APIs.2)在计算机领域中,微服务是一种软件架构风格,复杂的应用程序由语言无关的API、相互通信的小型独立服务进程组成。3)These services are small building blocks,highly decoupled and focusedon doing a small task,facilitating a modular approach to system-building.1.1 什么是微服务架构 Microservice1.1 什么是微服

16、务架构 Microservice9)In 2015,Spring Cloud Netflix reached 1.0.10)2018 年 10 月 31 日 Spring Cloud Alibaba 宣布正式开源,提交给 Spring 方孵化器微服务并非全新的架构,回顾计算机历史发展史,会发现基本上无论算法、框架还是理论知识,都有一个明显的时间线或者依赖关系。后续出现的框架一定比前面的框架设计的更好,因为它是借鉴或者总结前面经典的设计思想模式,然后进行改进,代表性公司如麦飞,内部实践并且把框架全部贡献给社区,做出了很大贡献。Netflix 后续将微服务架构的解决方案全部开源,是 Spring

17、Cloud 最早的一批微服务框架,目前社区也在用,阿里也把自己的方案打包进行了开源。1.1.微服务架构的发展历史微服务架构的发展历史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

18、月,同一个组织宣布“microservices 是最恰当的名词。6)James Lewis 在 2012 年 4 月 第 33 届 Degree in Krakw in Microservices-Java,the Unix Way,大会上案例研究分享时提出了类似的想法,Fred George 也大约在这个时间提出了类似观点.1.1 什么是微服务架构 Microservice1.2 微服务架构 Microservice 的优缺点1.2 微服务架构 Microservice 的优缺点内容简介:一、微服务 Microservice 优点二、微服务 Microservice 缺点一、微服务一、微服务

19、 MicroserviceMicroservice 优点优点1.1.微服务特点一:快速响应需求变化微服务特点一:快速响应需求变化微服务架构诞生在 SOA 时代,在移动互联网时代蓬勃发展并崛起,从早期的互联网公司开始,快速过渡到现在的移动互联网公司,都在大量使用微服务架构,包括大家熟悉的淘宝、微博、微信、抖音等平台,都是很典型的代表。微服务架构很重要的特点就是:快速响应需求变化快速响应需求变化,业务迭代非常快,每月甚至每周都会有大量的改版信息。之前在采用单体巨型非微服务架构有个问题,系统里面的业务模块非常多,大家一起发布、修改、编译很难进行协调,可能是几千人的开发团队,很难做到敏捷开发、发布、上

20、线。使用微信、微博、淘宝、抖音超过 5 年会感受到,迭代非常快,而且经常上线新功能,比如支付宝之前只有支付担保交易,现在可以在上面交水电费、做地铁、城市健康码功能等。淘宝的各种新功能,比如生鲜、直播等。抖音之前只做短视频,现在也开始1.2 微服务架构 Microservice 的优缺点1.2 微服务架构 Microservice 的优缺点比如账号系统比较稳定,基本上不用改,前期有三到五个成员开发,后期只需要一个人维护。后面有新业务,比如淘宝直播、菜鸟快递、余额宝项目上线,再成立新的团队,进行快速开发。现在很多项目都是前期只有一个小组,后面再组建团队上线很多新的功能,比如微信,是从腾讯内部孵化出

21、来,前期只成立了很小的项目组,后期做成上万人的公司。支付宝也是淘宝内部孵化的项目。这种公司成立以后,又开始孵化出更多的业务部门。独立开发拆分以后自主性更强了,独立开发、独立测试、独立部署、独立进程,是微服务快速响应业务需求变化的重要特点。2.2.特点二:敏捷开发、敏捷运维特点二:敏捷开发、敏捷运维 DevOpsDevOps早期 20 年前提出敏捷开发,在微服务时代依然适用,本质上就是“快”,提升开发运维的效率,快速响应用户的需求。传统软件公司为什么不适合大量推广微服务,比如工厂的管理软件,用 VB 开发,用 wondows xp、wondows 7 都可以直接解决问题,20 年不变,这个项目不

22、用敏捷开发也行,开发完成后用两个成员维护着。业务非常稳定,没有发展,或只在某个阶段平稳发展,比如银行系统,国内四大银行,早期的 Java 系统,基本上都是 oracle 或1.2 微服务架构 Microservice 的优缺点1.2 微服务架构 Microservice 的优缺点在使用。随着业务的发展变化,可以更换新的架构。微服务架构非常灵活,合适迭代发展快的项目,比如当下流行的电商业务。二、微服务二、微服务 MicroserviceMicroservice 缺点缺点微服务不是银弹:微服务不是银弹:微服务并不适合所有的场景,因为一旦拆开,通信成本就会上升,架构复杂度会上升,开发人员需要更多,集

23、成测试、部署都会变得更复杂,所以技术选型一定要慎重。微服务的优缺点:微服务的优缺点:合格的架构师,应该以公司业务需求作为出发点,但是很多架构师设计架构的时候,实际并不是这样,有很多其他因素在,会设计不可维护的架构。比如为了对外宣传、便于接到业务,年长的架构师担心被公司裁掉,设计不可维护的架构等。正常情况下,需要从成本、复杂度、测试、监控等方面出发,架构服务。如果在业1.2 微服务架构 Microservice 的优缺点1.3 微服务架构 Microservice 的典型应用场景1.3 微服务架构 Microservice 的典型应用场景内容简介:一、微服务架构 4 大互联网公司案例二、微服务架

24、构 Microservice 典型场景一、一、微服务架构微服务架构 4 4 大互联网公司案例大互联网公司案例目前打开苹果或者种安卓等机器手首页上的应用,基本上都是微服务架构,几个比较典型的代表像淘宝、支付宝、微信、微博、京东等等都是典型的微服务架构。1.3 微服务架构 Microservice 的典型应用场景1.3 微服务架构 Microservice 的典型应用场景微服务架构的案例如电商类的、微博类的、微信类、社交类的、支付类的、直播类的、游戏类、互联网类的、广告类到处都是。这背后反映了架构的拆分,本质上反映的是业务的一个拆分,业务的快速发展技术也一定要快速发展,技术架构快速迭代,才能去适应

25、业务快速发展的模型,这是它的本质的特征。2.2.微服务架构经典案例微服务架构经典案例1.3 微服务架构 Microservice 的典型应用场景1.3 微服务架构 Microservice 的典型应用场景实际以淘宝京东为例这种都是典型的电商架构,前端支持的客户端,也不仅仅是传统的 PC,也包括我们说 APP、小程序都支持,客户端还会对接各种不同的系统,数据库也不是单一数据库,也不是只是 MySQL,有可能还包括大数据,包括 MangoDB、Redis 都会重度的去使用。4.4.微服务与物联网微服务与物联网 IOTIOT 架构架构物联网现在是火爆发展,各种监控设备,包括车载的设备都是物联网的体现

26、,移动导航的一些设备,物联网在车载设备中现在用的比较多的方向,如特斯拉、各种电动汽车大量的使用车载雷达、还有摄像头,这都是互联网,楼宇监控,尤其我交通的监控,公安的人脸识别的网络都是物联网的典型的应用,做这种解决方案很容易,尤其是汽车车载物联网系统,像特斯拉,都很适合微服务架构,还有飞机也有定位导航的设备,大楼火灾、温度、光照、湿度都有。现在互联网架构体系的,本身也是前端对接各种不同的 IOT 设备,数据采集以后进行存储,然后进行分析,手机比如苹果手机丢了,可以设置提交你最后一次关机的手机的所在的位置,丢了手机以后会帮你找手机,通过 APP 账户对,去登录去查找最后一次1.3 微服务架构 Mi

27、croservice 的典型应用场景1.3 微服务架构 Microservice 的典型应用场景6.6.微服务与游戏微服务与游戏 IOTIOT 架构架构导航是不一样的,、话里面有各种业务如打车、旅游线路、推广、酒店用手机导航的时候,它会采集你的数据,这些数据会用来分析大数据,分析以后做后续的一业务的创新,都是典型的应用,都是平台性质,而且平台还有一个很重要特点,就是不断的进行业务创新,不断的进行业务创新,后面才有技术强大的一个驱动力。1.4 微服务架构 Microservice 的淘宝改造案例1.4 微服务架构 Microservice 的淘宝改造案例技术架构,还有微服务也是使用 Java。从

28、全球来看,谷歌和亚马逊技术创新能力非常强的两大公司。还有 Spring Cloud最早成熟的解决方案来自于 Netflix 公司,项献的是公司内部自研的微服务架构方案。还有一些游戏公司,如做愤恕的小鸟的公司,优步的公司,也都是 Java 技术站为主。国内的华为公司现在也大量引入 Java 技术站,早期做通信主要是 C+为主,现在做华为云、华为手机的很多后台应用基本上都是 Java 技术,安卓开发基本上用的都是Java 语言。还有中国平安、IBM 老牌 Java 技术站、头条、陌陌、携程 2016 年转 Java、京东 2010 年转 Java、饿了吗、小米等等。百度也有 Java 的项目,各种

29、语言为主,企业级开发方案相对比较少。目前国内实践探索比较多的是阿里巴巴,贡献了很多开源的解决方案。1.4 微服务架构 Microservice 的淘宝改造案例1.4 微服务架构 Microservice 的淘宝改造案例2.2.淘宝高并发架构淘宝高并发架构 2.02.0PHP+MySQLPHP+MySQL后来淘宝转 Java,尝试用开源的低成本路线解决企业高并发的问题,在当年面临很大的转型压力,很多阿里巴巴自研的包括 Java 分布式、MySQL 数据库中间件、Dubbo、HSF、Spring Cloud 等一系列组件,现在都项献到开源社区,共大家参考。今天大家在开源社区看到这些源码,在国内是开

30、源领域最大的互联网公司,在世界能排到前二,跟谷歌、微软开源贡献的差不多。1.4 微服务架构 Microservice 的淘宝改造案例1.4 微服务架构 Microservice 的淘宝改造案例淘宝也在逐步的微服务化,并且淘宝、天猫、咸鱼、飞猪各种平台都接到淘宝里面,淘宝的业务越来越多,包括淘宝的广告系统、营销系统、客服系统,是典型的分布式过渡到微服务架构阶段。前端从 PC 阶段逐步过渡到移动互联网 APP 的时代,包括小程序,这是很典型的互联网平台发展的代表。4.4.淘宝高并发架构淘宝高并发架构 4.04.0微服务架构微服务架构目前火热的中台架构,严格来说是技术总监 CTO 应该解了的战略层次

31、的方案方针,现在各种技术大会上也在炒作这个概念,但是无论是做微服务架构,还是中台架构,一定要能够落地,不能不懂装懂,只知皮毛。实战阶段以目前最成熟Spring Cloud微服务架构为主,不管你是 Java出身的成员,还是非 Java 出身的成员,都希望大家能动手写代码。1.5 微服务架构 Microservice 的经典协议1.5 微服务架构 Microservice 的经典协议异步请求模式的常见场景是消息推送,发送完某个消息后,这个消息并不会立即到达,可能会经过一定延迟才到达接收方。异步模式的优点是并发或吞吐量较高;缺点是无法保证消息的实时性。目前在分布式架构上,同步与异步相结合的消息交换场

32、景也很常见。协议上绝大部分都是同步模式,个别支持异步,例如邮件协议或者消息协议。二、经典的二、经典的 RPCRPC 协议协议1.5 微服务架构 Microservice 的经典协议1.5 微服务架构 Microservice 的经典协议分布架构继承了早期的分布式框架特点,在 RVICES API 这些应用基础上进行了架构的升级改造,在大规模的服务接口集群化治理走向了更高的层次,架构师面临的挑战也更大。三、微服务常用的通信协议三、微服务常用的通信协议1.1.微服务之间的通信协议与框架中间件微服务之间的通信协议与框架中间件目前,微服务以 Spring Cloud 开发为代表,选取的是 Rest 通

33、信接口格式,后续的微服框架可能更多,有些微服务支持更多的协议和数据格式。目前主流的是 HTTP,属于同步消息通信模式,H5 走 websocket。当下的移动互联网时代大部分追求轻量级接口,目前的框架如 Rest API、Java、Go 还是 node,都非常方便,可以直接在 APP 协议站基础上进行扩展。不同语言的 REST 框架基本由 WEB 框架改造,再加一层数据序列化反序列化即可满足大部分场景需求。因为对于绝大部分前端 APP 来说,数据格式基本是主要的那些格式,没有复杂的路由策略。早期已经具备了基础的接口开发框架,但是还不具备整体性复杂的架构层级的微服务架构风格。1.5 微服务架构

34、Microservice 的经典协议1.6 微服务架构 Microservice 的开发框架1.6 微服务架构 Microservice 的开发框架内容简介:一、微服务架构的开发框架二、微服务开发框架对比三、Spring Cloud 微服务架构生态最完善、最成熟四、Spring Cloud 微服务架构各位同学大家好,我们继续来学习微服务架构设计课程,咱们今这一节课来讲一下微服务架构,经典的开发框架,咱们这个系列课程是以 Java Spring Cloud 的为主导的重点的开发框架,目前微服务生态经过 5 年以上的这种发展历程,其中也出现了其他语言,包括 Java 本身 Spring Cloud

35、 也在不断迭代,也出现新的贡献微服务架构的框架。Spring Cloud 是出现的时间比较早框架,并且它的生态也是最完善的,咱们选择了Spring Cloud 作为目前我们课程的主要的实践案例的练习的框架。下面一起来看下微服务架构有哪些经典的开发框架,以及他们有什么差异,做实际的项目选择的时,大家应该怎么来进行选择。如果技术选型的话,可能直接会影响后面一个架构的落地,因为有些架构并非完善,需要话很大精力去处理相同的问题。1.6 微服务架构 Microservice 的开发框架1.6 微服务架构 Microservice 的开发框架像淘宝、阿里的发展实际代表、Java 或者来讲分布式架构,不断发

36、展历程。淘宝做双十一在商业上非常成功运营模式,但是它在另外一个技术层次来说是倒逼着阿里的技术团队去不断的迎接各种技术挑战,并解决这些问题。除了 Dubbo 以外,内部还有 hsf 框架,早期是解决大规模服务治理的问题,后面进行在内部不断优化协议、性能。Dubbo 在开源以后,国内有很多互联网公司都在用,影响也比较大。作为微服务架构设计的选型的话,Dubbo 不会作为首选,但是 Dubbo 是一个有效的补充。它的优点:经过阿里巴巴集团大规模验证、在不断的迭代、支持高频发,成为响应式框响应式框架、Java 在不断的升级演化,Dubbo 也不例外,协议支持的更多。并不是所有的场景,用 HTTP 协议

37、是最优秀的,后续 Spring Cloud 的版本或者其他的微服务框架,会在协议,通讯协议,数据格式类型尝试做一些优化,因为阿里打包开源一些列的微服务给 Spring Cloud 作为贡献的一部分。外国就是麦飞,国内就是阿里巴巴作为最大的贡献者。像蚂蚁金服的 SOFA、GO 语言的 Go Micro 都是仿制 SpringCloud。生态都不是很完善,没办法和 Spring Cloud 一样的流行,成熟。Java 并不是强在语法,开发工具都不是最好的,强在框架和生态,升级模式。新的设计模式的书都是率先在 Java 实践出来的。二、二、微服务开发框架对比微服务开发框架对比1.6 微服务架构 Mi

38、croservice 的开发框架1.6 微服务架构 Microservice 的开发框架另外 Spring Cloud 本身成长于 Java Spring 整个平台体系中来,之前 JavaSpring 积累的所有生态工具都可以拿过使用。可快速开发、集成、安全设计模块工具、容器的工具可直接使用。加上国内互联网公带头扩展实践落地。Spring Cloud 是架构选型风险成本最低的。如需单独开发新的框架或者新的协议,费时费力。所有的技术发展一定是和公司的业务发展紧密结合,工程师本身是帮别人去开发系统解决问题的。做架构师的话选型一定要选成熟的、完善的、风险最小的、资料多的,遇到问题的时候更容易解决问题

39、。Java Spring 开发平台Spring Boot、Spring Data 都在协助 Spring Cloud 维护开发,拥有一套很大,并完善生态。四、四、SpringSpring CloudCloud 微服务架构微服务架构1.6 微服务架构 Microservice 的开发框架1.6 微服务架构 Microservice 的开发框架每个环节解决不同的问题,无论是注册、发现、部署、网关都有自己的对应解决方案框架。目前的话就是选型的话,首推是 Spring Cloud,因为是一个成熟完善的生态。在技术选型的时候还要尊重业务需求、技术落地、风险问题、考虑公司研发成本等综合考虑,单单是自己语言

40、的喜好的问题。目前来讲,这里面给大家介绍了系统各个不同语言的微服务开发方向,但是目前Spring Cloud 还是最成熟最完善的。下节课的话咱们也看看微服务架构里面经典的设计模式,包括我们整个的拆分的微服的一些原则。1.7 微服务架构 Microservice 的设计策略1.7 微服务架构 Microservice 的设计策略首先大家来思考一个问题,如果让你做微服务架构设计的话,你怎么样去设计微服务?你的微服务应该具备哪些特点的特性?给大家总结重要的一点,我们记住一个问题,微服务架构本身也属于分布式架构,只不过它是更复杂的分布式架构。我们在讲微服务概念的时候,咱们提到过微服务实际它是诞生于 S

41、oA 时代所以它还具备 SoA 架构的一些特点,记住我们所有的架构设计有很重要的一个原则:需求第一:一定要以需求为出发点。所有的架构好与坏一定是相对的,相对他处的一个需求背景。因为微服务架构能够在某些业务场景中具备优势,所以它相比传统的架构,他有一些优点但是同时也存在着缺点,它不完美。单一职责:我们的服务尽量是体现单一职责的思想,粒度不是越细越好,也不是越粗越好。协议统一:还有尽量去统一协议,不包括不得已的话,我们不引入其他协议像我们一般微服务的话,咱们讲现在目前的协议主要是 rest 有可能会比如说有可能你会引入消费者的协议,或者引入其他的这种通讯协议,当然在我们说都是基于实际的需求1.7

42、微服务架构 Microservice 的设计策略1.7 微服务架构 Microservice 的设计策略1)账号模块2)商品模块3)订单模块4)评论模块5)快递模块6)短信模块7)支付模块8)卡券模块9)信用模块10)酒店模块场景它本身就像个生态一样,它里面接入的功能模块多,这里面天生适合和足够庞大的基础上适合分人制快速迭代。微服务架构,新的业务诞生早期可能只有两三台服务器,后面的话做起来可能上千台服务器。包括游戏也一样前端很多平台是属于导游的模式,加入一个模块进来,这个平台作为一个入口。拆分原则一般的话我们是基于业务进行拆分,或者你也可以说是 DDD.1.7 微服务架构 Microservi

43、ce 的设计策略1.7 微服务架构 Microservice 的设计策略服务隔离,各个服务之间互不影响,高并发了也不要影响,扩容也不要影响。五、五、微服务微服务 MicroserviceMicroservice 设计的五大考量设计的五大考量1.1.微服务架构设计的微服务架构设计的 5 5 大考量大考量一个架构师它采用的微服务架构一定要说服别人需要给个合适的理由。服务架构里面在做事物的话是比较难的,所以要注意一个数据一致性问题。1.8 微服务架构 Microservice 的经典设计模式1.8 微服务架构 Microservice 的经典设计模式13)UI 模式:MVC、MVPMVVM 模式微服

44、务架构中的经典的设计模式,一般提到微服务会认为微服务架构指的是一种架构,实际上微服务架构本身涵盖几十种设计模式,可能后续还有更多的设计模式。如图所示,以微服务架构为中心向外发散,有许多设计模式,正下方有两个,一个叫客户端发现,一个叫服务端发现,服务的注册和发现机制也是一个设计模式,微服架构属于更复杂的分布架构,里面也会用到消息通信,通过消息和数据库、其他微服务进行消息补偿。网关的微服务太多,只有一个出口,需要给它同一个代理;安全问题,如图中Access token,和令牌相关的;另外还有高并发的熔断限流,circuit breaker 叫断路器模式,熔断相关,分布式日志、分布式加策、追踪、服务

45、拆分模式、单数据库模式、单实例、单数据库模式多服务共享数据库模式、服务编排模式、统一配置模式等等。1.8 微服务架构 Microservice 的经典设计模式1.8 微服务架构 Microservice 的经典设计模式日志追踪模式日志追踪模式:观察者模式 patternsLog aggregationApplication metricsAudit loggingDistributed tracingException trackingHealth check APILog deployments and changes分布式链路追踪模式UIUI 模式模式:MVCMVPMVVMServer-s

46、ide page fragment compositionClient-side Ul composition1.9 Java Spring Cloud 微服务开发环境配置1.9 Java Spring Cloud 微服务开发环境配置开发环境的话主要是根据个人习惯,用 Mac 开发会稍微贵一点,Windows 开发相对于较便宜可能一万能买苹果两万元的配置,java 环境一般都是 8 这个版本,IDE 大家用的基本上就是国内破解版,企业用的话也要慎重,企业版的功能更强一点,你这个社区版的话可能有很多功能用不了有 Eclipse 你可以装个插件,智能提示可以设置一下。2.2.JavaJava Sp

47、ringSpring CloudCloud 开发工具下载地址开发工具下载地址1)Eclipse:http:/www.eclipse.org/2)IntelliJ IDEA https:/ jdk(不会的上网搜索流程)苹果环境下稍微麻烦一点苹果快捷键的话你要适应。3.3.SpringSpring CloudCloud 在线开发工具在线开发工具1.9 Java Spring Cloud 微服务开发环境配置1.9 Java Spring Cloud 微服务开发环境配置二、二、EclipseEclipse 开发工具开发工具1.1.SpringSpring CloudCloud 微服务模板向导微服务模板

48、向导1.9 Java Spring Cloud 微服务开发环境配置1.9 Java Spring Cloud 微服务开发环境配置这里可以搜索需要的,搜索的都可以用,然后点生成就可以使用。1.9 Java Spring Cloud 微服务开发环境配置1.10 Spring Cloud 2020 重大变化与选型提示1.10 Spring Cloud 2020 重大变化与选型提示内容简介:一、Spring Cloud2020 发布及重大变化二、Spring Cloud2020 提醒一一、SpringSpring Cloud2020Cloud2020 发布及重大变化发布及重大变化1.1.SpringS

49、pring CloudCloud 20202020 发布发布1.10 Spring Cloud 2020 重大变化与选型提示1.10 Spring Cloud 2020 重大变化与选型提示4)Bootstrap 默认禁用,可以使用依赖兼容老项目5)org.springframework.cloud:spring-cloud-starter-bootstrap6)Spring Cloud LoadBalancer 支持服务端统计7)Spring Cloud Kubernetes 新增响应式 Java Client、LB 统计8)Spring Cloud Openfeign 支持 Spring C

50、loud CircuitBreakers9)Spring Cloud Security 代码移到独立的项目中10)Spring Cloud Gateway 支持 LoadBalancer 统计11)Eureka Client 的 RestTemplate 支持 TLS 属性架构师也是很重要的,要有技术深度也有技术广度,见多识广,你才知道好坏,你只知道一个框架,你很难分辨出它的好或者坏。4.4.SpringSpring Cloud2020Cloud2020 以下项目从以下项目从 spring-cloud-netflixspring-cloud-netflix 删除删除 spring-cloud-

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 研究报告 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服