微服务Service Mesh原理与实战

课程简介:

 今天分享的内容注册中心,微服务重中之重在导读部分介绍微服务时,我提到微服务架构的引进也带来了一些问题,其中服务注册发现是最需要解决的问题。简单来说,服务注册发现是保证当服务上线下节点发生变更时,服务的消费者和服务的提供者能够保持正常通讯,而在分布式架构中,服务会注册到注册中心,当服务需要调用其他服务时,请在这里找到服务的地址进行调用,注册中心是微服务中最重要的内容,也是和SOA架构中集中总线通信最大的区别点。
今天我就和你聊一聊注册中心服务注册发现,首先请你设想一下,在单体服务架构中,我们只有一个服务,这个服务就像前面的ngx这样的网关系统负责负载均衡,而后端的机器节点也是我们手动配置上去的,相信大家都配置过此类配置,如果机器不够用了,增加一个节点,然后reload一下NGX就好了这样的配置架构我运行的还算稳定,维护成本公司也可以接受。
但随着这个项目越来越出名,老板开始想继续开发二期、三期、四期、此时不断扩大的新项目仍然和老项目共用,一个用户体系,这么多服务同时使用同一个数据库,数据库的压力也越来越大,你想把用户模块独立成一个单独的服务,这样也就开始了单体服务演进到微服务的过程,是你遇到的第一个问题。单体服务核心拆出来了,服务之间如何通讯?其实你选择一个RPC协议或者HTTP做通讯协议都是可以解决问题的,那如何保证服务的高可用?你可能很容易想到和单体服务一样,给这个新的用户服务配置一个内部网关,用作复杂均衡,因为内部服务数量不多,这样比较容易应付增加机器带来的网关配置变动。随着项目越来越复杂,修正bug和正确的添加新功能变得更加困难,你选择继续拆分服务,慢慢的你拆分的服务数量上升到了两位数。但是你发现每次因为机器负载瓶颈而增加机器时,需要修改很多份内网关配置。
这无形中可以预料到修改配置带来的维护成本和出错的概率都会从指数级增加,这个时候我们需要一种解决上述问题的办法,服务注册发现。单说服务注册发现这个概念你可能很难理解,但跟你说清楚它是解决什么问题,你就能很好理解了,为了方便理解,在下图做了简单说明。
通过示意图,我们可以发现服务在启动时将自己的信息注册到服务发现组件中,服务发现组件会存储这些信息。服务消费者就可以从服务发现的组件查询服务提供者的网络地址,并使用该地址调用服务提供者接口,而当服务提供者网络地址发生变更时,会重新注册到服务注册发现组件。使用这种方式,服务消费者就无需人工修改提供者的网络地址。
服务注册发现最大的用处就是解决在网关或者LB中手动配置服务地址的问题。你可以无需手动配置,自动让调用端发现背调端的服务的机器节点服务注册中心。那具体怎样利用服务发现解决服务间的通信问题?我举一个简单的例子,你刚入职一家新公司,尚未认识其他部门同事,但是你的业务需要完成跨部门协作,这个时候你怎么联系这个人?一般来说,你的公司会使用钉钉或者飞书,整个公司有一个通讯录,组织架构中所有的联系人都会在这个列表中,当你联系其他部门同事时,你就可以通过这个列表私聊他们。
你用这个列表解决了其他部门成员的通讯的问题,而解决多个服务间通讯问题的工具,我们称之为服务注册中心。所以有些人也会把注册中金叫做名字服务,顾名思义,也就是通过服务名查找对应的服务地址的服务。这有点像手机中的通讯录,通过人名查找手机号。在分布式架构中,注册中心也承接了服务的地址录入和查找功能。
你看想解决多个服务间的通信问题,只需要实现一个注册中心服务,让服务在启动的时候调用服务注册机构注册上来,再由注册中心把注册上来的机器信息存储起来,当其他服务调用时,通过watch服务名发现这个服务的后端机器节点就可以了。当你完全理解注册中心后,你可以很容易的实现一个简单的注册中心,但作为微服务最核心的组件,想要做到工业级产品生产高可用并不是那么容易的一件事。注册中心的健康检查设计想要实现一个基本的猪仓中心,健康检查功能是必不可少的。你可以想象一下,如果一个节点出现了问题,流量还被打过去,这肯定是所有业务都无法接受的。所以我们要需要有一个健康检查机制来保证服务节点的健康状态。我们来看看三种不同的健康检查方式,你也可以结合具体的业务场景想一想哪种健康检查方式更适合自己。

