Nacos 入门(一)

简介

阿里baba在2018年7月份发布Nacos,大佬表示在6-8个月完成到生产可用的0.8版本,目前版本是0.5 

阅读介绍后,个人理解,其思想在一个"共享"词上,并聚合了微服务中的服务发现、配置中心等服务,从以往的Dubbo+Zookeeper 以侧重遵守cp原则的线路转向Dubbo+Nacos 的ap原则(CAP定理), 服务架构中心则更侧重于可用性,netfilx的一套微服务则遵循ap原则

在来说说"共享"问题,对于共享车,某滴给社会生活带来的改变,在于不同的个体(或服务),单车在人群中体现了统一不变的共享性质,再如微服务架构中,注册中心是尤为其他个体的服务所共享,在配置管理有序的配置中心也具有一样的特点,那么注册和配置可以统一一体化治理服务,是这的想的吗?

于spring cloud中来比对,nacos 包含了 eureka, conifg ,bus , git, mq 等功能,看上去,感觉是很方便化服务体系的管理, 对于架构设计思想上就存在区别的两者,各种有各的特点场景,有介绍因为Nacos是脱胎于阿里巴巴的生产代码,整体体系非常庞杂,在代码梳理、重构和剥离与内部的耦合上是一个渐进的过程

公司大佬有安排,熟悉一下nacos架构,有想法在nacos成熟时,可上手生产,好嘛,咱们来渐进嘛,nacos和云原生的无缝接,就当是我爱好的延伸,这时候的我就应该以一种nacos是世界上最好的组件的想法开始入手.

三大功能

  • 服务发现与服务管理

Nacos同时支持基于DNS和基于RPC(如Dubbo/gRPC)的服务发现,并提供服务的实时健康检查,基于Nacos更方便的实现服务断路器。Nacos提供的服务的元数据管理,路由及流量管理策略能够帮助更好的构建更强壮的微服务平台

  • 动态配置管理

动态配置服务允许在所有环境中以集中和动态的方式管理所有应用程序或服务的配置。动态配置消除了配置更新时重新部署应用程序和服务的需要。可以更方便的实现无状态服务,更轻松地实现按需弹性扩展服务实例

  • 动态DNS服务

支持权重路由的动态DNS服务可以更轻松地在数据中心内的生产环境中实施中间层负载平衡,灵活的路由策略,流量控制和简单的DNS解析服务,更容易的实现DNS-based服务发现

操作

nacos 需要的基本环境如下 : 

Nacos 依赖 Java 环境来运行。如果是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:

  1. 64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac
  2. 64 bit JDK 1.8+
  3. Maven 3.2.x+

本次测试,还专门带了mac来干活,发现,公司的wifi太差了,立马上某宝买了一个有线转换器,先暂时用 windows 尝试一下,本机win10

源码方式

git clone https://github.com/alibaba/nacos.git

从github上clone源码,cmd进入 nacos文件夹,接着跟着目录里面的一个BUILDING文件中说明 执行

mvn -Prelease-nacos -DskipTests clean install -U

阿里的东西,把maven设置阿里的镜像仓库,会更好一些,不对,是好很好

这里遇到了一个问题install失败, 如下提示 :

No compiler is provided in this environment. Perhaps you are running ona JRE rather than a JDK?

这个问题是因为环境用了jre,而该install需要用到jdk,那么推断在cmd中执行,有没有用到工具,win系统java的配置也是对的,jdk的环境配置,那么接着想到maven的配置,是不是他自己引用了java的jre,而不是jdk引起的问题? 执行mvn -v 看一下版本与java的关系

G:\java_pro\aliNacos\nacos>mvn -v
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: E:\mavenfile\apache-maven-3.5.4\bin\..
Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: E:\javajrefile
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

显然猜测是正确的, maven中匹配了我机子上javajrefile,这个文件夹是jre的环境,所以想到去修改一下maven的设置,用记事本打开maven文件下的bin文件夹中的mvn.cmd文件,发现一些说明

maven每次执行的时候,是不是获取了系统的环境配置,且环境配置的名称叫做JAVA_HOME,会默认读取这个环境值,尝试在系统设置了一个JAVA_HOME的环境值为jdk路径,再回来执行mvn -v

系统配置了E:\javafile, 路径发现变化了,变成了jdk的路径,但是为什么后面加了一个jre层级,可能是maven中追加的拼接的

来嘛,再来伤害一次 install 

build 成功了,看着过程都心惊胆跳的,刺激,接着来

提示: 如果是IDEA的同学,用了Terminal来操作命令的话,发现不行,就需要重启一下,再不行就重启电脑,就可以了

因为闲,反正能尝试的地方都尝试了一遍,官方上面也有编译好的zip包(url: https://github.com/alibaba/nacos/releases) ,如果真的不行了的同学,可以去上面下

运行

解压打好的包,这边的路径信息是 [INFO] Building zip: G:\java_pro\aliNacos\nacos\distribution\target\nacos-server-0.5.0.zip

双击startup.cmd直接运行文件, 然而搞笑的我一直在点击startup.sh文件,怎么启动不了!?蠢哭

OK,运行成功,运行信息中暴露了很多restful 信息

浏览器访问 上面头部的Console的url ,进入 可视化界面

文档上面的基本操作

猜想应该和UI界面操作的效果是一样的,来测试一下,这边就用postman进行resuful测试

从服务注册开始,返回ok则为成功,随便填写点信息,服务名称为nacos.test.tom,ip为172.16.4.77,端口为9000

成功了以后,那么就应该会在图形化界面出现该tom的服务

其他的操作都差不多,不贴图了,初略探究,接着继续渐进,接下来整合SpringBoot试试

这个nacos让我想到了Rancher一个全栈化容器管理平台

-----------------------------------------------------------------------------------

猜你喜欢

转载自my.oschina.net/u/3829444/blog/2963107