Skip to content

Commit f0ccc3e

Browse files
committed
fix readme material path
1 parent 125ce28 commit f0ccc3e

File tree

9 files changed

+32
-32
lines changed

9 files changed

+32
-32
lines changed

dubbo-annotation-sample/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
分布式意味着,一个业务被拆分多个业务,部署在不同服务器上,既然各个服务部署在不同的服务器上,那服务间的调用就是通过网络通信的。既然涉及到了网络通信,那么服务消费者调用服务之前,都要写各种网络请求和编解码之类的相关代码,明显是很不友好的,Dubbo所说的透明化,就是指让调用者对网络请求和编解码的细节透明,让我们像调用本地方法一样去调用远程方法。
66

77
### Dubbo的架构
8-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/dubbo/991608375409_.pic.jpg" width = "500" height = "320" alt="图片名称" align=center />
8+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/dubbo/991608375409_.pic.jpg" width = "500" height = "320" alt="图片名称" align=center />
99

1010
#### 上述节点说明
1111
> - Provider:暴露服务的服务提供方;
@@ -33,7 +33,7 @@
3333
> - 服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复;
3434
3535
### Dubbo 工作原理
36-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/dubbo/1001608375467_.pic.jpg" width = "700" height = "640" alt="图片名称" align=center />
36+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/dubbo/1001608375467_.pic.jpg" width = "700" height = "640" alt="图片名称" align=center />
3737

3838
#### Dubbo各层说明,除了Service和Config层为API,其它各层均为SPI
3939
> - 第一层:service层,接口层,给服务提供者和消费者来实现的;

dubbo-async-sample/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Dubbo协议采用单一长连接,底层实现是Netty的NIO异步通讯机制
3333
### 异步调用
3434
给予Dubbo底层的异步NIO实现异步调用,对于Provider响应时间较长的场景是必须的,它能有效的利用Consumer的资源,相对于Consumer端使用多线程来说开销较小;
3535

36-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/dubbo/8251608611495_.pic_P.jpg" width = "620" height = "300" alt="图片名称" align=center />
36+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/dubbo/8251608611495_.pic_P.jpg" width = "620" height = "300" alt="图片名称" align=center />
3737

3838
### Dubbo事件通知实战
3939
#### 1、定义CompletableFuture签名接口

dubbo-http-sample/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
分布式意味着,一个业务被拆分多个业务,部署在不同服务器上,既然各个服务部署在不同的服务器上,那服务间的调用就是通过网络通信的。既然涉及到了网络通信,那么服务消费者调用服务之前,都要写各种网络请求和编解码之类的相关代码,明显是很不友好的,Dubbo所说的透明化,就是指让调用者对网络请求和编解码的细节透明,让我们像调用本地方法一样去调用远程方法。
66

77
### Dubbo的架构
8-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/dubbo/991608375409_.pic.jpg" width = "500" height = "320" alt="图片名称" align=center />
8+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/dubbo/991608375409_.pic.jpg" width = "500" height = "320" alt="图片名称" align=center />
99

1010
#### 上述节点说明
1111
> - Provider:暴露服务的服务提供方;
@@ -33,7 +33,7 @@
3333
> - 服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复;
3434
3535
### Dubbo 工作原理
36-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/dubbo/1001608375467_.pic.jpg" width = "700" height = "640" alt="图片名称" align=center />
36+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/dubbo/1001608375467_.pic.jpg" width = "700" height = "640" alt="图片名称" align=center />
3737

3838
#### Dubbo各层说明,除了Service和Config层为API,其它各层均为SPI
3939
> - 第一层:service层,接口层,给服务提供者和消费者来实现的;

dubbo-xml-sample/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
分布式意味着,一个业务被拆分多个业务,部署在不同服务器上,既然各个服务部署在不同的服务器上,那服务间的调用就是通过网络通信的。既然涉及到了网络通信,那么服务消费者调用服务之前,都要写各种网络请求和编解码之类的相关代码,明显是很不友好的,Dubbo所说的透明化,就是指让调用者对网络请求和编解码的细节透明,让我们像调用本地方法一样去调用远程方法。
66

