找回密码
 立即注册
查看: 328|回复: 0

微服务概念

[复制链接]
发表于 2022-3-3 14:27 | 显示全部楼层 |阅读模式
1.微服务

1.1.什么是微服务


将一个复杂的单体式服务进行合理的拆分,分成多个子服务,服务与服务间通过松耦合的形式交互
12.微服务的优势


优点:单一职责 可扩展 灵活组合 高可靠  对技术栈更包容 新人熟悉接管服务代码更容易,降低了维护成本
缺点:运维成本高、复杂度高、影响性能
13.微服务需要解决的问题


服务注册、服务发现、负载均衡、健康检查、熔断、限流、部署、升级、监控和告警、调用链(链路追踪)
2.grpc

2.1什么是grpc


远程过程调用,定义一个服务,指定其可以远程调用的方法,在服务端实现这个接口,并启动一个grpc服务来处理客户端的调用,在客户端拥有一个存根能够像服务端一样的方法。
在 gRPC 里客户端应用可以像调用本地对象一样直接调用另一台不同的机器上服务端应用的方法,使得您能够更容易地创建分布式应用和服务
2.2允许定义四类流式方法:


单项rpc 、服务端流式rpc、 客户端流式rpc 、双向流式rpc
2.3grpc优势


1.解决不同语言级及环境之间的通信
2.基于http2.0通信 在应用层跟传输层之间增加了一个二进制分帧层
HTTP 2.0会将所有传输的信息分割为更小的消息和帧,
并对它们采用二进制格式的编码;压缩请求头和响应头;
单tcp连接多路复用;服务器可以主动推送资源给客户端
3.使得应用程序之间可以进行通信
4.gRPC可以通过protoBuf来定义接口,从而可以有更加严格的接口约束条件
5.通过protoBuf可以将数据序列化为二进制编码,这会大幅减少需要传输的数据量,从而大幅提高性能。
6.gRPC可以方便地支持流式通信
3.Protocol Buffers

3.1什么是Protocol Buffers


Protocol Buffers是Google定义的一种跨语言、跨平台、可扩展的数据传输及存储的协议。主要是用于内部服务
3.2优点


1.因为将字段协议分别放在传输两端,传输数据中只包含数据本身,不需要包含字段说明,所以传输数据量小,解析效率高(编解码效率高)。
2.支持多种语言
3.相比于json和xml,它表达同样的数据可以达到一个3到10倍的压缩效果
4.字段编号,有助于向后兼容
3.3缺点


二进制格式导致可读性差,版本维护成本,缺乏自描述,通用性差
对于浏览器环境编译代码体积较大,因为预先加载数据的序列化和反序列化方法,会导致需要加载额外的js代码。
3.4什么情况下考虑json


1.希望代码可读性更强
2.带宽不足以增加更多的开发工具
3.运行不同类型的网络服务带来的工作负荷已经过大
4.服务端应用是基于js开发的
5.浏览器直接面向服务拿数据
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2025-5-10 01:26 , Processed in 0.133077 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表