欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos

关于Nacos

  • Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施,可用于快速实现动态服务发现、服务配置、服务元数据及流量管理等,官方文档地址:https://nacos.io/zh-cn/docs/what-is-nacos.html

关于本文

  • 本文适合以下两类读者:
  1. 对于初学者来说,了解基本概念后,接下来应该动手实践一番;
  2. 您正在寻找一个快速搭建Nacos环境的方式,用于开发、学习等;
  • 为了节约您的时间,咱们立即开始吧;

本次体验功能简介

  • 本次实战的内容是体验Nacos的服务注册发现功能,简介如下:
  1. 名为simple-provider的应用注册到Nacos server,这样的应用部署在六个docker容器上;
  2. 名为simple-consumer的应用对外提供一个http服务,通过浏览器访问此服务时,simple-consumer会调用simple-provider的接口,将simple-provider返回的数据和此simple-provider的地址返回给浏览器;
  3. 由于simple-provider部署在六个docker容器上,因此每次通过浏览器发请求到simple-consumer时,simple-consumer都会将请求发送到不同的simple-provider容器上,所以浏览器上展示的simple-provider地址每次都不一样;
  4. simple-consumer是从Nacos server上取得六个simple-provider的地址的;
  5. simple-consumer和simple-provider都注册到Nacos server上了,因此在Nacos的管理页面上可以看到它们的信息;
  • 本次实战的整体架构图如下,请顺着橙色提示框的数字顺序来看请整个流程: 在这里插入图片描述

环境

  • 本次实战的环境和版本信息如下,您需要准备好docker和docker-compose:
  1. 操作系统:CentOS Linux release 7.6.1810
  2. Docker:1.13.1, build b2f74b2/1.13.1
  3. docker-compose:1.24.1, build 4667896

一个命令完成部署

  • 在Linux机器执行以下命令,即可搭建整个Nacos环境(Nacos server,服务提供者、服务消费者):
wget https://raw.githubusercontent.com/zq2599/blog_demos/master/nacosdemo/dockerfiles/simple/docker-compose.yml && \
docker-compose up --scale provider=6 -d
  • 镜像下载需要一些时间,请耐心等待,等容器全部创建成功就完成了环境搭建,可以开始体验了。

体验Naocs

  • 假设Linux电脑的IP地址是192.168.121.131,在浏览器输入:http://192.168.121.131:8848/nacos ,会显示nacos登录页面,如下图,输入账号 nacos ,密码也是 nacos在这里插入图片描述

  • 如下图,登录后点击红框1中的 服务列表 菜单,从右侧的服务列表可见两个应用都已经注册到nacos上了,而且红框2显示spring-provider应用有6个实例: 在这里插入图片描述

  • 点击上图红框3中的 详情 ,如下图,列表会展示simple-provide应用的6个实例,每个实例的IP都是一个docker容器的IP地址: 在这里插入图片描述

  • 在浏览器输入地址:http://192.168.121.131:8080/test ,会向simple-consumer应用发起请求,此时simple-consumer会调用simple-provider提供的web服务,并将simple-provider的地址和返回内容拼接成一个字符串,然后返回到浏览器,如下图,可见本次提供服务的simple-provider实例是 172.18.0.9在这里插入图片描述

  • 按下F5刷新浏览器,如下图,可见这次给simple-consumer提供服务的simple-provider是 172.18.0.3 在这里插入图片描述

  • 至此,Naocs的注册发现功能体验完毕,您已经对Naocs有了初步的了解,如果您对整个环境的搭建感兴趣,或者想了解simple-provider和simple-consumer这两个应用的代码详情,请关注后续文章,我会对今天实战的内容做详细说明。

欢迎关注51CTO博客:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...