搭建分布式微服务框架--配置中心、服务注册于发现

一、为什么选用nacos

首先对于不了解nacos的朋友可以看这里

目前springcloud主流的组件有eureka、consul、zookeeper和nacos

  1. eureka2.0宣布闭源,且需要自己额外构建jar,服务管控使用api形式不太方便
  2. zookeeper没用过,无法发表观点
  3. consul与nacos在功能上十分相像,consul作为服务注册中心绝对是够用的,,但是consul作为配置中心就明显没有nacos那么好用了,个人感觉他的配置相对复杂而且官方文档没有中文(吃了文化的亏),在实际使用中发现consul挂了之后不能重新发现之前的服务,不知道是不是我配置的问题
  4. 一开始我用apollo作为配置中心但是很遗憾目前1.2版本不支持yml,于是就用了nacos,后来发现他也能做服务管控于是干脆直接用nacos代替eureka,比较遗憾的是nacos0.7.0目前处于起步阶段目前不支持权限控制

二、nacos服务端

nacos服务端搭建十分简单,可以直接参考官方文档
这里使用的是nacos0.7.0版本

三、nacos客户端

nacos客户端配置也很简单可以直接参考官方文档

首先引入jar

<dependencyManagement>
<dependencies>
    <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.SR2</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
</dependencies>
</dependencyManagement>

<dependencies>
 	<dependency>
    	<groupId>org.springframework.cloud</groupId>
   	 <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
 	</dependency>
 	<dependency>
    	<groupId>org.springframework.cloud</groupId>
    	<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
 	</dependency>
 	<dependency>
   	 	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter</artifactId>
	</dependency>
</dependencies>

nacos最好使用bootstrap.properties,否则会导致部分配置无法加载

server.port=9999
spring.application.name=nacos-client
management.endpoints.web.exposure.include=*
#远端ip
remote.ip=xxxxxx
#本机的外网ip
local.ip=xxxxx

#https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html
#nacos 配置
#nacos 配置中心
nacos.group=nacos-group
nacos.server-addr = ${remote.ip}:8848
nacos.config.server-addr = ${nacos.server-addr}
spring.cloud.nacos.config.server-addr=${nacos.config.server-addr}
spring.cloud.nacos.config.file-extension=yaml
spring.cloud.nacos.config.group=${nacos.group}

#服务注册于发现
spring.cloud.nacos.discovery.server-addr=${nacos.config.server-addr}
#nacos客户端的ip,务必保证该ip是nacos服务端可以访问到的,否则服务注册会失败
spring.cloud.nacos.discovery.ip=${local.ip}

猜你喜欢

转载自blog.csdn.net/qq_32628775/article/details/86592187