77
### Dubbo的架构
8-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/dubbo/991608375409_.pic.jpg" width = "500" height = "320" alt="图片名称" align=center />
8+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/dubbo/991608375409_.pic.jpg" width = "500" height = "320" alt="图片名称" align=center />
99

1010
#### 上述节点说明
1111
> - Provider:暴露服务的服务提供方;
@@ -33,7 +33,7 @@
3333
> - 服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复;
3434
3535
### Dubbo 工作原理
36-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/dubbo/1001608375467_.pic.jpg" width = "700" height = "640" alt="图片名称" align=center />
36+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/dubbo/1001608375467_.pic.jpg" width = "700" height = "640" alt="图片名称" align=center />
3737

3838
#### Dubbo各层说明,除了Service和Config层为API,其它各层均为SPI
3939
> - 第一层:service层,接口层,给服务提供者和消费者来实现的;

springboot-atomikos-xa-sample/README.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
> - XA整体设计思路可以概括为,如何在现有事务模型上微调扩展,实现分布式事务。
1010
1111
##### 2.XA协议成员
12-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/711607681004_.pic_hd.jpg" width = "600" height = "240" alt="图片名称" align=center />
12+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/711607681004_.pic_hd.jpg" width = "600" height = "240" alt="图片名称" align=center />
1313

1414
> - 应用程序(Application Program ,简称 AP):用于定义事务边界(即定义事务的开始和 结束),并且在事务边界内对资源进行操作。
1515
>
@@ -18,7 +18,7 @@
1818
> - 事务管理器(Transaction Manager ,简称 TM):负责分配事务唯一标识,监控事务的执行 进度,并负责事务的提交、回滚等。
1919
2020
##### 3.XA协议接口
21-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/721607681013_.pic_hd.jpg" width = "400" height = "450" alt="图片名称" align=center />
21+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/721607681013_.pic_hd.jpg" width = "400" height = "450" alt="图片名称" align=center />
2222

2323
###### 3.1XA也是2PC(两阶段)的,第一阶段(xa_start、xa_end),第二阶段(xa_prepare、xa_commit、xa_rollback)
2424

@@ -36,13 +36,13 @@
3636
3737
##### 4.Mysql中对XA协议的支持
3838
###### 4.1 MySQL 从5.0.3开始支持InnoDB引擎的 XA 分布式事务,MySQL Connector/J 从5.0.0版本开始支持XA。(Mysql5.7以下版本XA是不安全的,如Mysql5.6断开SQL连接后,XA会自动回滚,导致无法重连补偿)
39-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/731607681029_.pic_hd.jpg" width = "800" height = "220" alt="图片名称" align=center />
39+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/731607681029_.pic_hd.jpg" width = "800" height = "220" alt="图片名称" align=center />
4040

4141
###### 4.2 在 DTP 模型中,MySQL 属于资源管理器(RM)。分布式事务中存在多个 RM,由事务管理器 TM 来统一进行协调。
42-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/741607681043_.pic_hd.jpg" width = "800" height = "180" alt="图片名称" align=center />
42+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/741607681043_.pic_hd.jpg" width = "800" height = "180" alt="图片名称" align=center />
4343

4444
##### 5 MySQL XA事务状态
45-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/751607681057_.pic_hd.jpg" width = "800" height = "500" alt="图片名称" align=center />
45+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/751607681057_.pic_hd.jpg" width = "800" height = "500" alt="图片名称" align=center />
4646

4747
> - SQL执行完成后进入XA_END状态
4848
>
@@ -80,7 +80,7 @@
8080

8181
### 二.XA框架
8282
##### 目前XA应用较为广泛的是Atomikos框架
83-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/761607681074_.pic_hd.jpg" width = "800" height = "320" alt="图片名称" align=center />
83+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/761607681074_.pic_hd.jpg" width = "800" height = "320" alt="图片名称" align=center />
8484

8585
### 三.Atomikos-XA框架实战
8686
##### 1.SQL准备工作,创建两个数据库和相应的表结构

