享学课堂特邀作者:老顾
转载请声明出处!
前言
阿里开源的Nacos从去年7月份第一个release版本到现在已经出到1.1.3版本,官方的版本规划为:Nacos从0.8.0开始支持生产可用,1.0版本可大规模生产可用。
关于 Nacos 名字:前四个字母分别为 Naming 和 Configuration 的前两个字母,最后的 s 为Service。
Nacos是什么
Nacos是什么?小伙伴们是不是没有听说吧。但Eureka做过微服务的肯定知道吧,在SpringCloud中做服务注册中心组件,类似Duboo的Zookeeper,还有Consul。
Nacos也是一个注册中心组件,不过它不仅仅是注册中心。Nacos也是一个配置中心,比如SpringCloud中的Config,将配置文件版本化管理。
那么Nacos到底是什么呢, 总结为官网一句话就是:
一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
简单来说 Nacos 就是注册中心 + 配置中心的组合,提供简单易用的特性集,帮助我们解决微服务开发必会涉及到的服务注册与发现,服务配置,服务管理等问题。
Nacos还是Spring Cloud Alibaba组件之一,负责服务注册与发现。
为什么是 Nacos
现在的微服务生态中,已经有很多服务注册与发现的开源组件,如 Eurka,ZooKeeper,Consul,为什么还要用Nacos呢,我们看下这些框架的简单对比:
据说 Nacos 在阿里巴巴内部有超过 10 万的实例运行,已经过了类似双十一等各种大型流量的考验
相比之下,目前的Nacos无论是部署,还是使用上都简单,更重要的是文档资料齐全,社区活跃度高。
并且Nacos与目前主流的开源生态都提供了很好的支持:
1、Nacos 是专为 Dubbo 而生的注册中心与配置中心
2、Nacos 会完全兼容 Spring Cloud
3、Nacos 支持 Service Mesh 集成,Kubernetes 集成
除此之外,阿里巴巴正在通过Dubbo + Nacos以及一系列开源项目打造服务发现、服务及流量管理、服务共享平台,未来还在不断地发展和演进,相信未来会有更多的地方上使用 Nacos。
单机部署
准备环境
Nacos依赖Java环境来运行,所以部署前需要保证环境要求:
1、64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix。
去github上搜索nacos,发现releases发布版本2、64 bit JDK 1.8+
解压运行
这里 Nacos 单机部署方式使用命令 -m standalone ,如果是 Windows 命令,可以直接双击 startup.cmd 文件即可。
浏览器访问http://{ip}:8848/nacos/index.html,点击就进入了Nacos的可视化管理界面,需要账号密码登录访问,默认都为****nacos
登录之后就能在网站侧边栏上看到Nacos的主要功能菜单:配置管理,服务管理,集群管理,命名空间。
服务提供者
通过一个简单的示例来感受一下如何将服务注册到Nacos,其实和Eureka没有太大差别
POM
创建一个工程名为shop-goods-service的服务提供者项目,pom.xml配置如下:
注:因为我们使用Dubbo的RPC,所以也引用了Dubbo;这个以后会讲
Application
通过@EnableDiscoveryClient注解表明是一个Nacos客户端,该注解是Spring Cloud提供的原生注解
定义接口实现
注意:GoodsServiceImpl的接口实现类上面有@Service注解,是org.apache.dubbo.config.annotation.Service
application.yml
启动工程
通过浏览器访问 http://192.168.5.153:8848/nacos,即 Nacos Server 网址
你会发现一个服务已经注册在服务中了,服务名为goods-provider。这个过程其实蛮简单的,跟之前dubbo的使用没什么不一样。
当然这个是服务提供者,要想看到效果,我们再来新建服务消费者
服务消费者
POM
这个POM文件和提供者很类似,因为消费者我们将用web演示,所以增加个依赖包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
Application
application.yml
注意:服务提供者和消费者,yml配置中,在2.1.x后需要增加
spring.main.allow-bean-definition-overriding: true
服务消费
新建一个Controller,请求某个商品id的基本信息。
注意:@Reference这个注解是org.apache.dubbo.config.annotation.Reference
启动工程
我们会发现多了一个名为 goods-consumer 的服务。我们浏览器访问http://localhost:9092/goods/12
总结
我们上面完成一个简单的服务发现和注册,以及服务消费,小伙伴们是不是感觉很简单,他不单单支持dubbo,还能无缝支持SpringCloud的微服务。
当然Nacos不仅仅是服务注册发现功能,还有强大的配置中心功能,下一篇文章持续分享nacos,谢谢!!!
你的赞和关注是我继续创作的动力~
网友评论