Saul's blog Saul's blog
首页
后端
分布式
前端
更多
分类
标签
归档
友情链接
关于
GitHub (opens new window)

Saul.J.Wu

立身之本,不在高低。
首页
后端
分布式
前端
更多
分类
标签
归档
友情链接
关于
GitHub (opens new window)
  • Java入门基础

  • Java核心基础

  • 设计模式

  • Web开发

  • SpringBoot

  • 微服务

    • Feign声明式远程调用
    • nacos注册中心
      • 官方文档
      • 将微服务注册到注册中心
      • 启动 Nacos Server
        • naocs启动失败
        • 应用启动
      • 验证
    • nacos配置中心
    • SpringCloud Gateway网关
    • 阿里云OSS上传功能
    • 分布式组件 SpringCloud Alibaba 简单接触
  • Elasticsearch

  • 运维

  • 后端
  • 微服务
SaulJWu
2020-07-17

nacos注册中心

一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

# 官方文档

https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/readme-zh.md

# 将微服务注册到注册中心

1.在common模块引入pom

 <dependency>
     <groupId>com.alibaba.cloud</groupId>
     <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
 </dependency>
1
2
3
4

2.在应用的 /src/main/resources/application.properties 配置文件中配置 Nacos Server 地址(YML也行)

(事实上,这一步做也行,因为默认就是localhost:8848,如果将来改了再写)

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
1

3.使用 @EnableDiscoveryClient 注解开启服务注册与发现功能

 @SpringBootApplication
 @EnableDiscoveryClient
 public class ProviderApplication {

 	public static void main(String[] args) {
 		SpringApplication.run(ProviderApplication.class, args);
 	}

 	@RestController
 	class EchoController {
 		@GetMapping(value = "/echo/{string}")
 		public String echo(@PathVariable String string) {
 				return string;
 		}
 	}
 }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 启动 Nacos Server

  1. 首先需要获取 Nacos Server,支持直接下载和源码构建两种方式。
    1. 直接下载:Nacos Server 下载页 (opens new window)
    2. 源码构建:进入 Nacos Github 项目页面 (opens new window),将代码 git clone 到本地自行编译打包,参考此文档 (opens new window)。推荐使用源码构建方式以获取最新版本
  2. 启动 Server,进入解压后文件夹或编译打包好的文件夹,找到如下相对文件夹 nacos/bin,并对照操作系统实际情况之下如下命令。
    1. Linux/Unix/Mac 操作系统,执行命令 sh startup.sh -m standalone
    2. Windows 操作系统,执行命令 cmd startup.cmd

# naocs启动失败

参考连接:https://github.com/alibaba/nacos/issues/3607

I find the key of this problem, I found every failed start nacos the exceptions include some SQL exception,then i change application.properties and import SQL to my local database,and problem is resolved.

step 1. import data to your database use nacos-mysql.sql

step 2. change application.properties comments like below

#*************** Config Module Related Configurations ***************#
### If user MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=nacos
db.password=nacos
1
2
3
4
5
6
7
8
9
10
11

step 3.

start your nacos server with standalone MODE

hope to help someone like this situation.

@zongtanghu (opens new window) Give Some Suggest: I think Nacos (opens new window) quick start should give our some suggestions about change configuration.

Looking forward to getting better together.

启动 报错了,网上一搜是缺少数据库.

  1. 打开conf文件下的mysql文件,创建数据库nacos
  2. 运行sql文件
  3. 修改application.properties里的数据库连接,把注释取消掉
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.56.10:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=root
1
2
3
4
5
6
7
8
9
10
11

改成独立模式启动

startup.cmd file MODE="cluster" change to MODE="standalone",Nacos Server can start.

image-20201001103148377

重新启动naocs,已经成功了。

# 应用启动

  1. 增加配置,在 nacos-discovery-provider-example 项目的 /src/main/resources/application.properties 中添加基本配置信息

     spring.application.name=service-provider
     server.port=18082
    
    1
    2
  2. 启动应用,支持 IDE 直接启动和编译打包后启动。

    1. IDE直接启动:找到 nacos-discovery-provider-example 项目的主类 ProviderApplication,执行 main 方法启动应用。
    2. 打包编译后启动:在 nacos-discovery-provider-example 项目中执行 mvn clean package 将工程编译打包,然后执行 java -jar nacos-discovery-provider-example.jar启动应用。

# 验证

从上面naocs启动,就可用看到,naocs的访问地址:

http://192.168.137.1:8848/nacos/index.html

http://127.0.0.1:8848/nacos
1
2
3

两个都可用,一般我用下面那个

image-20201001103632756

账号密码默认都是nacos

在服务管理-服务列表下,已经发现服务已经注册到注册中心

image-20201001103716889

同理,其他微服务也可用参照《将微服务注册到注册中心》的第2和第3步即可。

image-20201001104846381

帮我改善此页面 (opens new window)
#nacos#注册中心#微服务
上次更新: 2020/12/17, 08:38:35
Feign声明式远程调用
nacos配置中心

← Feign声明式远程调用 nacos配置中心→

最近更新
01
zabbix学习笔记二
02-28
02
zabbix学习笔记一
02-10
03
Linux访问不了github
12-08
更多文章>
Theme by Vdoing | Copyright © 2020-2022 Saul.J.Wu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式