微服务 分布式

RPC

1、rpc 一个节点请求另一个节点提供的服务 <—> 本地函数的调用
在A服务器上调用B服务器上的函数然后返回给A结果就是rpc(远程过程调用)
why do like this?
e.g. 电商系统,扣减库存,是一个独立的服务,就是在另一台服务器上,如果写到本地,会性能瓶颈

1)这样的话一定会牵扯到网络,做成一个web服务(gin、beego、net/httpserver...)
2)参数怎么传过去 json/xml/protobuf -但最常用的json并不是性能最高的编码协议,性能要求高,
就要另辟蹊径,比如用protobuf
这里面涉及序列化和反序列化

在这里插入图片描述

3)http问题:一次性 一旦对方返回结果,连接断开,断开后重连是比较耗时的;
http2.0能保持长连接 grpc基于http2.0的
下图划红线的地方就有了多种选择

在这里插入图片描述

grpc 和 protobuf

1、grpc使用了brotobuf协议( 高压缩比,序列化和反序列化相比 json 性能高太多,2-100倍 )

杂论

1、用docker 尽量拆分,解耦,能够快速地迭代更新
服务注册和发现—解决了写死ip的问题,健康检查(服务集群谁宕机了,心跳检查)的问题涉及到接口问题 http rpc,负载均衡,
每个服务都是一个小集群
实例先注册到名字服务上,
服务发现 B 服务从名字服务上获得 A 服务列表,从中选取 A 服务中一个ip
服务注册和服务发现的解决方案 — zookeeper consul etcd

2、k8s 解决部署运行/资源调度/服务发现/动态伸缩(节点和容器数增减)
无状态服务就是说重启服务不需要保持重启之前的状态

docker化—k8s部署—CICD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值