006-从零搭建微服务-注册中心(二)

885 阅读2分钟

写在最前

如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。

源码地址(后端):gitee.com/csps/mingyu…

源码地址(前端):gitee.com/csps/mingyu…

文档地址:gitee.com/csps/mingyu…

核心依赖

需要注册配置中心的服务引入下面

<!-- SpringCloud Alibaba Nacos -->
<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

<!-- SpringCloud Alibaba Nacos Config -->
<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

核心注解

启动类增加 @EnableDiscoveryClient 注解,下面以 mingyue-auth 为例:

@EnableDiscoveryClient
@SpringBootApplication
public class MingYueAuthApplication {

	public static void main(String[] args) {
		SpringApplication.run(MingYueAuthApplication.class, args);
	}

}

统一 Nocos 服务信息

打开 mingyue 的 pom.xml 文件

<profile>
    <id>dev</id>
    <properties>
        <!-- 环境标识,需要与配置文件的名称相对应 -->
        <profiles.active>dev</profiles.active>
        <nacos.server>mingyue-register:8848</nacos.server>
        <nacos.username>nacos</nacos.username>
        <nacos.password>nacos</nacos.password>
        <nacos.discovery.group>DEFAULT_GROUP</nacos.discovery.group>
        <nacos.config.group>DEFAULT_GROUP</nacos.config.group>
    </properties>
    <activation>
        <!-- 默认环境 -->
        <activeByDefault>true</activeByDefault>
    </activation>
</profile>

注册认证中心

配置迁移

远 application.yml 原内容迁移到 nacos mingyue-auth.yml 配置中

# 认证中心配置
spring:
    # Redis配置 (SSO模式一和模式二使用Redis来同步会话)
    redis:
        # Redis数据库索引(默认为0)
        database: 1
        # Redis服务器地址
        host: mingyue-redis
        # Redis服务器连接端口
        port: 6379
        # Redis服务器连接密码(默认为空)
        password:
        # 连接超时时间
        timeout: 10s
        lettuce:
            pool:
                # 连接池最大连接数
                max-active: 200
                # 连接池最大阻塞等待时间(使用负值表示没有限制)
                max-wait: -1ms
                # 连接池中的最大空闲连接
                max-idle: 10
                # 连接池中的最小空闲连接
                min-idle: 0

# Sa-Token 配置
sa-token:
    # token名称 (同时也是cookie名称)
    token-name: Authorization
    # OAuth2.0 配置
    oauth2:
        is-code: true
        is-implicit: true
        is-password: true
        is-client: true

修改 application.yml

# 端口
server:
    port: 9000

spring:
    application:
        name: @artifactId@
    profiles:
        # 环境配置
        active: @profiles.active@
    cloud:
        nacos:
            # nacos 服务地址
            server-addr: @nacos.server@
            username: @nacos.username@
            password: @nacos.password@
            discovery:
                # 注册组
                group: @nacos.discovery.group@
                namespace: ${spring.profiles.active}
            config:
                # 配置组
                group: @nacos.config.group@
                namespace: ${spring.profiles.active}
    config:
        import:
            - optional:nacos:application-common.yml
            - optional:nacos:${spring.application.name}.yml

启动项目

配置完成后,启动项目,测试一下登录与登出是否有问题。查看 nacos 服务是否注册成功

http://mingyue-register:8848/nacos (自行配置一下 host 映射)

image-20230531194540745

注册网关中心

先创建网关模块

添加 application.yml

# 端口
server:
    port: 9200

spring:
    application:
        name: @artifactId@
    profiles:
        # 环境配置
        active: @profiles.active@
    cloud:
        nacos:
            # nacos 服务地址
            server-addr: @nacos.server@
            username: @nacos.username@
            password: @nacos.password@
            discovery:
                # 注册组
                group: @nacos.discovery.group@
                namespace: ${spring.profiles.active}
            config:
                # 配置组
                group: @nacos.config.group@
                namespace: ${spring.profiles.active}
    config:
        import:
            - optional:nacos:application-common.yml
            - optional:nacos:${spring.application.name}.yml

启动项目

同认证中心一样操作

小结

目前已经有了 mingyue-register(注册中心)mingyue-auth(认证中心)mingyue-gateway(网关中心)服务。接下来我们通过 mingyue-gateway(网关中心) 来访问 mingyue-auth(认证中心),并修改前端登录接口实现如下流程:

image-20230531201001455