服务发现
介绍
什么是注册中心
注册中心在微服务项目中扮演着非常重要的角色,是微服务架构中的纽带,类似于通讯录,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。
为什么要使用注册中心
解决了服务发现的问题。在没有注册中心时候,服务间调用需要知道被调方的地址或者代理地址。当服务更换部署地址,就不得不修改调用当中指定的地址或者修改代理配置。而有了注册中心之后,每个服务在调用别人的时候只需要知道服务名称就好,继续地址都会通过注册中心同步过来。
TIP
WEMIRR-PLATFORM 默认采用的是 Nacos
作为服务发现与配置中心的,如果对于企业已经有 Eureka
、ZooKeeper
、Consul
、Apollo
、Spring Cloud Config
的小伙伴们 请自行更换 pom.xml
中的依赖即可(但作者还是比较推荐Nacos
)更符合国人
安装方式
下面提供了三种安装方式,总有一款适合你,如果不适合请联系作者添加文档 Thanks~~~
源码安装
喜欢尝鲜的小伙伴们可以从 Github
上下载源码方式来安装最新版本的 Nacos
git clone https://github.com/alibaba/nacos.git
cd nacos/
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
ls -al distribution/target/
// change the $version to your actual path
cd distribution/target/nacos-server-$version/nacos/bin
压缩包安装
您可以从 nacos-server-$version.zip
包。
unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
cd nacos/bin
Docker 安装
开发测试环境更推荐使用 Docker
的方式安装,简单粗暴易上手(前提是小伙伴们已经安装过 Docker
)
WARNING
安装 Nacos (>=2.0)
# 拉去镜像
docker pull nacos/nacos-server
# 以 standalone 方式运行镜像 (如果是虚拟机、Unix、Linux 之类的服务器需要暴露 8848、9848、18848、19848)
docker run -itd --name nacos -p 8848:8848 -p 9848:9848 --restart=always -e MODE=standalone nacos/nacos-server
启动方式
启动命令(standalone
代表着单机模式运行,非集群模式)
Docker 启动
docker start nacos
Linux/Unix/Mac 启动
启动命令(standalone
代表着单机模式运行,非集群模式)
sh startup.sh -m standalone
如果您使用的是ubuntu
系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行
bash startup.sh -m standalone
Windows 启动
startup.cmd -m standalone
如何使用
添加依赖
<!-- Spring Cloud Alibaba Nacos 服务发现 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- Spring Cloud Alibaba Nacos 服务配置 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- Spring Boot Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
添加配置
spring:
application:
# 应用名称
name: wemirr-platform-authority
config:
import:
# 如果提前在 Ncoas 配置了 可以通过下面的方式导入 nacos 配置
- optional:nacos:${spring.application.name}.properties
# 这是完写法
- optional:nacos:mybatis-plus-default.yaml?group=DEFAULT_GROUP&refreshEnabled=true
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
config:
server-addr: 127.0.0.1:8848
refresh-enabled: true
在Application
启动类加入注解 @EnableDiscoveryClient
即可轻松搞定服务注册于发现
@EnableDiscoveryClient
@SpringBootApplication
public class AuthorityApplication {
@SneakyThrows
public static void main(String[] args) {
SpringApplication.run(AuthorityApplication.class, args);
}
}
启动服务
启动应用程序后,如未发现异常日志,查看Nacos
控制台的服务列表