微服务治理中的挑战与Go语言实践
98 浏览量
更新于2024-08-31
收藏 2.63MB PDF 举报
"微服务治理中的探索与实践"
微服务治理是当前IT行业中一个非常重要的议题,随着微服务架构的广泛应用,微服务治理的复杂性问题也日益突出。本文将从微服务治理的两个痛点入手,探讨微服务化带来的挑战和Go语言在服务发现框架Discovery中的实践历程。
微服务化带来的挑战
微服务化的两个痛点是:如何拆分微服务,微服务的边界怎么划分制定;二是微服务上了规模之后如何管理。微服务化以后,服务拆分的比较多,调用链也比较长,调用链很容易受到一个坏节点的影响,导致用户端出现超时的现象。另外,负载不均衡会导致热点问题,并影响资源调度;单个节点不可用,如果限流或者熔断手段做的不好可能有雪崩效应;微服务代理的分布式事务问题和分布式一致性问题,以及编排、日志、链路追踪等问题。
微服务治理的复杂性问题包括:如何保证注册和发现;如何保证多机房高可用;如何保证低延迟等等。微服务化以后,服务调用链路变得非常复杂,如何保证注册和发现是一个非常重要的问题。
Go语言在服务发现框架Discovery中的实践历程
2015年到2017年,B站的微服务也是基于Zookeeper,Zookeeper是一个CP系统,可以保证一致性,在网络分区的情况下保证可用性。但是Zookeeper有一个问题,就是难以支持跨机房。如果机房1和机房2由于某些不稳定的原因发生网络断开,providerB去往ZKFollower的注册是无法实现的。
2018年,我们开始自研了服务发现框架,目前该框架已经在B站大规模使用了。这是一个AP的系统,ServiceProvider注册以后,所有的注册、健康检测、取消注册都会通过DiscoveryServer异步同步到其它DiscoveryServer,然后来保证最终的一致。DiscoveryServer一定要满足网络分区时的自我保护,保证健康的服务节点可用。
客户端与DiscoveryServer是通过HTTPLongPolling来连接的。这种方式开发比较简单,客户端可以实时地获取服务的注册信息。
微服务治理的复杂性问题可以通过服务发现框架来解决,服务发现框架可以保证注册和发现、多机房高可用、低延迟等等。微服务化以后,服务调用链路变得非常复杂,如何保证注册和发现是一个非常重要的问题。
微服务治理是一个非常复杂的问题,需要我们从多方面入手,探讨微服务化带来的挑战和Go语言在服务发现框架Discovery中的实践历程。
2021-10-11 上传
2021-10-11 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38694800
- 粉丝: 4
- 资源: 1021
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析