微服务框架 ppt课件
- 格式:pptx
- 大小:979.09 KB
- 文档页数:26


1
微服务治理框架的技术选型
2
目录
微服务治理框架的技术选型 ....................................................................................................................... 1
1 RPC ..................................................................................................................................................... 3
2 服务化 .................................................................................................................................................. 4
3 微服务 .................................................................................................................................................. 6
3
SOA服务化和微服务架构已经发展多年,市场上已经有很多成熟的商业和开源产品,我们没有必要从头搭建一套服务化管理和治理平台,完全可以基于开源服务化框架进行定制化,以适应我们的业务需要。
本文介绍各种流行的RPC框架、服务化管理和治理、微服务框架,并通过讲解其特点来帮助我们做技术选型。
1 RPC
本节介绍简单的远程服务调用的技术栈。
1. JDKRMI
SpringCloudAlibaba微服务讲解(⼀)微服务介绍
微服务介绍
1.1 系统架构的演变
随若互联⽹的发展,⽹站应⽤的规模也在不断的扩⼤,逬⽽导致系统架构也在不断的进⾏变化.从互联 ⽹早起到现在,系统架构⼤体经历了下⾯⼏个过程:单体应⽤架构⼀蟻
直应⽤架构--浴布式架构⼀ >SOA架构⼀〉微服务架构,当然还有悄然兴起的Service Mesh(服务⽹格化).接下来我们就来了解⼀下 每种系统架构是什么样⼦的,以及各
有什么优缺点.
互联⽹早期,⼀版的⽹站应⽤流量较⼩,只需要⼀个应⽤,将所有功能代码都部署在⼀起就可以,这样可以减少开阿发、部署、和维护的成本。
⽐如说⼀个电商系统,⾥⾯会包含狠毒哦⽤户管理、商品管理、订单管理、物流管理等等很多模块,我们会把他们做成⼀个web项⽬,然后部署到⼀台tomcat服务器上。优点:项⽬架构简单,⼩型项⽬的话,开发成本低
项⽬保护署在⼀个节点上、维护⽅便缺点:全部功能集成在⼀个⼯程中,对于⼤兴项⽬来讲不易开发和维护项⽬模块之间紧密耦合,单店容错率低
⽆法针对不同模块进⾏针对性优化和⽔平扩展
随着访问最的逐渐増⼤,单⼀应⽤只能依靠增加节点来应对,但是这时候会发现并不是所有的模块都会 有⽐较⼤的访问量.
还是以上⾯的电商为例⼦,⽤户访问昆的增加可能影响的只是⽤户和订单模块,但是对消,息模块 的影响就⽐较⼩.那么此时我们希望只多増加⼏个订单模块,⽽不増加消
息模块.此时单体应⽤就做不 到了,垂直应⽤就应运⽽⽣了.
所调的垂直应⽤架构,就是将原来的f 应⽤拆成互不相⼲的⼏个应⽤,以提升效率.⽐如我们可 以将上⾯电商的单体就拆分成:
电商系统(⽤户管理 商品管理订单管理)
后台系统(⽤户管理 订单管理 客户管理)
CMS系统(⼴告管理 营销管理)
这样拆分完毕之后,⼀旦⽤户访问量变⼤,只需要増加电商系统的节点就可以了,⽽⽆需増加后台 和CMS的节点.
当垂直应⽤越来越多,重复的业务代码就会越来越多.这时候,我们就思考可不可以将重复的代码抽取 出来,做成统⼀的业务层作为独⽴的服务,然后由前端控制层调⽤不
python⾥⾯的微服务框架学习
前阵⼦学习了java⾥⾯的微服务框架,⽆奈。新接⼿的项⽬是python写的。所以⼜只能切换回python
其实Python也有⾃⼰的微服务框架,其中⽤的最多的就是nameko,nameko框架轻便,使⽤简单,易上⼿,是⼀个很不错的微服务框架
参考博客
⼀:微服务架构原理
微服务架构的实现⽅式:
微服务架构最重要的就是使⽤什么⽅式进⾏服务间通信(也称作服务调⽤),按照通信⽅式的不同,主要可以分为同步通信和异步通信两种⽅式。
同步通信: 同步调⽤⽐较简单,⼀致性强,但是容易出调⽤问题,性能体验上也会差些。同步通信最常⽤的两种协议是RESTful和RPC,⽽⽬前使⽤最⼴泛,最有名的两种微服务框架Spring Cloud和Dubbo分别使⽤了RESTful和RPC协议。RESTful和RPC两种协议各有优势,具体使⽤要看业务场景。Dubbo框架是⼀个⾮常流⾏的采⽤同步通信的分布式微服务框架,下图就是Dubbo框架的⼯作原理图:
⾸先⼀个微服务应⽤程序需要有服务的⽣产者和服务的消费者,另外还需要⼀个注册中⼼(常见的有zookeeper和rabbitmq等)来管理和调度服务。微服务架构的程序运⾏的⼀般步骤为:1. 服务提供⽅,即⽣产者启动服务,并将服务提交到注册中⼼注册服务2. 服务需求⽅,即消费者连接到注册中⼼,向注册中⼼发出请求,申请需要的服务3. 注册中⼼根据消费者发出的请求来调度服务,将对应的服务提供者(⽣产者)的信息发送给消费者4. 消费者和⽣产者之间建⽴连接,消费者调⽤服务5. 记录服务调⽤过程中的信息
异步通信:
异步通信⼀般通过消息中间件来进⾏服务间通信,消息中间件能为调⽤之间提供的缓冲,确保消息积压不会冲垮被调⽤⽅,同时能保证调⽤⽅的服务体验,继续⼲⾃⼰该⼲的活,不⾄于被后台性能拖慢。不过需要付出的代价是⼀致性的减弱。nameko框架就是⼀个采⽤异步通信⽅式的微服务框架,采⽤RabbitMQ消息队列作为消息中间件,原理⾮常简单,使⽤起来也很⽅便。
【微框架】之⼀:从零开始,轻松搞定SpringCloud微服务系列-
-开⼭篇(spring。。。
Spring顶级框架有众多,那么接下的篇幅,我将重点讲解SpringCloud微框架的实现
Spring 顶级项⽬,包含众多,我们重点学习⼀下,SpringCloud项⽬以及SpringBoot项⽬
————————————————————main————————————————————
⼀、SpringCloud项⽬简介
Spring Cloud:
微服务⼯具包,为开发者提供了在分布式系统的配置管理、服务发现、断路器、智能路由、微代理、控制总线等开发⼯具包。
Spring Boot:
旨在简化创建产品级的 Spring 应⽤和服务,简化了配置⽂件,使⽤嵌⼊式web服务器,含有诸多开箱即⽤微服务功能
可以和spring cloud联合部署。
⼆、SpringCloud⼦项⽬介绍
Spring Cloud Config:配置管理开发⼯具包,可以让你把配置放到远程服务器,⽬前⽀持本地存储、Git以及Subversion。
Spring Cloud Bus:事件、消息总线,⽤于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部
署。
Spring Cloud Netflix:针对多种Netflix组件提供的开发⼯具包,其中包括Eureka、Hystrix、Zuul、Archaius等。
Netflix Eureka:云端负载均衡,⼀个基于 REST 的服务,⽤于定位服务,以实现云端的负载均衡和中间层服务器的故障转移。
Netflix Hystrix:容错管理⼯具,旨在通过控制服务和第三⽅库的节点,从⽽对延迟和故障提供更强⼤的容错能⼒。
Netflix Zuul:边缘服务⼯具,是提供动态路由,监控,弹性,安全等的边缘服务。
Netflix Archaius:配置管理API,包含⼀系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。