当前位置 博文首页 > 小黄鸡的博客:五分钟带你玩转spring cloud alibaba(四)实战!

    小黄鸡的博客:五分钟带你玩转spring cloud alibaba(四)实战!

    作者:[db:作者] 时间:2021-08-15 19:28

    在楼主公司选择时,根据并发量考虑,选择了单机部署(虽然官网推荐的是集群部署,但是是给大在nacos部署方面,楼主根据公司并发量选择的单机部署(虽然推荐的是集群部署,但是是给大厂推荐的)

    pom文件

            <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>

    在pom.xml文件中最好版本配置 否则会报各种各样的错?

    版本可以根据官方文档选择:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

    同时为了保证版本相同建议再父工程中加入以下配置 意思是子工程groupid为org.springframework.cloud,com.alibaba.cloud,org.springframework.boot的都依赖父工程版本

    <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>${spring-cloud.version}</version>
                    <type>pom</type>
                    <!--maven不支持多继承,使用import来依赖管理配置-->
                    <scope>import</scope>
                </dependency>
                <!-- SpringCloud Alibaba 微服务 -->
                <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>
                <!-- SpringBoot 依赖配置 -->
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-dependencies</artifactId>
                    <version>${spring-boot.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
    </dependencyManagement>

    bootstrap.xml

    这里一定要使用bootstrap.yml而不是application.yml 因为bootstrap.yml运行先于后者,如果使用application.yml可能会出现即使有注册的地址 还是去连接localhost:8848

    spring:
      application:
        name: systemp
        # 数据源配置
      cloud:
        nacos:
          discovery:
            # 服务注册地址
            server-addr: 192.168.xx.x:8848
            #命名空间
            namespace: b80f0aa4-3af2-a6e3-c6fda24c2bc0
            #分组
            group: xxx
          config:
            # 配置中心地址
            server-addr: 192.168.xx.xx:8848
            # 配置文件格式
            file-extension: yml
            #命名空间
            namespace: b80f0aa4-3af2-a6e3-c6fda24c2bc0
            #分组
            group: xxx

    可以为服务指定namespace和group,在一个namespace和group中的服务只能获取同namespace和group中的服务,这样可以同时配置dev和pro环境。获取小组内的小伙伴都可以连接一个nacos服务,而不是像eureka 一人启动一个

    新建命名空间(配置文件中是命名空间id)

    分组不用在nacos中新建 ,直接编写即可

    启动类

    在spring boot启动类上加入@EnableDiscoveryClient注解即可

    @EnableDiscoveryClient
    @SpringBootApplication
    public class GetwayApplication {
    
        public static void main(String[] args) {
            //去除nacos日志
            System.setProperty("nacos.logging.default.config.enabled", "false");
            SpringApplication.run(GetwayApplication.class, args);
        }
    
    }

    注意 如果使用了logback作为日志?System.setProperty("nacos.logging.default.config.enabled", "false"); 需要添加 否则会因为日志命名报错

    然后启动服务,访问ip:8848/nacos可以验证是否注册成功

    同时也发布到了指定的namespace和groupid

    cs