Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Lcry
SpringCloud2020
提交
61ec0acf
S
SpringCloud2020
项目概览
Lcry
/
SpringCloud2020
通知
20
Star
2
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SpringCloud2020
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
61ec0acf
编写于
3月 14, 2020
作者:
Lcry
🖥
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
P44-P46:完成服务调用OpenFeign、更新ReadMe说明
上级
529ca84a
变更
12
显示空白变更内容
内联
并排
Showing
12 changed file
with
248 addition
and
77 deletion
+248
-77
.gitignore
.gitignore
+2
-0
README.en.md
README.en.md
+0
-42
README.md
README.md
+23
-32
cloud-consumer-feign-order80/pom.xml
cloud-consumer-feign-order80/pom.xml
+58
-0
cloud-consumer-feign-order80/src/main/java/com/lcry/springcloud/FeignOrderMain80.java
.../src/main/java/com/lcry/springcloud/FeignOrderMain80.java
+20
-0
cloud-consumer-feign-order80/src/main/java/com/lcry/springcloud/config/FeignConfig.java
...rc/main/java/com/lcry/springcloud/config/FeignConfig.java
+27
-0
cloud-consumer-feign-order80/src/main/java/com/lcry/springcloud/controller/OrderFeignController.java
...com/lcry/springcloud/controller/OrderFeignController.java
+35
-0
cloud-consumer-feign-order80/src/main/java/com/lcry/springcloud/service/PaymentFeignService.java
...ava/com/lcry/springcloud/service/PaymentFeignService.java
+25
-0
cloud-consumer-feign-order80/src/main/resources/application.yml
...consumer-feign-order80/src/main/resources/application.yml
+23
-0
cloud-provider-payment8001/src/main/java/com/lcry/springcloud/controller/PaymentController.java
...va/com/lcry/springcloud/controller/PaymentController.java
+17
-3
cloud-provider-payment8002/src/main/java/com/lcry/springcloud/controller/PaymentController.java
...va/com/lcry/springcloud/controller/PaymentController.java
+17
-0
pom.xml
pom.xml
+1
-0
未找到文件。
.gitignore
浏览文件 @
61ec0acf
...
...
@@ -117,3 +117,5 @@ cloud-consumer-consul-order80/target/
cloud-consumer-consul-order80/src/test/
cloud-provider-consul-payment8006/target/
cloud-provider-consul-payment8006/src/test/
cloud-consumer-feign-order80/target/
cloud-consumer-feign-order80/src/test/
README.en.md
已删除
100644 → 0
浏览文件 @
529ca84a
# SpringCloud2020
#### Description
2020-SpringCloud学习,技术选型:
SpringCloud:Hoxton.SR1
SpringBoot:2.2.2RELEASE
SpringCloud Alibaba:2.1.0.RELEASE
Java:8
Maven:3.5及以上
MySQL:5.7及以上
#### Software Architecture
Software architecture description
#### Installation
1.
xxxx
2.
xxxx
3.
xxxx
#### Instructions
1.
xxxx
2.
xxxx
3.
xxxx
#### Contribution
1.
Fork the repository
2.
Create Feat_xxx branch
3.
Commit your code
4.
Create Pull Request
#### Gitee Feature
1.
You can use Readme
\_
XXX.md to support different languages, such as Readme
\_
en.md, Readme
\_
zh.md
2.
Gitee blog
[
blog.gitee.com
](
https://blog.gitee.com
)
3.
Explore open source project
[
https://gitee.com/explore
](
https://gitee.com/explore
)
4.
The most valuable open source project
[
GVP
](
https://gitee.com/gvp
)
5.
The manual of Gitee
[
https://gitee.com/help
](
https://gitee.com/help
)
6.
The most popular members
[
https://gitee.com/gitee-stars/
](
https://gitee.com/gitee-stars/
)
README.md
浏览文件 @
61ec0acf
# SpringCloud2020
# SpringCloud2020
学习笔记
#### 介绍
2020-SpringCloud学习,技术选型:
#### 技术选型
SpringCloud:Hoxton.SR1
SpringBoot:2.2.2RELEASE
SpringCloud Alibaba:2.1.0.RELEASE
Java:8
Maven:3.5及以上
MySQL:5.7及以上
#### 软件架构
软件架构说明
SpringBoot:2.2.2RELEASE
#### 安装教程
SpringCloud Alibaba:2.1.0.RELEASE
1.
xxxx
2.
xxxx
3.
xxxx
Java:8
#### 使用说明
Maven:3.5及以上
1.
xxxx
2.
xxxx
3.
xxxx
MySQL:5.7及以上
#### 参与贡献
#### 项目结构
| 项目名 | 用途 | 所用技术 |
| --------------------------------- | :--------------------------------- | ----------------------------------------------- |
| cloud-api-commons | 公共代码部分(返回结果集、实体等) |
\
|
| cloud-consumer-consul-order80 | 消费方通过Consul调用服务方 | 注册中心(Consul)、远程调用(RestTemplate) |
| cloud-consumer-feign-order80 | 消费方通过feign远程调用服务方 | 服务调用(openfeign)、注册中心(EurekaClient) |
| cloud-consumer-order80 | 消费方通过Eureka调用服务方等示例 | 注册中心(Eureka)、远程调用(RestTemplate) |
| cloud-consumer-zk-order80 | 消费方通过Zk调用服务方 | 注册中心(Zk)、远程调用(RestTemplate) |
| cloud-eureka-server7001 | Eureka服务端1 | 注册中心(EurekaServer) |
| cloud-eureka-server7002 | Eureka服务端2 | 注册中心(EurekaServer) |
| cloud-provider-consul-payment8006 | 服务方通过Consul注册服务 | 注册中心(Consul) |
| cloud-provider-payment8001 | 服务方通过Eureka注册服务 | 注册中心(Euraka) |
| cloud-provider-payment8002 | 服务方通过Eureka注册服务 | 注册中心(Euraka) |
| cloud-provider-zk-payment8004 | 服务方通过Zk注册服务 | 注册中心(Zk) |
1.
Fork 本仓库
2.
新建 Feat_xxx 分支
3.
提交代码
4.
新建 Pull Request
#### 码云特技
1.
使用 Readme
\_
XXX.md 来支持不同的语言,例如 Readme
\_
en.md, Readme
\_
zh.md
2.
码云官方博客
[
blog.gitee.com
](
https://blog.gitee.com
)
3.
你可以
[
https://gitee.com/explore
](
https://gitee.com/explore
)
这个地址来了解码云上的优秀开源项目
4.
[
GVP
](
https://gitee.com/gvp
)
全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目
5.
码云官方提供的使用手册
[
https://gitee.com/help
](
https://gitee.com/help
)
6.
码云封面人物是一档用来展示码云会员风采的栏目
[
https://gitee.com/gitee-stars/
](
https://gitee.com/gitee-stars/
)
持续更新中....
\ No newline at end of file
cloud-consumer-feign-order80/pom.xml
0 → 100644
浏览文件 @
61ec0acf
<?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"
>
<parent>
<artifactId>
2020SpringCloud
</artifactId>
<groupId>
com.lcry
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<!-- 服务消费方使用feign远程调用服务-->
<artifactId>
cloud-consumer-feign-order80
</artifactId>
<dependencies>
<!-- openfeign -->
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-openfeign
</artifactId>
</dependency>
<!-- eureka client -->
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-netflix-eureka-client
</artifactId>
</dependency>
<!--引入自己定义的api调用包,可以使用Payment支付Entity-->
<dependency>
<groupId>
com.lcry
</groupId>
<artifactId>
cloud-api-commons
</artifactId>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-actuator
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-devtools
</artifactId>
<scope>
runtime
</scope>
<optional>
true
</optional>
</dependency>
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<optional>
true
</optional>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
</dependency>
</dependencies>
</project>
\ No newline at end of file
cloud-consumer-feign-order80/src/main/java/com/lcry/springcloud/FeignOrderMain80.java
0 → 100644
浏览文件 @
61ec0acf
package
com.lcry.springcloud
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
/**
* FeignOrderMain80
*
* @author lcry
* @date 2020/03/14 21:25
*/
@SpringBootApplication
//启用Feign
@EnableFeignClients
public
class
FeignOrderMain80
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
FeignOrderMain80
.
class
,
args
);
}
}
cloud-consumer-feign-order80/src/main/java/com/lcry/springcloud/config/FeignConfig.java
0 → 100644
浏览文件 @
61ec0acf
package
com.lcry.springcloud.config
;
import
feign.Logger
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
/**
* FeignConfig
*
* @author lcry
* @date 2020/03/14 22:04
* Feign日志控制
*/
@Configuration
public
class
FeignConfig
{
@Bean
Logger
.
Level
feignLoggerLevel
()
{
/**
* 日志级别:
* NONE :不记录任何日志(默认)
* BASIC:仅记录请求方法、URL、响应状态代码以及执行时间
* HEADERS:记录BASIC级别的基础上,记录请求和响应的header
* FULL:记录请求和响应的header,body和元数据
*/
return
Logger
.
Level
.
FULL
;
}
}
cloud-consumer-feign-order80/src/main/java/com/lcry/springcloud/controller/OrderFeignController.java
0 → 100644
浏览文件 @
61ec0acf
package
com.lcry.springcloud.controller
;
import
com.lcry.springcloud.entities.CommonResult
;
import
com.lcry.springcloud.entities.Payment
;
import
com.lcry.springcloud.service.PaymentFeignService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
/**
* OrderFeignController
*
* @author lcry
* @date 2020/03/14 21:29
*/
@RestController
@Slf4j
public
class
OrderFeignController
{
@Resource
private
PaymentFeignService
paymentFeignService
;
@GetMapping
(
value
=
"/consumer/payment/get/{id}"
)
public
CommonResult
<
Payment
>
getPaymentById
(
@PathVariable
(
"id"
)
Long
id
)
{
return
paymentFeignService
.
getPaymentById
(
id
);
}
@GetMapping
(
value
=
"/consumer/payment/feign/timeout"
)
public
String
paymentFeignTimeout
()
{
//OpenFeign-Ribbon:客户端一般默认等待1秒钟
return
paymentFeignService
.
paymentFeignTimeout
();
}
}
cloud-consumer-feign-order80/src/main/java/com/lcry/springcloud/service/PaymentFeignService.java
0 → 100644
浏览文件 @
61ec0acf
package
com.lcry.springcloud.service
;
import
com.lcry.springcloud.entities.CommonResult
;
import
com.lcry.springcloud.entities.Payment
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
/**
* PaymentFeignService
*
* @author lcry
* @date 2020/03/14 21:28
*/
@Component
@FeignClient
(
value
=
"CLOUD-PAYMENT-SERVICE"
)
//需要调用的目标微服务应用名称
public
interface
PaymentFeignService
{
//Feign接口中的方法要与目标服务中的Controller中的方法完全一致,可以直接copy
@GetMapping
(
value
=
"/payment/get/{id}"
)
public
CommonResult
<
Payment
>
getPaymentById
(
@PathVariable
(
"id"
)
Long
id
);
@GetMapping
(
value
=
"/payment/feign/timeout"
)
public
String
paymentFeignTimeout
();
}
cloud-consumer-feign-order80/src/main/resources/application.yml
0 → 100644
浏览文件 @
61ec0acf
server
:
port
:
80
eureka
:
client
:
register-with-eureka
:
false
service-url
:
defaultZone
:
http://localhost:7001/eureka
#单机版
#defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka #集群版
#OpenFeign的超时控制配置:默认只等待1秒,超时则报错
#设置Feign客户端超时时间(OpenFeign默认支持Ribbon)
ribbon
:
#指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间
ReadTimeout
:
5000
#指的是建立连接后从服务器读取到可用资源所用的时间
connectTimeout
:
5000
#开启Feign的日志客户端
logging
:
level
:
#Feign日志以什么级别监听哪个接口
com.lcry.springcloud.service.PaymentFeignService
:
debug
\ No newline at end of file
cloud-provider-payment8001/src/main/java/com/lcry/springcloud/controller/PaymentController.java
浏览文件 @
61ec0acf
...
...
@@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.*;
import
javax.annotation.Resource
;
import
java.util.List
;
import
java.util.concurrent.TimeUnit
;
/**
* PaymentController
...
...
@@ -56,8 +57,6 @@ public class PaymentController {
}
@GetMapping
(
value
=
"/payment/discovery"
)
public
Object
discovery
()
{
//查询Eureka上面注册了几个服务
...
...
@@ -84,4 +83,19 @@ public class PaymentController {
public
String
getPaymentLB
()
{
return
serverPort
;
}
/**
* 测试服务超时feign调用默认1s返回错误
* OpenFeign超时控制演示,OpenFeign默认等待1秒钟,超过则报错
*/
@GetMapping
(
value
=
"/payment/feign/timeout"
)
public
String
getPaymentTimeout
()
{
//暂停3秒钟线程
try
{
TimeUnit
.
SECONDS
.
sleep
(
3
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
return
serverPort
;
}
}
cloud-provider-payment8002/src/main/java/com/lcry/springcloud/controller/PaymentController.java
浏览文件 @
61ec0acf
...
...
@@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.*;
import
javax.annotation.Resource
;
import
java.util.List
;
import
java.util.concurrent.TimeUnit
;
/**
* PaymentController
...
...
@@ -82,4 +83,20 @@ public class PaymentController {
public
String
getPaymentLB
()
{
return
serverPort
;
}
/**
* 测试服务超时feign调用默认1s返回错误
* OpenFeign超时控制演示,OpenFeign默认等待1秒钟,超过则报错
*/
@GetMapping
(
value
=
"/payment/feign/timeout"
)
public
String
getPaymentTimeout
()
{
//暂停3秒钟线程
try
{
TimeUnit
.
SECONDS
.
sleep
(
3
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
return
serverPort
;
}
}
pom.xml
浏览文件 @
61ec0acf
...
...
@@ -18,6 +18,7 @@
<module>
cloud-consumer-zk-order80
</module>
<module>
cloud-provider-consul-payment8006
</module>
<module>
cloud-consumer-consul-order80
</module>
<module>
cloud-consumer-feign-order80
</module>
</modules>
<packaging>
pom
</packaging>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录