springboot-rpc-grpc-sample/README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
### 一.什么是RPC?
44
##### RPC原理简图
5-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/grpc/831608122149_.pic_hd.jpg" width = "600" height = "340" alt="图片名称" align=center />
5+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/grpc/831608122149_.pic_hd.jpg" width = "600" height = "340" alt="图片名称" align=center />
66

77
### 二.什么是gRPC?
88
##### gRPC是一个高性能、通用的开源RPC框架,基于HTTP/2二进制协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发语言。
@@ -15,14 +15,14 @@ ProtoBuf是一个存粹的展示层协议,可以和各种传输层协议一起
1515
1616

1717
#### gRPC服务端创建流程
18-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/grpc/841608122163_.pic_hd.jpg" width = "660" height = "395" alt="图片名称" align=center />
18+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/grpc/841608122163_.pic_hd.jpg" width = "660" height = "395" alt="图片名称" align=center />
1919

2020
> - gRPC服务端基于NettyServer负责监听Socket地址,基于HTTP2协议的写入;
2121
> - gPRC服务接口并不是使用反射来实现的,而是通过Proto工具生成的代码,将服务接口注册到gRPC内部的服务上,性能较高;
2222
> - ServerImpl负责整个gRPC服务端消息的调度和处理,会初始化:Netty线程池、gRPC的线程池、内部服务注册等;
2323
2424
#### gRPC消息接入流程
25-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/grpc/851608122185_.pic_hd.jpg" width = "700" height = "420" alt="图片名称" align=center />
25+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/grpc/851608122185_.pic_hd.jpg" width = "700" height = "420" alt="图片名称" align=center />
2626

2727
> - gRPC消息由netty/http2协议负责接入,通过gRPC注册的Http2FrameLister将解码后的Http Header和Http Body后,发送到gRPC的NettyServerHandler,实现Netty Http/2的消息接入;
2828

springboot-rpc-thrift-sample/README.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,15 @@
4040

4141
##### TSimpleServer单线程服务模型
4242

43-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/thrift/811607996045_.pic_hd.jpg" width = "580" height = "340" alt="图片名称" align=center />
43+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/thrift/811607996045_.pic_hd.jpg" width = "580" height = "340" alt="图片名称" align=center />
4444

4545
> - TSimpleServer是一个单线程阻塞I/O的Server,它循环监听新请求的到来并 对请求进行处理;
4646
>
4747
> - TSimpleServer一次只能接受处理一个Sokect连接,效率低,一般用于调试和学习;
4848
4949
##### TNonblockingServer单线程非阻塞I/O模型
5050

51-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/thrift/781607995925_.pic_hd.jpg" width = "540" height = "760" alt="图片名称" align=center />
51+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/thrift/781607995925_.pic_hd.jpg" width = "540" height = "760" alt="图片名称" align=center />
5252

5353
> - TNonblokingServer 是一个单线程NIO的Server,通过Selector循环监听所有Sokect,每次selector结束时,处理所有就绪的状态Sokect;
5454
>
@@ -57,7 +57,7 @@
5757

5858
#### ThreadPoolServer多线程阻塞I/O模型
5959

60-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/thrift/791607995943_.pic_hd.jpg" width = "600" height = "400" alt="图片名称" align=center />
60+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/thrift/791607995943_.pic_hd.jpg" width = "600" height = "400" alt="图片名称" align=center />
6161

6262
> - TThreadPoolServer模式采用阻塞Sokect方式工作,主线程负责阻塞监听是否有新的Sokect连接,业务交由一个线程池进行处理;
6363
>
@@ -66,15 +66,15 @@
6666

6767
#### THsHaServer
6868

69-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/thrift/801607996017_.pic_hd.jpg" width = "580" height = "760" alt="图片名称" align=center />
69+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/thrift/801607996017_.pic_hd.jpg" width = "580" height = "760" alt="图片名称" align=center />
7070

7171
> - THsHaServer是一个TNonbloking的子类,在TNonblockingServer模式中,采用一个线程处理所有Sokect监听和业务处理,造成效率地下,而THsHaServer模式使用了一个线程池来专门处理业务;
7272
7373

