专栏首页会跳舞的机器人Spring Cloud(2)——服务提供者

Spring Cloud(2)——服务提供者

前言: 本文中的注册中心基于Spring Cloud(1)——服务注册中心,请先了解注册中心的相关知识后再阅读本文。

以用户服务为例,创建Maven工程microservice-provider-user

1、pom.xml加入以下依赖

<parent>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>1.4.4.RELEASE</version>
     <relativePath/> <!-- lookup parent from repository -->
 </parent>
 <dependencies>
   
     <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-test</artifactId>
         <scope>test</scope>
     </dependency>
     <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-eureka-server</artifactId>
     </dependency>

 </dependencies>

 <dependencyManagement>
     <dependencies>
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-dependencies</artifactId>
             <version>Camden.SR5</version>
             <type>pom</type>
             <scope>import</scope>
         </dependency>
     </dependencies>
 </dependencyManagement>

2、创建应用启动类UserProviderApplication.java

package com.baibei.provider.user;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

/**
 * @author: 会跳舞的机器人
 * @email:2268549298@qq.com
 * @date: 17/2/17 上午9:55
 * @description:用户服务提供者
 */
@SpringBootApplication
@EnableDiscoveryClient
public class UserProviderApplication {

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

开启服务注册功能很简单,只需要在启动类上加@EnableDiscoveryClient注解即可开启

3、在resource文件夹下创建application.properties,内容如下:

#应用名称
spring.application.name=microservice-provider-user
#服务端口
server.port=8003
#注册中心地址
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/

#服务续租频率。默认是30秒,意思是服务提供者需要多久发送一次心跳检测至Eureka Server来确保Eureka Server知道提供者还存活着,
#如果超过指定时间没有发送,Eureka Server则会从服务提供者列表中将其剔除
eureka.instance.lease-renewal-interval-in-seconds=30

#服务失效时间。默认是90秒,也就是如果Eureka Server在90秒内没有接收到来自服务提供者的Renew操作,就会把服务提供者剔除
eureka.instance.leaseExpirationDurationInSeconds=90

4、编写一个查找用户的服务方法

package com.baibei.provider.user.controller;

import com.baibei.provider.user.entity.User;
import com.baibei.provider.user.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
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;

/**
 * @author: 会跳舞的机器人
 * @email:2268549298@qq.com
 * @date: 17/2/17 上午10:01
 * @description:用户相关rest API
 */
@RestController
@RequestMapping("/user")
public class UserProviderController {
    @Autowired
    private IUserService userService;

    /**
     * 查找用户
     *
     * @param id
     * @return
     */
    @GetMapping(value = "/{id}")
    public User findById(@PathVariable Integer id) {
        User user = userService.getUser(id);

        return user;
    }
}

5、运行验证

运行UserProviderApplication的main方法,启动成功后,访问http://localhost:8003/user/5

打开 http://localhost:8761/ Eureka Server注册中心地址,可以看到microservice-provider-user服务已经注册至注册中心

附项目的完整代码包结构

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spring Cloud(1)——服务注册中心

    Eureka是一个云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。用它我们可以实现服务注册与发现功能

    会跳舞的机器人
  • Redis持久化

    Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大. 如果你只希望你的数据在服务器运行的时候存在,你也可以不使用任何持久化方式. 你也可以同...

    会跳舞的机器人
  • java并发编程的艺术笔记第一章——并发编程的挑战

    单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CPU分配给各个线程的时间,因为时间片非常短,所以CPU通过不停地切...

    会跳舞的机器人
  • SpringMVC拦截器Interceptor

    SpringMVC拦截器(Interceptor)实现对每一个请求处理前后进行相关的业务处理,类似与servlet中的Filter。 SpringMVC 中的I...

    用户1225216
  • MongoDB导入Shapefile数据

    两种解决方案: 一、将整个shapefile转为GeoJSON然后直接导入mongoDB数据库中 首先,将shapefile数据转为WGS84地理坐标,...

    卡尔曼和玻尔兹曼谁曼
  • SpringFramework之mvc controller的单元测试

        项目里面经常会将controller的扫描配置与其它的分开以便于管理开发,但是controller的bean是在webApplicationContex...

    克虏伯
  • Flink通过异步IO实现redis维表join

    使用flink做实时数仓的公司越来越多了,浪尖这边也是很早就开发了一个flink 全sql平台来实现实时数仓的功能。说到实时数仓,两个表的概念大家一定会知道的:...

    Spark学习技巧
  • shiro原理 及 第一个认证shiro

    用户5927264
  • xwiki开发者指南-保存数据

    有些时候,你想保存数据。XWiki平台可以根据你的需要提供不同的存储地方。下面是你所有的选择。

    lilihongjava
  • 比特币价格“大变脸”,以特币挑起数字货币市场未来之星的“大梁”

    “比特币变脸”来的太快就像龙卷风,年内,比特币价格至少翻了 17 倍。在一路狂飙之后,比特币价格出现了闪崩,期货价格重回1. 6 万美元,现货比特币价格也随之降...

    企鹅号小编

扫码关注云+社区

领取腾讯云代金券