哪家做网站的公司,传奇霸业官网下载,天津优化公司,百度指数批量获取NacosRibbonFeign核心微服务架构图 架构原理
1、微服务系统在启动时将自己注册到服务注册中心#xff0c;同时外发布 Http 接口供其它系统调用(一般都是基于Spring MVC)
2、服务消费者基于 Feign 调用服务提供者对外发布的接口#xff0c;先对调用的本地接口加上…NacosRibbonFeign核心微服务架构图 架构原理
1、微服务系统在启动时将自己注册到服务注册中心同时外发布 Http 接口供其它系统调用(一般都是基于Spring MVC)
2、服务消费者基于 Feign 调用服务提供者对外发布的接口先对调用的本地接口加上注解FeignClientFeign会针对加了该注解的接口生成动态代理服务消费者针对 Feign 生成的动态代理去调用方法时会在底层生成Http协议格式的请求类似 /stock/deduct?productId100
3、Feign 最终会调用Ribbon从本地的Nacos注册表的缓存里根据服务名取出服务提供在机器的列表然后进行负载均衡并选择一台机器出来对选出来的机器IP和端口拼接之前生成的url请求生成调用的Http接口地址 http://192.168.0.60:9000/stock/deduct?productId100最后基于HTTPClient调用请求
Nacos架构图 Nacos核心功能点
服务注册Nacos Client会通过发送REST请求的方式向Nacos Server注册自己的服务提供自身的元数据比如ip地址、端口等信息。Nacos Server接收到注册请求后就会把这些元数据信息存储在一个双层的内存Map中。
服务心跳在服务注册后Nacos Client会维护一个定时心跳来持续通知Nacos Server说明服务一直处于可用状态防止被剔除。默认5s发送一次心跳。
服务健康检查Nacos Server会开启一个定时任务用来检查注册服务实例的健康情况对于超过15s没有收到客户端心跳的实例会将它的healthy属性置为false(客户端服务发现时不会发现)如果某个实例超过30秒没有收到心跳直接剔除该实例(被剔除的实例如果恢复发送心跳则会重新注册)
服务发现服务消费者Nacos Client在调用服务提供者的服务时会发送一个REST请求给Nacos Server获取上面注册的服务清单并且缓存在Nacos Client本地同时会在Nacos Client本地开启一个定时任务定时拉取服务端最新的注册表信息更新到本地缓存
服务同步Nacos Server集群之间会互相同步服务实例用来保证服务信息的一致性。
Nacos核心功能源码架构图 Nacos服务注册表结构Mapnamespace,Mapgroup::serviceName, Service 举例说明 Nacos服务端源码单机运行
# 下载nacos源码 git clone https://github.com/alibaba/nacos.git
选择Tag 1.4.1版本
源码整体结构(注意nacos源码导入要求maven 3.2.5以上版本) 1、源码单机运行
直接运行console模块里的 com.alibaba.nacos.Nacos.java
# 增加启动vm参数 -Dnacos.standalonetrue 2、源码集群运行
nacos集群需要配置mysql存储需要先创建一个数据名字随便取然后执行 distribution/conf 目录下的 nacos-mysql.sql 脚本然后修改 console\src\main\resources 目录下的 application.properties 文件里的mysql配置如下所示
### If use MySQL as datasource:
spring.datasource.platformmysql### Count of DB:
db.num1### Connect URL of DB:
db.url.0jdbc:mysql://127.0.0.1:3306/nacos?characterEncodingutf8connectTimeout1000socketTimeout3000autoReconnecttrueuseUnicodetrueuseSSLfalseserverTimezoneUTC
db.user.0root
db.password.0root
运行console模块里的 com.alibaba.nacos.Nacos.java需要增加启动vm参数端口号和实例运行路径nacos.home(对应的目录需要自己提前创建好)每台server的nacos.home目录里需要创建一个conf文件夹里面放一个cluster.conf文件文件里需要把所有集群机器ip和端口写入进去见下图