SpringCloud第三篇(服务中心与OpenFeign)

打印 上一主题 下一主题

主题 989|帖子 989|积分 2967

p

  
一、服务中心

在上一章我们实现了微服务拆分,并且通过Http哀求实现了跨微服务的长途调用。不过这种手动发送Http哀求的方式存在一些问题。
试想一下,如果商品微服务被调用较多,为了应对更高的并发,我们进行了多实例部署,如图:

此时,每个item-service的实例其IP或端口差别了。为了办理上述问题,就必须引入注册中心的概念了,接下来我们就一起来分析下注册中心的原理。
注册中心原理
在大型微服务项目中,服务提供者的数量会非常多,为了管理这些服务就引入了注册中心的概念。注册中心、服务提供者、服务消费者三者间关系如下:

流程如下:


  • 服务启动时就会注册本身的服务信息(服务名、IP、端口)到注册中心
  • 调用者可以从注册中心订阅想要的服务,获取服务对应的实例列表(1个服务可能多实例部署)
  • 调用者本身对实例列表负载均衡,挑选一个实例
  • 调用者向该实例发起长途调用
当服务提供者的实例宕机或者启动新实例时,调用者如何得知呢?


  • 服务提供者会定期向注册中心发送哀求,陈诉本身的健康状态(心跳哀求)
  • 当注册中心长时间收不到提供者的心跳时,会以为该实例宕机,将其从服务的实例列表中剔除
  • 当服务有新实例启动时,会发送注册服务哀求,其信息会被记录在注册中心的服务实例列表
  • 当注册中心服务列表变更时,会自动关照微服务,更新本地服务列表
二、Nacos注册中心

官方网站如下:https://nacos.io/en/

我们基于Docker来部署Nacos的注册中心,
1,起首我们要准备MySQL数据库表,用来存储Nacos的数据。由于是Docker部署,以是大家需要将资料中的SQL文件导入到你Docker中的MySQL容器中:

2,将nacos文件夹上传至Liunx系统:

3,此中的nacos/custom.env文件中如下,有一个MYSQL_SERVICE_HOST也就是mysql地址,需要修改为你本身的虚拟机IP地址:
  1. PREFER_HOST_MODE=hostname
  2. MODE=standalone
  3. SPRING_DATASOURCE_PLATFORM=mysql
  4. MYSQL_SERVICE_HOST=192.168.88.128
  5. MYSQL_SERVICE_DB_NAME=nacos
  6. MYSQL_SERVICE_PORT=3306
  7. MYSQL_SERVICE_USER=root
  8. MYSQL_SERVICE_PASSWORD=123
  9. MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
复制代码
4,然后,将课前资料中的nacos目录上传至虚拟机的/root目录。
进入root目录,然后实行下面的docker命令:
  1. docker run -d \
  2. --name nacos \
  3. --env-file ./nacos/custom.env \
  4. -p 8848:8848 \
  5. -p 9848:9848 \
  6. -p 9849:9849 \
  7. --restart=always \
  8. nacos/nacos-server:v2.1.0-slim
复制代码
5,启动完成后,访问下面地址:http://192.168.88.128:8848/nacos/,留意将192.168.88.128更换为你本身的虚拟机IP地址。
初次访问会跳转到登录页,账号密码都是nacos


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

惊雷无声

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表