首页 > 编程语言 > 详细

springcloud【基于springboot1.x】的简单发布服务和使用

时间:2019-07-22 23:25:23      阅读:144      评论:0      收藏:0      [点我收藏+]

1、新建一个springboot 1.x项目【2.x之上有bug,就没测试】

技术分享图片

技术分享图片

技术分享图片

技术分享图片

就是新建一个注册中心

技术分享图片

技术分享图片

2、等下载完,注册中心配置application.yml

server:
  port: 8761
eureka:
  instance:
    hostname: server #eureka实例的主机名
  client:
    register-with-eureka: false #不能把自己注册到eureka上
    fetch-registry: false #不从eureka上来获取服务的注册信息
    service-url:
      defalutZone: http://localhost:8761/eureka/

技术分享图片

 

3、注册中心主程序添加@EnableEurekaServer【org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;】

技术分享图片

 

4、运行注册中心

技术分享图片

 

5、访问http://localhost:8761/

技术分享图片

 

为了方便测试,这里把注册中心打包成可运行的jar,单独运行,不占用idea

技术分享图片

 

6、新建一个服务提供者

技术分享图片

技术分享图片

技术分享图片

7、服务提供者的application.yml

server:
  port: 8001

spring:
  application:
    name: ticket

eureka:
  instance:
    prefer-ip-address: true #注册服务的时候使用服务的ip地址
  client:
    service-url:
      defalutZone: http://localhost:8761/eureka/

技术分享图片

 

8、写一个service【TicketService.java】

package com.xiaostudy.springcloud_service.service;

import org.springframework.stereotype.Service;

@Service
public class TicketService {

    public String getTicket() {
        return "服务提供者。。。";
    }
}

技术分享图片

 

9、写一个controller【TicketController.java】

package com.xiaostudy.springcloud_service.web.controller;

import com.xiaostudy.springcloud_service.service.TicketService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TicketController {

    @Autowired
    TicketService ticketService;

    @GetMapping("/ticket")
    public String getTicket() {
        return ticketService.getTicket();
    }
}

技术分享图片

 

10、运行服务提供者

技术分享图片

 

11、访问http://localhost:8001/ticket

技术分享图片

正常,也可以去注册中心看

技术分享图片

 

同样,为了方便测试,把服务也打包成jar,单独运行,不占用idea

技术分享图片

 

 12、新建一个消费者

技术分享图片

技术分享图片

技术分享图片

 

13、消费者的application.yml

server:
  port: 8200

spring:
  application:
    name: user

eureka:
  instance:
    prefer-ip-address: true #注册服务的时候使用服务的ip地址
  client:
    service-url:
      defalutZone: http://localhost:8761/eureka/

 

14、消费者主程序添加

//开启发现服务功能
@EnableDiscoveryClient

技术分享图片

 

再添加

@LoadBalanced//使用负载均衡机制   一定要加@LoadBalanced,不让报连接超时
@Bean//帮我们发送http请求
public RestTemplate restTemplate() {
    return new RestTemplate();
}

技术分享图片

 

15、消费者新建一个controller【UserController.java】

package com.xiaostudy.springcloud_consumers.web.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

@RestController
public class UserController {

    @Autowired
    RestTemplate restTemplate;

    @GetMapping("/get")
    public String getTicket() {
        String s = restTemplate.getForObject("http://TICKET/ticket", String.class);
        return "获取了:" + s;
    }
}

技术分享图片

 

16、消费者运行

技术分享图片

已经启动了

技术分享图片

 

17、访问http://localhost:8200/get

技术分享图片

注册中心上也可以看到

技术分享图片

 

到此,一个简单springcloud例子完成


 

springboot2.1.6用以上方法也可行。

springboot2.x以上可能后面测试

springcloud【基于springboot1.x】的简单发布服务和使用

原文:https://www.cnblogs.com/xiaostudy/p/11228791.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!