课程截图:

课程目录:

01注册中心:微服务的重中之重.md
02注册中心:如何搭建一个高可用、健壮的注册中心?.md
03负载均衡器:服务发现后如何实现节点保护?.md
04负载均衡器:如何实现染色和地域优先?.md
05路由器:针对不同的流量实现多种路由策略.md
06服务治理之限流熔断:引入微服务架构后,不可缺少的功能组件.md
07连接池:阻塞式连接池和多路复用连接池的差异.md
08微服务网关(Kong):网关在微服务架构中的作用.md
09配置中心:如何在微服务治理中发挥更大的作用?.md
10可观测性之Trace:更快速定位问题.md
11可观测性之监控告警:利用Prometheu和Grafana收集监控数据.md
12技术选型:在众多ServiceMeh开源产品中选择合适自己的.md
13Envoy入门:最常用的数据面介绍.md
14Itio入门:基于最新1.7版本的环境搭建和介绍.md
15xDS:控制面和数据面的通信桥梁.md
16Ingre和Egre:入口流量和出口流量控制.md
17金丝雀发布:金丝雀部署和版本控制.md
18如何利用组件做到服务的可观测性?.md
19项目背景:判断选择开源产品还是自研.md
20数据面:基于Go-Micro快速实现代理模块.md
21控制面:实现xDS配置管理.md
22如何落地:在实践落地中可能遇到的问题和困难.md
23最佳实践:为什么要从SDK演进到ServiceMeh?.md
24未来展望:中间件Meh化的可行性.md
导读ServiceMeh:从单体服务出发,独立于业务演进的微服务架构.md
结束语ServiceMeh会是微服务演进的终极方向吗?.md
开篇词ServiceMeh,传统微服务架构新的里程碑.md
文档
01注册中心:微服务的重中之重.mp4
02注册中心:如何搭建一个高可用、健壮的注册中心?.mp4
03负载均衡器:服务发现后如何实现节点保护?.mp4
04负载均衡器:如何实现染色和地域优先?.mp4
05路由器:针对不同的流量实现多种路由策略.mp4
06服务治理之限流熔断:引入微服务架构后,不可缺少的功能组件.mp4
07连接池:阻塞式连接池和多路复用连接池的差异.mp4
08微服务网关(Kong):网关在微服务架构中的作用.mp4
09配置中心:如何在微服务治理中发挥更大的作用?.mp4
10可观测性之Trace:更快速定位问题.mp4
11可观测性之监控告警:利用Prometheu和Grafana收集监控数据.mp4
12技术选型:在众多ServiceMeh开源产品中选择合适自己的.mp4
13Envoy入门:最常用的数据面介绍.mp4
14Itio入门:基于最新1.7版本的环境搭建和介绍.mp4
15xDS:控制面和数据面的通信桥梁.mp4
16Ingre和Egre:入口流量和出口流量控制.mp4
17金丝雀发布:金丝雀部署和版本控制.mp4
18如何利用组件做到服务的可观测性?.mp4
19项目背景:判断选择开源产品还是自研.mp4
20数据面:基于Go-Micro快速实现代理模块.mp4
21控制面:实现xDS配置管理.mp4
22如何落地:在实践落地中可能遇到的问题和困难.mp4
23最佳实践:为什么要从SDK演进到ServiceMeh?.mp4
24未来展望:中间件Meh化的可行性.mp4
导读ServiceMeh:从单体服务出发,独立于业务演进的微服务架构.mp4
结束语ServiceMeh会是微服务演进的终极方向吗?.mp4
开篇词ServiceMeh,传统微服务架构新的里程碑.mp4

下载权限

查看
  • 免费下载
    评论并刷新后下载
    登录后下载

查看演示

  • {{attr.name}}:
您当前的等级为
登录后免费下载登录 小黑屋反思中,不准下载! 评论后刷新页面下载评论 支付以后下载 请先登录 您今天的下载次数(次)用完了,请明天再来 支付积分以后下载立即支付 支付以后下载立即支付 您当前的用户组不允许下载升级会员
您已获得下载权限 您可以每天下载资源次,今日剩余
编程与开发

前端基础建设与架构 30 讲

2022-3-25 15:56:58

编程与开发

Java从小白到入职

2022-3-25 21:20:46

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索