服务发现
介绍
什么是注册中心
注册中心在微服务项目中扮演着非常重要的角色,是微服务架构中的纽带,类似于通讯录,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。
为什么要使用注册中心
解决了服务发现的问题。在没有注册中心时候,服务间调用需要知道被调方的地址或者代理地址。当服务更换部署地址,就不得不修改调用当中指定的地址或者修改代理配置。而有了注册中心之后,每个服务在调用别人的时候只需要知道服务名称就好,继续地址都会通过注册中心同步过来。
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/binDocker 安装
开发测试环境更推荐使用 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 nacosLinux/Unix/Mac 启动
启动命令(standalone代表着单机模式运行,非集群模式)
sh startup.sh -m standalone如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行
bash startup.sh -m standaloneWindows 启动
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-iam
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 IamApplication {
@SneakyThrows
public static void main(String[] args) {
SpringApplication.run(IamApplication.class, args);
}
}启动服务
启动应用程序后,如未发现异常日志,查看Nacos控制台的服务列表

WEMIRR-PLATFORM