美文网首页古德斯达迪
SpringCloud Alibaba之Nacos

SpringCloud Alibaba之Nacos

作者: 享学课堂 | 来源:发表于2019-11-11 15:01 被阅读0次

    享学课堂特邀作者:老顾

    转载请声明出处!

    前言

    阿里开源的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。

    2、64 bit JDK 1.8+

    去github上搜索nacos,发现releases发布版本

    解压运行

    这里 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,谢谢!!!

    你的赞和关注是我继续创作的动力~

    相关文章

      网友评论

        本文标题:SpringCloud Alibaba之Nacos

        本文链接:https://www.haomeiwen.com/subject/wistictx.html