7474
### 三、如何使用Thrift?
7575
#### 1.在使用Thrift框架前,需要先针对业务设计IDL描述文件,然后生成对应的Java接口文件后完成对应的接口实现类。
7676

77-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/thrift/821608019224_.pic.jpg" width = "580" height = "340" alt="图片名称" align=center />
77+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/thrift/821608019224_.pic.jpg" width = "580" height = "340" alt="图片名称" align=center />
7878

7979
> - Stub(存根):Stub是一段部署在分布式系统客户端代码,一方面接收应用层参数,并对其序列化后通过底层协议栈发送到服务端,另一方面接收服务端序列化后的结果数据,反序列化后交给客户端应用;
8080
> - Skeleton(骨架):Skeleton部署在服务端其功能和Stub相反,从传输层接收序列化参数,反序列化后交给服务端应用层,并将应用层的执行结果系列化后最终传递给客户端Stub;

springboot-seata-at-sample/README.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
------------
1212

1313
##### 对比本地事务 -> XA(2PC) -> BASE
14-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/631607654308_.pic_hd.jpg" width = "600" height = "180" alt="图片名称" align=center />
14+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/631607654308_.pic_hd.jpg" width = "600" height = "180" alt="图片名称" align=center />
1515

1616
------------
1717

@@ -31,7 +31,7 @@
3131

3232
### 二.柔性事务的AT模式定义
3333
##### AT模式就是两阶段提交,自动生成反向SQL
34-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/641607656083_.pic_hd.jpg" width = "600" height = "230" alt="图片名称" align=center />
34+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/641607656083_.pic_hd.jpg" width = "600" height = "230" alt="图片名称" align=center />
3535

3636
------------
3737

@@ -45,7 +45,7 @@ Seata AT 事务模型包含了:TM(事务管理器),RM(资源管理器
4545
------------
4646

4747
##### Seata管理分布式事务的生命周期
48-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/671607656675_.pic_hd.jpg" width = "600" height = "320" alt="图片名称" align=center />
48+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/671607656675_.pic_hd.jpg" width = "600" height = "320" alt="图片名称" align=center />
4949

5050
1. TM要求TC开始一个全局事务
5151
2. TC生成一个代表该全局事务的XID
@@ -59,7 +59,7 @@ Seata AT 事务模型包含了:TM(事务管理器),RM(资源管理器
5959

6060
###### 1.Seata-AT的两阶段
6161

62-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/651607656115_.pic_hd.jpg" width = "700" height = "400" alt="图片名称" align=center />
62+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/651607656115_.pic_hd.jpg" width = "700" height = "400" alt="图片名称" align=center />
6363

6464
Seata-AT两阶段提交协议的演变:
6565
> - 一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源
@@ -69,7 +69,7 @@ Seata-AT两阶段提交协议的演变:
6969

7070
###### 2.Seata-AT如何实现多个事务的读写隔离
7171

72-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/661607656128_.pic_hd.jpg" width = "700" height = "400" alt="图片名称" align=center />
72+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/661607656128_.pic_hd.jpg" width = "700" height = "400" alt="图片名称" align=center />
7373

7474
Seata-AT通过全局锁的方式,实现读写隔离
7575
> - 本地锁控制本地操作
@@ -80,7 +80,7 @@ Seata-AT通过全局锁的方式,实现读写隔离
8080
### 四.Seata-AT模式实战
8181

8282
##### 1.实现一个交易业务(Bussiness),需要库存服务(Stroage)、订单服务(Order)和用户服务(Account)
83-
<img src="https://raw.githubusercontent.com/ipipman/JavaSpringBootSamples/master/ReadmeMaterial/681607659883_.pic.jpg" width = "600" height = "320" alt="图片名称" align=center />
83+
<img src="https://ipman-blog-1304583208.cos.ap-nanjing.myqcloud.com/681607659883_.pic.jpg" width = "600" height = "320" alt="图片名称" align=center />
8484

8585
###### 在SpringBoot下运行,本文并没有使用RPC的方式,而是在HTTP请求头中传递XID的方式实现的,代码如下:
8686
> - seata-at-account-service

0 commit comments

Comments
 (0)