(1)SpringCloud常见组件有那些
有无数微服务需要相互调用:可以用远程调用组件OpenFeign组件,也可以用Dobble
这么多微服务相互调用怎么管理:就用到注册中心组件Nacos,Eureka
所有的服务去找注册中心做注册,拉去到的服务是一个列表,做远程调用是需要做负载均衡,用到负载均衡组件Ribbon
这么多服务做配置管理该怎末办,需要配置中心组件,做统一配置管理
微服务群形成了,将来对外提供服务的时候,不是随便什么人都能访问,所以在微服务群的前面有一个网关组件,作为入口
(2)Nacos服务注册表结构是怎样的
nacos是一个注册中心,所有微服务在启动时,就会提交自己的信息到nacos当中,由nacos来保存当前服务的信息,保存到那里呢?就是保存在注册表当中,只有把服务的信息保存下来了,将来消费者获取服务时,才能够在注册表里得到服务的信息:ip,端口等才能进行访问,nacos是如何创建注册表呢?结构什么样子
从两方面分析:
环境隔离开了,在这个namespace下有很多服务,这些服务可以继续去分,进行分组,按照业务模块,比如交易模块涵盖微服务很多:订单有关,支付有关等等相关的服务作为一个组
在大型企业里有很多服务,做分组管理比较方便,小型企业来讲服务不多,没有分组必要
大多数情况下分组做默认default_group
分组下面就是真正的微服务了
分级存储模型如何实现呢?可以通过Map的key value的结果去实现
(3)Nacos服务注册表-Nacos源码搭建
找到我们springCloud的兼容的版本nacos版本
orderService服务:
UserClient远程调用去查询,userclient是基于Feign实现的
userService服务:
console相当于nasos的控制台:
(4)Nacos服务注册表-深入Nacos源码
下面是nacos的页面展示的是nacos的控制台,控制台页面会向服务端发送ajax的请求,进行交换,交互的就是那些controller
这些controller并不是我们想找的,我们想找的的是微服务注册的入口,找到这个就能找到表结构
通过nacos的api可以发现注册发现的调用接口:注册实例一定跟注册表有关
console模块中引入了其他模块config模块负责的是nacos的统一配置管理,naming模块正是负责的微服务的注册发现
注册实例的方法:
serviceMap就是服务的注册表:key是namespace 值又是个map key group 值是实例
再进入这个实例:
实例下面是集群
又维护一个map key是集群名称 值是集群本身
集群里面有实例,再跟进去:
里面维护的是集合 Instance对象,有两个集合,一个放临时实例,一个永久实例