03-微服务架构及解决方案

使用 @GlobalTransactional 注解, 高效并且对业务零侵入地解决分布式事务问题。。

  • 分布式任务调度:

提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。同时提供分布式的任务执行模型,如网格任务。网格任务支持海量子任务均匀分配到所有 Worker上执行。

解决方案架构设计


基于Spring Cloud Alibaba实现的微服务,解决方案设计架构如图所示:

在这里插入图片描述

构建SpringCloud 聚合项目并进行环境初始化

====================================================================================

工程结构


微服务项目一般都会采用聚合工程结构,可通过聚合工程结构实现共享资源的复用,简化项目的管理方式。本小节以一个聚合工程结构为案例,讲解微服务架构方案中的maven聚合工程的基本结构,例如:

GitCGB2108IVProjects (工作区/空项目)

├── 01-sca //(微服务父工程)

├── sca-provider //服务提供方法

├── sca-consumer //服务消费方法

├── sca-gateway //网关服务

创建空项目


打开Idea,创建一个空项目(Empty Project),项目名为GitCGB2108IVProjects,例如:

在这里插入图片描述

在这里插入图片描述

其中,这个空项目就类似磁盘中的一个空的文件夹,可以将此文件夹作为一个代码工作区。

项目初始化配置


第一步:配置maven环境(只要是新的工作区,都要重新配置),注意本地库选择新的位置不要与其它项目共用本地库,因为多个项目所需要依赖的版本不同时,可能会有一些依赖版本的冲突。.

在这里插入图片描述

说明,这里的本地库名字最要不要选择中文,单词之间也不要有空格。

第二步:配置JDK编译环境

聚合工程在编译时,需要对相关依赖的工程进行一起编译,所以需要做一些配置,例如:

在这里插入图片描述

指定一下当前工作区的jdk编译版本,例如:

在这里插入图片描述

第三步:配置工作区中项目编码方式

在这里插入图片描述

创建聚合父工程


我们后续在创建微服务工程进行学习时,相关服务依赖版本的管理,公共依赖,项目编译,打包设计等都可以放在此工程下,进行统一的配置,然后实现共享。

第一步:创建父工程模块,例如:

在这里插入图片描述

在这里插入图片描述

第二步:删除工程中的src目录(父工程不需要这个目录),例如:

在这里插入图片描述

第三步:修改项目pom.xml文件内容,例如:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns=“http://maven.apache.org/POM/4.0.0”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>

4.0.0

com.jt

01-sca

1.0-SNAPSHOT

org.springframework.boot

spring-boot-dependencies

2.3.2.RELEASE

pom

import

org.springframework.cloud

spring-cloud-dependencies

Hoxton.SR9

pom

import

com.alibaba.cloud

spring-cloud-alibaba-dependencies

2.2.6.RELEASE

pom

import

<!-

必看视频!获取2024年最新Java开发全套学习资料 备注Java

-第二步: 添加子工程的所需要的公共依赖–>

org.projectlombok

lombok

provided

org.springframework.boot

spring-boot-starter-test

test

org.junit.vintage

junit-vintage-engine

<!–项目构建配置,我们基于maven完成项目的编译,测试,打包等操作,

都是基于pom.xml完成这一列的操作,但是编译和打包的配置都是要写到build元素

内的,而具体的编译和打包配置,又需要plugin去实现,plugin元素不是必须的,maven

有默认的plugin配置,常用插件可去本地库进行查看–>

org.apache.maven.plugins

maven-compiler-plugin

3.8.1

8

8

其中,服务核心依赖版本可参考如下网址(涉及到一个兼容性问题,不能随意指定其版本):

https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

创建服务提供方模块


创建服务提供方工程,继承01-sca,例如:

在这里插入图片描述

创建服务消费方模块


创建服务消费方工程,继承01-sca,例如:

在这里插入图片描述

最后

本人也收藏了一份Java面试核心知识点来应付面试,借着这次机会可以送给我的读者朋友们:

目录:

二面蚂蚁金服(交叉面),已拿offer,Java岗定级阿里P6

Java面试核心知识点

一共有30个专题,足够读者朋友们应付面试啦,也节省朋友们去到处搜刮资料自己整理的时间!

二面蚂蚁金服(交叉面),已拿offer,Java岗定级阿里P6

Java面试核心知识点

创建服务消费方工程,继承01-sca,例如:

在这里插入图片描述

最后

本人也收藏了一份Java面试核心知识点来应付面试,借着这次机会可以送给我的读者朋友们:

目录:

[外链图片转存中…(img-NcmAWe6e-1716376987931)]

Java面试核心知识点

一共有30个专题,足够读者朋友们应付面试啦,也节省朋友们去到处搜刮资料自己整理的时间!

[外链图片转存中…(img-36AkHmG0-1716376987931)]

Java面试核心知识点

  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值