栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring Cloud 微服务入门

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Cloud 微服务入门

源代码 链接: https://pan.baidu.com/s/1ZXqxDyLbGWhcrWCKqa7WZg 提取码: kcei 复制这段内容后打开百度网盘手机App,操作更方便哦

概述:本文适用于新入门的童鞋参考,一步步创建一个新的Spring Cloud项目。

一、配置nacos注册中心

1、下载地址 home


2、解压后在bin目录windows下双击startup.cmd 启动,停止使用shutdown.cmd


3、验证
http://localhost:8848/nacos/index.html
默认帐号密码均为 nocos

 二、新建测试项目

1、目录说明

demo

- demo-gateway  #网关模块 8000

- demo-test #测试模块 8001

 2、步骤
1)创建demo
File->New->Project

 选择Maven,对应的SDK版本,然后下一步

输入项目名称,选择目录路径,填写对应的信息,然后完成


修改pom.xml文件(参考)
 



    4.0.0
    org.example
    demo
    pom
    1.0-SNAPSHOT
    
        demo-gateway
        demo-test
    
    
        
            
            
                org.springframework.cloud
                spring-cloud-dependencies
                2020.0.3
                pom
                import
            

            
            
                com.alibaba.cloud
                spring-cloud-alibaba-dependencies
                2021.1
                pom
                import
            
            
            
                com.alibaba.nacos
                nacos-client
                2.0.3
            

            
            
                org.springframework.boot
                spring-boot-dependencies
                2.5.3
                pom
                import
            
        
    

    
        
        
            org.springframework.cloud
            spring-cloud-starter-bootstrap
        
    

 2)创建demo-gateway模块
在当前项目目录下,右键->New->Module

选择对应SDK,然后下一步

填写对应信息


修改pom.xml文件(参考)



    
        demo
        org.example
        1.0-SNAPSHOT
    
    4.0.0

    demo-gateway
    

        
        
            org.springframework.cloud
            spring-cloud-starter-gateway
        

        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        

        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-config
        

        
        
            org.springframework.cloud
            spring-cloud-starter-openfeign
        

        
        
            org.springframework.cloud
            spring-cloud-starter-loadbalancer
        

        
        
            org.springframework.boot
            spring-boot-starter-actuator
        

    

 在java目录新建包com.demo.gateway及启动类 GatewayApplication.java
 

package com.demo.gateway;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class GatewayApplication {

    public static void main(String[] args)
    {
        SpringApplication.run(GatewayApplication.class, args);
        System.out.println("网关启动成功");
    }
}

 在resources新建bootstrap.yml文件
 

# Tomcat
server:
  port: 8000

# Spring
spring:
  application:
    # 应用名称
    name: demo-gateway
  profiles:
    # 环境配置
    active: dev
  main:
    allow-bean-definition-overriding: true
  cloud:
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 127.0.0.1:8848
      config:
        # 配置中心地址
        server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置
        shared-configs:
          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

 在nacos配置中心 http://127.0.0.1:8848/nacos/ 配置demo-gateway-dev.yml
 

spring:
  cloud:
    gateway:
      discovery:
        locator:
          lowerCaseServiceId: true
          enabled: true
      routes:
        # 系统模块
        - id: demo-test
          uri: lb://demo-test
          predicates:
            - Path=/test/**
          filters:
            - StripPrefix=1

 

 启动GatewayApplication.java,成功后在nacos配置中心的服务管理-服务列表可看到demo-gateway服务


3)创建demo-test模块
创建步骤参考demo-gateway模块,下面主要列代码及配置

 pom.xml文件参考
 



    
        demo
        org.example
        1.0-SNAPSHOT
    
    4.0.0

    demo-test
    

        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        

        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-config
        
        
            org.springframework
            spring-web
        

        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.projectlombok
            lombok
        

    

 在java目录新建包com.demo.test及启动类 TestApplication.java
 

package com.example.test;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class TestApplication {
    public static void main(String[] args)
    {
        SpringApplication.run(TestApplication.class, args);
        System.out.println("测试启动成功");
    }
}

在resources目录下创建bootstrap.yml

# Tomcat
server:
  port: 8001

# Spring
spring:
  application:
    # 应用名称
    name: demo-test
  profiles:
    # 环境配置
    active: dev
  cloud:
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 127.0.0.1:8848
      config:
        # 配置中心地址
        server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置
        shared-configs:
          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

 在nacos配置中心 http://127.0.0.1:8848/nacos/ 配置demo-test-dev.yml
我这边是没有内容的,根据实际情况修改

 创建controller包及TestController.java测试类
 

package com.example.test.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {

    @GetMapping("/test2")
    public String Test2(){
        System.out.println("Test2 ok");
        return "Alive2";
    }

    @GetMapping("/index")
    public String Test(){
        System.out.println("Test ok");
        return "Alive";
    }

    @GetMapping("/card/{cardId}")
    public String cardTest(@PathVariable("cardId") String cardId){
        System.out.println("Test ok" + cardId);
        return "CardId>>>" + cardId;
    }

}

启动TestApplication.java ,成功后在nacos 配置中心可看到对应的服务

 4)验证
不经过网关 http://127.0.0.1:8001/test2
经过网关 http://127.0.0.1:8000/test/test2
经过网关的链接test/**,对应是nacos配置中心demo-gateway-dev.yml配置的路由。实际http://127.0.0.1:8000/test 对应demo-test服务http://127.0.0.1:8001/ ,所以 http://127.0.0.1:8000//test/test2 对应 http://127.0.0.1:8001/test2

另外2个验证链接

http://127.0.0.1:8000/test/card/1234

http://127.0.0.1:8000/test/index

 

至此,完成

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/274827.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号