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, 微服务之间调用成功!