Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
S
SpringCloudServerConsumer
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xiachenqi
SpringCloudServerConsumer
Commits
67355d64
Commit
67355d64
authored
Jul 10, 2019
by
XCQi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
直接使用hystrix可以实现线程隔离
改为尝试使用feign实现线程隔离
parent
5ba23bfe
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
135 additions
and
13 deletions
+135
-13
pom.xml
pom.xml
+6
-1
SpringCloudConsumerApplication.java
...n/springcloudconsumer/SpringCloudConsumerApplication.java
+1
-0
RestTemplateConfig.java
...ingxin/springcloudconsumer/config/RestTemplateConfig.java
+16
-0
RestApi.java
...a/com/yingxin/springcloudconsumer/controller/RestApi.java
+25
-8
HelloFallBack.java
...om/yingxin/springcloudconsumer/service/HelloFallBack.java
+3
-2
HelloFallBack2.java
...m/yingxin/springcloudconsumer/service/HelloFallBack2.java
+26
-0
HelloService.java
...com/yingxin/springcloudconsumer/service/HelloService.java
+2
-2
HelloService2.java
...om/yingxin/springcloudconsumer/service/HelloService2.java
+20
-0
TestService.java
.../com/yingxin/springcloudconsumer/service/TestService.java
+32
-0
application.properties
src/main/resources/application.properties
+4
-0
No files found.
pom.xml
View file @
67355d64
...
...
@@ -16,7 +16,7 @@
<properties>
<java.version>
1.8
</java.version>
<spring-cloud.version>
Greenwich.SR
1
</spring-cloud.version>
<spring-cloud.version>
Greenwich.SR
2
</spring-cloud.version>
</properties>
<dependencies>
...
...
@@ -37,6 +37,11 @@
<artifactId>
spring-cloud-starter-openfeign
</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.netflix.hystrix</groupId>-->
<!-- <artifactId>hystrix-javanica</artifactId>-->
<!-- <version>RELEASE</version>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>-->
<!-- <artifactId>spring-cloud-netflix-hystrix</artifactId>-->
<!-- </dependency>-->
...
...
src/main/java/com/yingxin/springcloudconsumer/SpringCloudConsumerApplication.java
View file @
67355d64
...
...
@@ -8,6 +8,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
//@EnableHystrix
public
class
SpringCloudConsumerApplication
{
public
static
void
main
(
String
[]
args
)
{
...
...
src/main/java/com/yingxin/springcloudconsumer/config/RestTemplateConfig.java
0 → 100644
View file @
67355d64
package
com
.
yingxin
.
springcloudconsumer
.
config
;
import
org.springframework.cloud.client.loadbalancer.LoadBalanced
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.web.client.RestTemplate
;
@Configuration
public
class
RestTemplateConfig
{
@Bean
@LoadBalanced
RestTemplate
restTemplate
()
{
return
new
RestTemplate
();
}
}
src/main/java/com/yingxin/springcloudconsumer/controller/RestApi.java
View file @
67355d64
...
...
@@ -2,6 +2,7 @@ package com.yingxin.springcloudconsumer.controller;
import
com.yingxin.springcloudconsumer.entity.User
;
import
com.yingxin.springcloudconsumer.service.HelloService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RestController
;
...
...
@@ -10,16 +11,32 @@ import java.util.List;
@RestController
public
class
RestApi
{
private
final
HelloService
helloService
;
public
RestApi
(
HelloService
helloService
)
{
this
.
helloService
=
helloService
;
// @Autowired
// private TestService service;
//
// @GetMapping("/test")
// public String test(){
// return service.hello1();
// }
//
// @GetMapping("/test2")
// public String test2(){
// return service.hello2();
// }
@Autowired
private
HelloService
helloService
;
// @Autowired
// private HelloService2 helloService2;
@GetMapping
(
"/hello1"
)
public
String
testHello1
()
{
return
helloService
.
hello1
();
}
@GetMapping
(
"/consumer
"
)
public
String
helloConsumer
()
{
return
helloService
.
hello
();
}
// @GetMapping("/hello2
")
// public String testHello2
() {
// return helloService2.hello2
();
//
}
@GetMapping
(
"user"
)
public
User
userConsumer
()
{
...
...
src/main/java/com/yingxin/springcloudconsumer/service/HelloFallBack.java
View file @
67355d64
...
...
@@ -8,8 +8,9 @@ import java.util.List;
@Component
public
class
HelloFallBack
implements
HelloService
{
@Override
public
String
hello
()
{
return
"service error"
;
public
String
hello1
()
{
System
.
out
.
println
(
"hello1 线程:"
+
Thread
.
currentThread
().
getName
());
return
"service1 error"
;
}
@Override
...
...
src/main/java/com/yingxin/springcloudconsumer/service/HelloFallBack2.java
0 → 100644
View file @
67355d64
//package com.yingxin.springcloudconsumer.service;
//
//import com.yingxin.springcloudconsumer.entity.User;
//import org.springframework.stereotype.Component;
//
//import java.util.List;
//
//@Component
//public class HelloFallBack2 implements HelloService2 {
//
// @Override
// public String hello2() {
// System.out.println("hello2 线程:" + Thread.currentThread().getName());
// return "service2 error";
// }
//
// @Override
// public User getUser() {
// return new User();
// }
//
// @Override
// public List<User> getUsers() {
// return null;
// }
//}
src/main/java/com/yingxin/springcloudconsumer/service/HelloService.java
View file @
67355d64
...
...
@@ -9,8 +9,8 @@ import java.util.List;
@FeignClient
(
name
=
"spring-cloud-server-HelloWorld"
,
fallback
=
HelloFallBack
.
class
)
public
interface
HelloService
{
@GetMapping
(
"hello"
)
String
hello
();
@GetMapping
(
"hello
1
"
)
String
hello
1
();
@GetMapping
(
"exampleforget"
)
User
getUser
();
...
...
src/main/java/com/yingxin/springcloudconsumer/service/HelloService2.java
0 → 100644
View file @
67355d64
//package com.yingxin.springcloudconsumer.service;
//
//import com.yingxin.springcloudconsumer.entity.User;
//import org.springframework.cloud.openfeign.FeignClient;
//import org.springframework.web.bind.annotation.GetMapping;
//
//import java.util.List;
//
//@FeignClient(name = "spring-cloud-server-HelloWorld", fallback = HelloFallBack2.class)
//public interface HelloService2 {
//
// @GetMapping("hello2")
// String hello2();
//
// @GetMapping("exampleforget")
// User getUser();
//
// @GetMapping("queryUserList")
// List<User> getUsers();
//}
src/main/java/com/yingxin/springcloudconsumer/service/TestService.java
0 → 100644
View file @
67355d64
//package com.yingxin.springcloudconsumer.service;
//
//import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
//import org.springframework.stereotype.Service;
//import org.springframework.web.client.RestTemplate;
//
//@Service
//public class TestService {
//
// private final RestTemplate restTemplate;
//
// public TestService(RestTemplate restTemplate) {
// this.restTemplate = restTemplate;
// }
//
// @HystrixCommand(fallbackMethod = "helloFallBack", threadPoolKey = "TestService")
// public String hello() {
// System.out.println("执行任务线程:" + Thread.currentThread().getName());
// return restTemplate.getForObject("http://spring-cloud-server-HelloWorld/hello1",String.class);
// }
//
// @HystrixCommand(fallbackMethod = "helloFallBack", threadPoolKey = "TestService2")
// public String hello2() {
// System.out.println("执行任务线程:" + Thread.currentThread().getName());
// return restTemplate.getForObject("http://spring-cloud-server-HelloWorld/hello2",String.class);
// }
//
// public String helloFallBack() {
// System.out.println("执行error任务线程:" + Thread.currentThread().getName());
// return "error";
// }
//}
src/main/resources/application.properties
View file @
67355d64
...
...
@@ -2,3 +2,6 @@ server.port=9000
spring.application.name
=
consumer
eureka.client.service-url.defaultZone
=
http://localhost:8761/eureka/
feign.hystrix.enabled
=
true
hystrix.threadpool.default.coreSize
=
5
hystrix.threadpool.HelloService.coreSize
=
10
#
hystrix.threadpool.HelloService2.coreSize
=
5
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment