个人学习系列-SpringCloud项目搭建

40次阅读

共计 2946 个字符,预计需要花费 8 分钟才能阅读完成。

一直想写 springcloud 的搭建教程,今天就来整理一下吧。

搭建项目

1. 创建一个空项目

2. 填写相关的信息

3. 新建项目后

4. 搭建服务中心

4.1 添加模块

4.2 选择 Spring Initializr 方式创建

4.3 填写相关的组和工件

4.4 选择相关依赖

4.5 确认好相关内容点击完成

4.6 修改 application.yml 配置文件

#eureka 注册中心
server:
  port: 8761 #端口号

eureka:
  instance:
    hostname: localhost
  client:
    #表示十分将自己注册到 Eureka Server, 默认为 true。由于当前应用就是 Eureka Server,故而设为 false。register-with-eureka: false
    #表示是否从 Eureka Server 获取注册信息,默认为 true。因为这是一个单点的 Eureka Server,不需要同步其他 的 Eureka Server 节点的数据,故而设为 false
    fetch-registry: false
    #置与 Eureka Server 交互的地址,查询服务和注册服务都需要依赖这个地址,默认是 http://localhost:8761/eureka;多个地址可用,分隔
    service-url:
      default-zone: http://${eureka.instance.hostname}:${server.port}/eureka/

4.7 启动类添加注解

@EnableEurekaServer 是声明这是一个 Eureka 注册中心

@EnableEurekaServer
@SpringBootApplication
public class ServerCenterApplication {public static void main(String[] args) {SpringApplication.run(ServerCenterApplication.class, args);
    }

}

4.8 访问 127.0.0.1:8761


如上图所示,看到没有任何的服务提供者。

5. 搭建服务提供者

5.1 新建模块 server-order

构建方式和上面一样,就不再赘述了。

5.2 修改配置文件 application.yml

#eureka-client
#端口号
server: 
  port: 8082

eureka: 
  instance: 
    hostname: localhost
  #置与 Eureka Server 交互的地址,查询服务和注册服务都需要依赖这个地址,默认是 http://localhost:8761/eureka;多个地址可用,分隔
  client: 
    service-url:
      default-zone: http://localhost:8761/eureka/

spring: 
  application: 
    name: service-order

5.3 启动类添加注解

@EnableEurekaClient
@SpringBootApplication
public class ServerOrderApplication {public static void main(String[] args) {SpringApplication.run(ServerOrderApplication.class, args);
    }

}

注册中心和服务提供者的主要区别就在于注解的不同。

5.4 新建 Controller

/**
 * 服务提供者方法
 * @author zhouzhaodong
 */
@RestController
@RequestMapping("/order")
public class OrderController {

    /**
     * 测试方法
     * @return
     */
    @RequestMapping("/getMessage")
    public String getMessage(){return "order-one";}

}

5.5 启动服务提供者(注册中心也要启动)

这里我们发现注册中心上面多了一个服务。

5.6 在浏览器中直接输入 127.0.0.1:8082/order/getMessage

显示内容如下:

至此服务提供者创建完毕!

6. 搭建服务消费

6.1 新建模块 server-user

构建方式和上面一样,就不再赘述了。

6.2 修改配置文件 application.yml

#eureka-client
#端口号
server: 
  port: 8083

eureka: 
  instance: 
    hostname: localhost
  #置与 Eureka Server 交互的地址,查询服务和注册服务都需要依赖这个地址,默认是 http://localhost:8761/eureka;多个地址可用,分隔
  client: 
    service-url: 
      default-zone: http://localhost:8761/eureka/

spring: 
  application: 
    name: service-user

6.3 在启动类上添加注解

/**
 * 服务消费者
 * @author zhouzhaodong
 */
@EnableEurekaClient
@SpringBootApplication
public class ServerUserApplication {

    /**
     * @Bean 注解用来注入 restTemplate
     * @LoadBalanced 注解用来在注册中心里进行查找微服务,Ribbon 负载均衡
     * 生成一个 RestTemplate 实例对象
     * 使用 user 服务调用 order 服务就是通过这个 restTemplate 对象实现的
     * @return
     */
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(){return new RestTemplate();
    }

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

}

6.4 新建 controller

/**
 * 消费者
 *
 * @author zhouzhaodong
 */
@RestController
public class UserController {

    @Resource
    private RestTemplate restTemplate;

    /**
     * 返回值类型需要和我们的业务返回值一致
     * @return
     */
    @RequestMapping("getUserOrder")
    public String getUserOrder() {
        String url = "http://service-order/order/getMessage";
        return restTemplate.getForObject(url, String.class);
    }

}

6.5 启动消费者

发现注册中心页面多了一个服务

6.6 在浏览器中输入 127.0.0.1:8083/getUserOrder

可以发现成功调用了 order 服务并返回了结果,实现了 server-user 服务调用 server-order 服务的操作。服务消费者本身又是服务提供者。

至此消费者搭建完毕!

源代码地址

https://github.com/zhouzhaodo…

个人博客

http://www.zhouzhaodong.xyz

正文完
 0