For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
微服务架构开发随着互联网的不断发展而被越来越多的程序员掌握,今天我们就通过案例分析来简单了解一下,微服务入门需要掌握哪些知识点。
1.什么微服务?
微服务是一种软件开发技术-面向服务的体系结构(SOA)架构样式的一种变体,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供终价值。
每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTfulAPI)。
每个服务都围绕着具体业务进行构建,并且能够独立地部署到生产环境、类生产环境等。
应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据上下文,选择合适的语言、工具对其进行构建。
2.微服务体系
服务描述
类似服务的说明文档,简单但不可或缺。比如,服务调用先要解决的问题就是服务如何对外描述。你对外提供了一个服务,那么这个服务的服务名叫什么?调用这个服务需要提供哪些信息?调用这个服务返回的结果是什么格式的?这些就是服务描述要解决的问题。
注册中心
下一步要解决的问题就是服务的发布和订阅,就是说你提供了一个服务(Provider),如何让外部(Consumer)想调用你的服务的人知道。这个时候就需要一个类似注册中心(Registry)的角色,服务提供者将自己提供的服务以及地址登记到注册中心,服务消费者则从注册中心查询所需要调用的服务的地址,然后发起请求。
服务框架
通过注册中心,服务消费者就可以获取到服务提供者的地址,有了地址后就可以发起调用。但在发起调用之前你还需要解决以下几个问题。服务通信采用什么协议?是RESTfulAPI还是gRPC?数据传输采用什么方式数据压缩采用什么格式?这些通常集成到了我们的服务框架里面。
服务监控
一旦服务消费者与服务提供者之间能够正常发起服务调用,你就需要对调用情况进行监控,以了解服务是否正常。通常来讲,服务监控主要包括三个流程,指标收集,数据处理,数据展示。监控是为了发现问题和异常,如果要进一步跟踪和定位问题,则需要进一步了解服务追踪。
服务追踪
除了需要对服务调用情况进行监控之外,你还需要记录服务调用经过的每一层链路,以便进行问题追踪和故障定位,后达到接近问题的目的。服务监控和追踪可以合并起来,但是要明确各自的职责是不一样的。
服务治理
服务监控能够发现问题,服务追踪能够定位问题所在,而解决问题就得靠服务治理了。服务治理就是通过一系列的手段来保证在各种意外情况下,服务调用仍然能够正常进行。
3.微服务优点
易于开发和维护
启动较快
局部修改容易部署
技术栈不受限
按需伸缩
4.微服务缺点
运维要求较高
分布式的复杂性
接口调整成本高
重复劳动
5.什么是gRPC?
是谷歌开源的RPC框架。
该技术是为了解决什么问题?
解决了多语言数据传输的简单、通用、高效、安全的问题。
它的调用流程?
以client调用server的add函数为例。
客户端:gRPCServer
服务端:gRPCStub
交互过程就是客户端发送请求到服务端,服务端处理请求并将结果发送响应返给客户端。
处理请求过程:
客户端把请求的参数进行序列化,序列化是通过ProtoBuf协议【protobuf】来编码的,编完码向服务端发送请求,请求跨网络,基于HTTP2.0协议,
此时服务端接收到了请求,服务端同样通过ProtoBuf协议进行解码,反序列化,发现本地有add函数,将结果序列化,用ProtoBuf协议编码,通过网络来到客户端,客户端通过ProtoBuf协议协议反序列化,把响应的结果用到客户端的程序代码里。
分析完过程,gRPC不会一个人唱独角戏,它必须结合ProtoBuf协议协议才能发挥功效。
6.ProtoBuf协议好处?
跨平台——方便传输数据
跨语言——方便解析数据,解析成自己语言的语法结构
比json,xml小而快
7.gPRC和ProtoBuf联系?
gRPC要实现跨平台+跨语言+序列化、反序列化,就要用到ProtoBuf协议来实现。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei456学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。