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

一个简单的微服务小Demo

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

一个简单的微服务小Demo

开发商品微服务和订单微服务 服务提供者:商品服务 服务消费者:订单服务 通过查询订单信息的同时查询相关商品的信息。 1.新建一个Spring Boot的父项目,在父项目中配置SpringCloud版本。

    2021.0.3



    
        org.springframework.cloud
        spring-cloud-dependencies
        ${spring.cloud-version}
        pom
        import
    

2.在父项目中新建一个product_service的spring boot子项目 商品服务:
entity层

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Product {

    private Long id;
    private String name;
    private BigDecimal price;

}

controller层
@RestController
public class ProductController {

    @GetMapping("/product/{id}")
    public ResponseEntity getProductBuId(@PathVariable Long id){
        //用于测试的数据
        Product product = new Product(id, "蔚蓝香水", new BigDecimal("1200"));
        return ResponseEntity.ok(product);
    }
}

在resources包下的application.propertites文件中配置端口号

server.port=8081
3.在父项目中新建一个order_service的spring boot子项目 订单服务:
entity层

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Order {

    private Long id;
    private Long productId;
    private Long count;
    private LocalDateTime byTime;
    private Product product;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Product {

    private Long id;
    private String name;
    private BigDecimal price;
}
config层


@Configuration
public class RestTemplateConfig {

    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}
service层

@Service
public class OrderService {

    @Autowired
    private RestTemplate restTemplate;

    public Order getOrderById(Long id){
        Order order = new Order(id,16L,10L, LocalDateTime.now(),null);
        //调用商品服务来查询商品
        ResponseEntity entity = restTemplate.getForEntity("http://localhost:8081/product/" + order.getProductId(),Product.class);
        order.setProduct(entity.getBody());
        return order;
    }
}
controller层

@RestController
public class OrderController {

    @Autowired
    private OrderService orderService;

    @GetMapping("/order/{id}")
    public ResponseEntity getOrderById(@PathVariable Long id){
        return ResponseEntity.ok(orderService.getOrderById(id));
    }
}
4.同时运行商品服务和订单服务,打开浏览器,输入访问路径:http://localhost:8080/order/1,得到以下运行结果

 根据以上操作,你就可以运行一个简单的微服务Demo了。

微服务:微服务就是按照业务划分成一个个小项目,每个项目单独打包部署到自己的服务器,只关心调用并返回相应结果,不考虑这个服务是什么。

使用微服务的好处:1.将复杂的服务拆分成单一功能的服务,利于分工,定位问题也方便。

                                 2.服务与服务之间完全独立,每个服务的修改和部署对其他服务没有影响。

                                 3.系统的并发量、可用性以及性能有了提高。

                                 

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

版权所有 (c)2021-2022 wk8.com.cn

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