springcloud入门
创始人
2024-03-22 20:43:44

微服务架构介绍

微服务架构, 简单的说就是将单体应用进一步拆分,拆分成更小的服务,每个服务都是一个可以独
立运行的项目。

微服务架构的常见问题

一旦采用微服务系统架构,就势必会遇到这样几个问题:

  • 这么多小服务,如何管理他们?(服务治理 注册中心[服务注册 发现 剔除])
  • 这么多小服务,他们之间如何通讯?(restful rpc)
  • 这么多小服务,客户端怎么访问他们?(网关)
  • 这么多小服务,一旦出现问题了,应该如何自处理?(容错)
  • 这么多小服务,一旦出现问题了,应该如何排错? (链路追踪)

对于上面的问题,是任何一个微服务设计者都不能绕过去的,因此大部分的微服务产品都针对每一
个问题提供了相应的组件来解决它们。

springcloud:
Spring Cloud是一系列框架的集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基
础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用
Spring Boot的开发风格做到一键启动和部署。
Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服
务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留
出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

父项pom.xml:


4.0.0com.xujiespringcloud_sppom1.0-SNAPSHOTshop_commonshop_usershop_productshop_order1.8UTF-8UTF-82.3.2.RELEASEHoxton.SR92.2.6.RELEASEorg.springframework.bootspring-boot-dependencies${spring-boot.version}pomimport

common公共模块:
所有的项目需要的依赖:



springcloud_spcom.xujie1.0-SNAPSHOT4.0.0shop_commonorg.projectlomboklombokcom.alibabafastjson1.2.56mysqlmysql-connector-java5.1.6org.springframework.bootspring-boot-starter-testorg.springframework.bootspring-boot-starter-web88

子项目:


4.0.0com.xujie0.0.1-SNAPSHOTspringcloud_spcom.xujie1.0-SNAPSHOTshop_productcom.xujieshop_common1.0-SNAPSHOTorg.springframework.bootspring-boot-maven-plugin

调用其他模块:

package com.xujie.shop_order;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;@SpringBootApplication
public class ShopOrderApplication {public static void main(String[] args) {SpringApplication.run(ShopOrderApplication.class, args);}@Beanpublic RestTemplate restTemplate(){return new RestTemplate();}
}

controller:

package com.xujie.shop_order.controller;import com.xujie.common.model.Order;
import com.xujie.common.model.Product;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;/*** @author 许缘* @company xxx公司* @create 2022-12-06  17:25*/
@RestController
@RequestMapping("/order")
public class ordercontroller {@Autowiredprivate RestTemplate restTemplate;@RequestMapping("/test/{pid}")public Order createOrder(@PathVariable("pid") Integer pid){Product product =restTemplate.getForObject("http://localhost:8080/product/getOne/"+pid,Product.class);//创建订单Order order = new Order();order.setOid(System.currentTimeMillis());order.setUid(12);order.setUsername("张三");order.setPid(product.getPid());order.setPname(product.getPname());order.setPprice(product.getPprice());order.setNumber(product.getStock());return order;}
}

效果图:
在这里插入图片描述

相关内容

热门资讯

南海产业集团CMBS成功发行! (来源:AdvancedForum)2025年1月13日,中信建投-国泰海通-南海产业二期资产支持专...
商人送钱10年让官员主动给办事 (来源:今晚报)转自:今晚报 【#商人送钱10年让官员主...
山西运城一小区高层起火时发现有... 1月12日晚,山西运城圣惠嘉园35号楼11层一住户家突发火灾,有业主称事发时门口消防栓没水。1月13...
锐评|围猎的长线,每一根都挂着... 转自:北京日报客户端年度反腐大片第三集13日晚播出,通过一个个案例起底围猎现象、解析围猎机理,揭开温...
海底捞高层换帅:创始人张勇重掌... 面对每天上千份上市公司公告该看哪些?重大事项公告动辄几十页几百页重点是啥?公告里一堆专业术语不知道算...