新浪weibo mesh
服务网格做什么
如何选型
1、业务升级代价太高 要让业务的升级成本降低到0 要兼容所有rpc用法 所以自研 2、期望的是业务方只需要将rpc jar包换成这个rpc mesh jar包就行了
自研思路
1、要兼容传统(物理机、虚拟机)和云 2、控制中心包括服务管理平台和数据收集中心
架构设计
1、数据收集中心: a、Metric:收集耗时、响应情况 b、Trace:分布式请求跟踪系统APM c、Alarm:报警功能 2、Protocol a、RPC:兼容老的RPC协议 b、mesh包括通讯协议(http1.1和2.0)和数据协议(protobuff) (注:http1.0不支持 因为是短连接;http1.1和http2.0支持keep alive长连接;tpc是长连接;连接还在 server短可以直接推送消息给client) 2、sidecar之间的健康检查没有通过注册中心而是本身
总体流程
1、服务管理平台、控制中心、数据收集中心都是现成的服务(之前文章介绍过)那么自研Service Mesh只需要实现proxy就可以了 2、之前Service和Proxy是一个进程 现在需要修改成2个独立的进程即可 3、将二者放到同一个pod中
如果sidecar挂了对整体是否有影响?
没有影响。
sidecar挂掉 pod如何处理?
如果sidecar挂掉了 就会被监控到 直接把当前pod杀死就行了 k8s会自动重启一个pod
2个应用程序放在同一个物理机上架构怎样?
漂移
1、日志漂移 服务器1上有服务1生成日志1 如果服务器1上面的服务1挂了 在服务器2上启动服务2生成日志2 如果日志1和日志2有强依赖关系 那么必须得在服务器1上启动服务1继续在日志1的基础上生成日志 2、重试漂移 pod如果挂了 再次重启 那么ip就会改变 重试漂移到云上任何节点都没有关系