1、通过git拉取项目
git clone https://github.com/alibaba/nacos.git
2、项目结构
+ nacos
└ address # Nacos Address 服务
└ api # Nacos 服务抽象 API
└ auth # Nacos 授权相关接口,登陆、接口访问等
└ client # Nacos Java Client
└ cmdb # Nacos 内部配置管理相关
└ common # Nacos Common 包:定义工具类,通用对象等
└ config # Nacos 动态配置实现
└ consistency # Nacos 最终一致性实现
└ console # Nacos 控制台后台相关
└ console-ui # Nacos 控制台 UI 相关
└ core # Nacos 核心包:包括一些工具类,分布式存储
└ distribution # Nacos 启动相关的配置信息
└ example # Nacos 使用示例
└ istio # Nacos 与 GRPC 集成
└ naming # Nacos 命名服务,服务注册与发现
└ plugin # Nacos 插件相关,包括:授权以及加密
└ plugin-default-impl # Nacos 授权默认实现
└ sys # Nacos 系统相关的配置:包括集群单机模式以及系统参数
└ test # Nacos 测试用例
3、跑项目
1、设置单击节点启动
-Dnacos.standalone=true
2、启动问题
如果报错找不到符号com.alibaba.nacos.consistency.entity
原因是com.alibaba.nacos.consistency.entity包目录是由protobuf在编译时自动生成的
执行mvn可解决:
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
或者:
Maven编译proto生成java代码失败Failed to execute goal org.xolstice.maven.plugins
参考:Maven编译proto生成java代码失败Failed to execute goal org.xolstice.maven.plugins
<configuration>
<!--<protocArtifact>com.google.protobuf:protoc:${protobuf-java.version}:exe:${os.detected.classifier}-->
<!--</protocArtifact>-->
<!--<pluginId>grpc-java</pluginId>-->
<!--<pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc-java.version}:exe:${os.detected.classifier}-->
<!--</pluginArtifact>-->
<protocArtifact>com.google.protobuf:protoc:3.3.0:exe:${os.detected.classifier}</protocArtifact>
<pluginId>grpc-java</pluginId>
<pluginArtifact>io.grpc:protoc-gen-grpc-java:1.6.1:exe:${os.detected.classifier}</pluginArtifact>
<protoSourceRoot>src/main/proto</protoSourceRoot>
<outputDirectory>src/main/java</outputDirectory>
<clearOutputDirectory>false</clearOutputDirectory>
</configuration>
service-provider 服务提供者环境搭建
引入配置文件
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.9.RELEASE</version>
</dependency>
server.port = 1010
spring.application.name=service-provider
spring.cloud.nacos.discovery.server-addr=localhost:8848
spring.cloud.nacos.discovery.username=nacos
spring.cloud.nacos.discovery.password=nacos
spring.cloud.nacos.discovery.namespace=public