微服务介绍微服务环境搭建
创始人
2024-02-18 06:27:40

一、微服务介绍

从互联网早起到现在,系统架构大体经历了下面几个过程: 单体应用架构--->垂直应用架构--->分布 式架构--->SOA架构--->微服务架构,当然还有悄然兴起的Service Mesh(服务网格化)。

微服务架构

微服务架构在某种程度上是面向服务的架构SOA继续发展的下一步,它更加强调服务的"彻底拆分"。

 优点:

  • 服务原子化拆分,独立打包、部署和升级,保证每个微服务清晰的任务划分,利于扩展

  • 微服务之间采用Restful等轻量级http协议相互调用

缺点:

  • 分布式系统开发的技术成本高(容错、分布式事务等)

 二、微服务环境搭建

本次是使用的电商项目中的商品、订单、用户为案例进行讲解。

技术选型

maven:3.5.4

数据库:MySQL 5.7

持久层: SpingData Jpa/Mybatis-plus

其他: SpringCloud Alibaba 技术栈

模块设计

springcloud-shop父工程

shop-common 公共模块【实体类】

shop-user 用户微服务 【端口: 807x】

shop-product 商品微服务 【端口: 808x】

shop-order 订单微服务 【端口: 809x】

微服务调用

1.在微服务架构中,最常见的场景就是微服务之间的相互调用。我们以电商系统中常见的用户下单为 例来演示微服务的调用:客户向订单微服务发起一个下单的请求,在进行保存订单之前需要调用商品微 服务查询商品的信息。

2.我们一般把服务的主动调用方称为服务消费者,把服务的被调用方称为服务提供者。 在这种场景下,订单微服务就是一个服务消费者, 商品微服务就是一个服务提供者。

 创建父工程

创建一个maven项目

 创建文件夹

 起名

 配置Maven

 确定后导入改变,接着把src删掉,避免代码位置写错

 在pom.xml文件中添加下面内容

    1.8UTF-8UTF-82.3.2.RELEASEHoxton.SR92.2.6.RELEASEorg.springframework.bootspring-boot-dependencies${spring-boot.version}pomimport

三、创建基础模块

 1 创建shop-common 模块,在pom.xml中添加依赖

 

 依赖:

org.springframework.bootspring-boot-starter-data-jpaorg.projectlomboklombokcom.alibabafastjson1.2.56mysqlmysql-connector-java5.1.44

创建Maven项目会自动帮你添加,如果创建Springboot项目则需要自己加,否则会报错

 依赖添加到这,添加完记得导入改变

 2 创建实体类

 用户实体类: 

//用户
@Entity(name = "shop_user")//实体类跟数据表的对应
@Data//不再去写set和get方法
public class User {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)//数据库自增private Integer uid;//主键private String username;//用户名private String password;//密码private String telephone;//手机号
}

 jpa连接数据库使用

 商品:

@Data
public class Product {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Integer pid;//主键private String pname;//商品名称private Double pprice;//商品价格private Integer stock;//库存
}

 

 订单:

@Data
public class Order {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long oid;//订单id//用户private Integer uid;//用户idprivate String username;//用户名//商品private Integer pid;//商品idprivate String pname;//商品名称private Double pprice;//商品单价//数量private Integer number;//购买数量
}

四、创建用户微服务

步骤:

1 创建模块 导入依赖

2 创建SpringBoot主类

3 加入配置文件

4 创建必要的接口和实现类(controller service dao)

新建一个shop-user 模块,然后进行下面操作

1 创建pom.xml

 

 

 

 

 

 

依赖: 

org.springframework.bootspring-boot-starter-webcom.zkingshop-common1.0-SNAPSHOT

 13到80行全删掉

 

 

 

五、创建商品微服务

 1 创建一个名为shop-product 的模块,并添加springboot依赖

 

然后:Next>Next>Finish 即可

 

 

 13到80行删掉后导入下面依赖:

org.springframework.bootspring-boot-starter-webcom.zkingshop-common1.0-SNAPSHOT

 

六、创建订单微服务

 1 创建一个名为shop-order 的模块,并添加springboot依赖

 

 然后:Next>Next>Finish 即可

 13到80行删掉,然后导入下面依赖:

org.springframework.bootspring-boot-starter-webcom.zkingshop-common1.0-SNAPSHOT

 

 

 

 

因为本次内容不会使用Junit,所以需要把test全部干掉

 

下面还有一个test,一起干掉!

 

 

 

 

 

 

 

 

 

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...