spring-cloud整合nacos做注册中心

前面讲了spring-cloud整合nacos做配置中心,这节讲一下nacos做注册中心

至于注册中心是什么,我就不讲了,不了解的可以去问度娘

下面我就直接开始了,也是比较简单的:

1.引入依赖

  <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.SR8</spring-cloud.version>
        <spring-cloud-alibaba.version>2.2.1.RELEASE</spring-cloud-alibaba.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

2.配置yml

server:
port: 6001
spring:
application:
name: nacosdiscover
main:
allow-bean-definition-overriding: true #springboot 2.1需要设置
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
namespace: 76284517-01e8-40c7-a17d-a120e2428498
   inetutils:
preferred-networks: 10.8.32 #如果注册到nacos上的ip是内网,服务访问不到,可配置此项,地址为网关前缀

3.启动类需要加@EnableDiscoveryClient注解

启动看效果

 

 完事,就是这么简单

4.最后补充一点在服务器docker部署的时候,注册到nacos上的是docker的内网地址会导致服务访问失败

   启动 Docker的时候,用 --network 参数,可以指定网络类型

   --network host

   host: 主机网络使用 --network=host,此时,Docker 容器的网络会附属在主机上,两者是互通的。 例如,在容器中运行一个Web服务,监听8080端口,则主机的8080端口就会自动映射到容器中。

docker run -d --network=host --name business -p 8001:8001 business01

  结果:

  Nacos注册中心获取到宿主机IP, 微服务之间调用成功!

posted @ 2020-09-15 16:52  william_zhao  阅读(356)  评论(0编辑  收藏  举报