Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
U
unififi-spring-cloud-guide
Project
Project
Details
Activity
Releases
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
lihaipeng
unififi-spring-cloud-guide
Commits
82be6264
Commit
82be6264
authored
May 15, 2020
by
lihaipeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
first commit
parent
587c66ba
Pipeline
#123
failed with stages
Changes
22
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
854 additions
and
1 deletion
+854
-1
.gitignore
.gitignore
+119
-0
README.md
README.md
+32
-1
pom.xml
pom.xml
+81
-0
pom.xml
unififi-demo-api/pom.xml
+29
-0
User.java
...i-demo-api/src/main/java/com/unififi/demo/model/User.java
+11
-0
UserService.java
...i/src/main/java/com/unififi/demo/service/UserService.java
+24
-0
pom.xml
unififi-demo1-service/pom.xml
+67
-0
Demo1Application.java
...vice/src/main/java/com/unififi/demo/Demo1Application.java
+34
-0
AppConfig.java
...vice/src/main/java/com/unififi/demo/config/AppConfig.java
+17
-0
Demo1Controller.java
...ain/java/com/unififi/demo/controller/Demo1Controller.java
+61
-0
application.yml
unififi-demo1-service/src/main/resources/application.yml
+78
-0
bootstrap.yml
unififi-demo1-service/src/main/resources/bootstrap.yml
+15
-0
pom.xml
unififi-demo2-service/pom.xml
+51
-0
Demo2Application.java
...vice/src/main/java/com/unififi/demo/Demo2Application.java
+15
-0
Demo2Controller.java
...ain/java/com/unififi/demo/controller/Demo2Controller.java
+41
-0
UserServiceImpl.java
...c/main/java/com/unififi/demo/service/UserServiceImpl.java
+40
-0
application.yml
unififi-demo2-service/src/main/resources/application.yml
+10
-0
bootstrap.yml
unififi-demo2-service/src/main/resources/bootstrap.yml
+15
-0
pom.xml
unififi-gateway/pom.xml
+57
-0
GatewayApplication.java
...src/main/java/com/unififi/gateway/GatewayApplication.java
+16
-0
application.yml
unififi-gateway/src/main/resources/application.yml
+35
-0
bootstrap.yml
unififi-gateway/src/main/resources/bootstrap.yml
+6
-0
No files found.
.gitignore
0 → 100644
View file @
82be6264
# Logs
logs
*.log
npm-debug.log*
**/logs
**/*.log
**/npm-debug.log*
# Runtime data
pids
*.pid
*.seed
**/pids
**/*.pid
**/*.seed
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
**/lib-cov
# Coverage directory used by tools like istanbul
coverage
**/coverage
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt
**/.grunt
# node-waf configuration
.lock-wscript
**/.lock-wscript
# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release
**/build/Release
# Dependency directory
node_modules
**/node_modules
# Bower Dependency directory
bower_components
**/bower_components
# Optional npm cache directory
.npm
**/.npm
# Optional REPL history
.node_repl_history
**/.node_repl_history
# Yarn lock
yarn.lock
*/yarn.lock
# npm lock
*-lock.json
**/*-lock.json
# package directory
dist
**/dist
# webpack compile dist directory
srv/public
**/srv/public
# vscode config
.vscode
**/.vscode
# project file
.project
**/.project
# maven compile target directory
target
**/target
# maven config directory
.mvn
**/.mvn
# eclipse settings directory
.settings
**/.settings
# eclipse classpath file
.classpath
**/.classpath
# eclipse factorypath file
.factorypath
**/.factorypath
# tern-project file
.tern-project
**/.tern-project
# mymetadata file
.mymetadata
**/.mymetadata
# apt_generated directory
.apt_generated
**/.apt_generated
# idea config file
*.iml
**/*.iml
.idea
**/.idea
.DS_Store
**/.DS_Store
README.md
View file @
82be6264
# unififi-spring-cloud-guide
# unififi-spring-cloud-guide
> 此项目可以已最简单的方式启动并运行,引导大家快速了解并学习”UNIFIFI微服务架构“相关的技术栈与实践方法。
>
> 基于Spring Cloud Version: Hoxton.SR4、Spring Cloud Alibaba Version: 2.2.1.RELEASE构建的微服务框架。整合了nacos、sentinel、gateway、openfeign、ribbon等组件。
>
> 持续更新
## 依赖环境
*
JDK 1.8+
*
Spring Cloud Version: Hoxton.SR4
*
Spring Boot Alibaba Version: 2.2.1.RELEASE
*
Spring Boot Version: 2.2.7.RELEASE
## 依赖中间件
*
Mysql 5.6
*
Nacos 1.2.1
*
Sentinel 1.7.2
*
RocketMQ 4.5.1
## 功能
*
服务注册与发现(Nacos Discovery)
*
统一配置管理(Nacos Config)
*
高可用防护(Sentinel)- 生成环境使用待研究
*
动态路由及失败重试(OpenFeign、Ribbon)
*
网关权限校验(Spring Cloud Gateway)
## 待办列表
*
支持mybatis-plus - 未完成
*
支持Redis - 未完成
*
支持RocketMQ - 未完成
*
统一记录进出日志 - 未完成
*
Dockerfile - 未完成
*
统一接口管理(Swagger-Yapi) - 未完成
pom.xml
0 → 100644
View file @
82be6264
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-parent
</artifactId>
<version>
2.2.7.RELEASE
</version>
<relativePath/>
</parent>
<groupId>
com.unififi
</groupId>
<artifactId>
unififi-spring-cloud-guide
</artifactId>
<version>
0.0.1
</version>
<name>
unififi-spring-cloud-guide
</name>
<packaging>
pom
</packaging>
<modules>
<module>
unififi-demo-api
</module>
<module>
unififi-demo1-service
</module>
<module>
unififi-demo2-service
</module>
<module>
unififi-gateway
</module>
</modules>
<properties>
<unififi-service.version>
0.0.1
</unififi-service.version>
<unififi-api.version>
0.0.1
</unififi-api.version>
<java.version>
1.8
</java.version>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<project.reporting.outputEncoding>
UTF-8
</project.reporting.outputEncoding>
<spring-cloud-alibaba.version>
2.2.1.RELEASE
</spring-cloud-alibaba.version>
<spring-cloud.version>
Hoxton.SR4
</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-dependencies
</artifactId>
<version>
${spring-cloud.version}
</version>
<type>
pom
</type>
<scope>
import
</scope>
</dependency>
<dependency>
<groupId>
com.alibaba.cloud
</groupId>
<artifactId>
spring-cloud-alibaba-dependencies
</artifactId>
<version>
${spring-cloud-alibaba.version}
</version>
<type>
pom
</type>
<scope>
import
</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-compiler-plugin
</artifactId>
<configuration>
<source>
1.8
</source>
<target>
1.8
</target>
<encoding>
UTF-8
</encoding>
</configuration>
</plugin>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
</plugin>
</plugins>
</build>
</project>
unififi-demo-api/pom.xml
0 → 100644
View file @
82be6264
<?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"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<artifactId>
unififi-spring-cloud-guide
</artifactId>
<groupId>
com.unififi
</groupId>
<version>
0.0.1
</version>
</parent>
<artifactId>
unififi-demo-api
</artifactId>
<version>
${unififi-api.version}
</version>
<dependencies>
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-openfeign
</artifactId>
<exclusions>
<exclusion>
<groupId>
io.github.openfeign
</groupId>
<artifactId>
feign-hystrix
</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
unififi-demo-api/src/main/java/com/unififi/demo/model/User.java
0 → 100644
View file @
82be6264
package
com
.
unififi
.
demo
.
model
;
import
lombok.Data
;
@Data
public
class
User
{
private
String
name
;
private
Integer
age
;
}
unififi-demo-api/src/main/java/com/unififi/demo/service/UserService.java
0 → 100644
View file @
82be6264
package
com
.
unififi
.
demo
.
service
;
import
com.unififi.demo.model.User
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
@FeignClient
(
value
=
"unififi-demo2-service"
)
public
interface
UserService
{
@RequestMapping
(
value
=
"/echo/{string}"
,
method
=
RequestMethod
.
GET
)
String
echo
(
@PathVariable
String
string
);
@GetMapping
(
"/user/list"
)
List
<
User
>
list
();
@GetMapping
(
"/user/get"
)
User
get
(
@RequestParam
(
"name"
)
String
name
);
@PostMapping
(
"/user/add"
)
Boolean
add
(
@RequestBody
User
user
);
}
unififi-demo1-service/pom.xml
0 → 100644
View file @
82be6264
<?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"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<artifactId>
unififi-spring-cloud-guide
</artifactId>
<groupId>
com.unififi
</groupId>
<version>
0.0.1
</version>
</parent>
<artifactId>
unififi-demo1-service
</artifactId>
<version>
${unififi-service.version}
</version>
<dependencies>
<dependency>
<groupId>
com.unififi
</groupId>
<artifactId>
unififi-demo-api
</artifactId>
<version>
${unififi-api.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-actuator
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba.cloud
</groupId>
<artifactId>
spring-cloud-starter-alibaba-nacos-discovery
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba.cloud
</groupId>
<artifactId>
spring-cloud-starter-alibaba-nacos-config
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-netflix-ribbon
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-openfeign
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba.cloud
</groupId>
<artifactId>
spring-cloud-starter-alibaba-sentinel
</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.springframework.retry</groupId>-->
<!-- <artifactId>spring-retry</artifactId>-->
<!-- </dependency>-->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
<exclusions>
<exclusion>
<groupId>
org.junit.vintage
</groupId>
<artifactId>
junit-vintage-engine
</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
unififi-demo1-service/src/main/java/com/unififi/demo/Demo1Application.java
0 → 100644
View file @
82be6264
package
com
.
unififi
.
demo
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
import
org.springframework.cloud.client.loadbalancer.LoadBalanced
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.web.client.RestTemplate
;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public
class
Demo1Application
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
Demo1Application
.
class
,
args
);
}
@LoadBalanced
@Bean
public
RestTemplate
restTemplate
()
{
return
new
RestTemplate
();
}
@Bean
public
RestTemplate
restTemplate1
()
{
return
new
RestTemplate
();
}
}
unififi-demo1-service/src/main/java/com/unififi/demo/config/AppConfig.java
0 → 100644
View file @
82be6264
package
com
.
unififi
.
demo
.
config
;
import
lombok.Getter
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.cloud.context.config.annotation.RefreshScope
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.stereotype.Component
;
@Component
@Configuration
@RefreshScope
@Getter
public
class
AppConfig
{
@Value
(
"${user.name}"
)
public
String
username
;
}
unififi-demo1-service/src/main/java/com/unififi/demo/controller/Demo1Controller.java
0 → 100644
View file @
82be6264
package
com
.
unififi
.
demo
.
controller
;
import
com.unififi.demo.config.AppConfig
;
import
com.unififi.demo.model.User
;
import
com.unififi.demo.service.UserService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.MediaType
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.client.RestTemplate
;
import
java.util.List
;
import
java.util.Random
;
@RestController
public
class
Demo1Controller
{
@Autowired
private
RestTemplate
restTemplate
;
@Autowired
private
UserService
userService
;
@Autowired
private
AppConfig
appConfig
;
@GetMapping
(
"/echo/{string}"
)
public
String
echo
(
@PathVariable
String
string
)
{
return
"unififi-demo1-service echo: "
+
string
;
}
@PostMapping
(
value
=
"/user/add"
,
produces
=
MediaType
.
APPLICATION_JSON_VALUE
,
consumes
=
MediaType
.
APPLICATION_JSON_VALUE
)
public
Boolean
userAdd
(
@RequestBody
User
user
)
{
return
userService
.
add
(
user
);
}
@GetMapping
(
"/user/get"
)
public
User
userGet
(
@RequestParam
(
"name"
)
String
name
)
{
return
userService
.
get
(
name
);
}
@GetMapping
(
value
=
"/user/list"
)
public
List
<
User
>
userList
()
{
return
restTemplate
.
getForObject
(
"http://unififi-demo2-service/user/list"
,
List
.
class
);
}
@GetMapping
(
"/config/username"
)
public
String
configUsername
()
{
return
appConfig
.
getUsername
();
}
@GetMapping
(
"/sleep"
)
public
String
sleep
()
{
try
{
long
ms
=
(
new
Random
().
nextInt
(
10
)
+
1
)
*
1000
;
Thread
.
sleep
(
ms
);
System
.
out
.
println
(
"sleep "
+
ms
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
return
"ok"
;
}
}
unififi-demo1-service/src/main/resources/application.yml
0 → 100644
View file @
82be6264
server
:
port
:
18081
management
:
endpoints
:
web
:
exposure
:
include
:
'
*'
spring
:
application
:
name
:
unififi-demo1-service
cloud
:
# loadbalancer:
# retry:
# enabled: true # 开启Spring Cloud的重试功能
sentinel
:
transport
:
dashboard
:
39.106.6.97:8849
# datasource:
# flow:
# nacos:
# server-addr: localhost:8848
# dataId: ${spring.application.name}-flow-rules
# groupId: SENTINEL_GROUP
# # 规则类型,取值见:
# # org.springframework.cloud.alibaba.sentinel.datasource.RuleType
# rule-type: flow
# degrade:
# nacos:
# server-addr: localhost:8848
# dataId: ${spring.application.name}-degrade-rules
# groupId: SENTINEL_GROUP
# rule-type: degrade
# system:
# nacos:
# server-addr: localhost:8848
# dataId: ${spring.application.name}-system-rules
# groupId: SENTINEL_GROUP
# rule-type: system
# authority:
# nacos:
# server-addr: localhost:8848
# dataId: ${spring.application.name}-authority-rules
# groupId: SENTINEL_GROUP
# rule-type: authority
# param-flow:
# nacos:
# server-addr: localhost:8848
# dataId: ${spring.application.name}-param-flow-rules
# groupId: SENTINEL_GROUP
# rule-type: param-flow
feign
:
sentinel
:
enabled
:
true
compression
:
request
:
enabled
:
true
mime-types
:
application/json
min-request-size
:
2048
response
:
enabled
:
true
useGzipDecoder
:
true
client
:
config
:
default
:
connectTimeout
:
2000
readTimeout
:
3000
loggerLevel
:
full
logging
:
level
:
com.unififi.demo.service.UserService
:
DEBUG
#ribbon:
# OkToRetryOnAllOperations: true
# MaxAutoRetries: 1 #重试次数
# MaxAutoRetriesNextServer: 0 #重试切换实例次数
# ConnectTimeout: 2000
# ReadTimeout: 3000
# retryableStatusCodes: 503,500 # 这里不配置其实也可以,不配置的时候,仅仅当请求服务实例报错的时候重试,配置了的时候,当请求服务实例出现这里指定的状态,也会重试
\ No newline at end of file
unififi-demo1-service/src/main/resources/bootstrap.yml
0 → 100644
View file @
82be6264
spring
:
cloud
:
nacos
:
username
:
nacos
password
:
nacos
server-addr
:
39.106.6.97:8848
config
:
shared-configs
:
-
data-id
:
unififi-common.properties
refresh
:
false
group
:
DEFAULT_GROUP
extension-configs
:
-
refresh
:
true
data-id
:
unififi-ext.properties
group
:
DEFAULT_GROUP
unififi-demo2-service/pom.xml
0 → 100644
View file @
82be6264
<?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"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<artifactId>
unififi-spring-cloud-guide
</artifactId>
<groupId>
com.unififi
</groupId>
<version>
0.0.1
</version>
</parent>
<artifactId>
unififi-demo2-service
</artifactId>
<version>
${unififi-service.version}
</version>
<dependencies>
<dependency>
<groupId>
com.unififi
</groupId>
<artifactId>
unififi-demo-api
</artifactId>
<version>
${unififi-api.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-actuator
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba.cloud
</groupId>
<artifactId>
spring-cloud-starter-alibaba-nacos-discovery
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba.cloud
</groupId>
<artifactId>
spring-cloud-starter-alibaba-nacos-config
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
<exclusions>
<exclusion>
<groupId>
org.junit.vintage
</groupId>
<artifactId>
junit-vintage-engine
</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
unififi-demo2-service/src/main/java/com/unififi/demo/Demo2Application.java
0 → 100644
View file @
82be6264
package
com
.
unififi
.
demo
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
@SpringBootApplication
@EnableDiscoveryClient
public
class
Demo2Application
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
Demo2Application
.
class
,
args
);
}
}
unififi-demo2-service/src/main/java/com/unififi/demo/controller/Demo2Controller.java
0 → 100644
View file @
82be6264
package
com
.
unififi
.
demo
.
controller
;
import
com.unififi.demo.model.User
;
import
com.unififi.demo.service.UserService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.MediaType
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
@RestController
public
class
Demo2Controller
{
@Autowired
private
UserService
userService
;
@RequestMapping
(
value
=
"/echo/{string}"
,
method
=
RequestMethod
.
GET
)
public
String
echo
(
@PathVariable
String
string
)
{
return
userService
.
echo
(
string
);
}
@PostMapping
(
value
=
"/user/add"
,
produces
=
MediaType
.
APPLICATION_JSON_VALUE
,
consumes
=
MediaType
.
APPLICATION_JSON_VALUE
)
public
Boolean
add
(
@RequestBody
User
user
)
{
return
userService
.
add
(
user
);
}
@GetMapping
(
"/user/list"
)
public
List
<
User
>
list
()
throws
InterruptedException
{
Thread
.
sleep
(
5000L
);
return
userService
.
list
();
}
@GetMapping
(
"/user/get"
)
public
User
get
(
@RequestParam
(
"name"
)
String
name
)
throws
InterruptedException
{
Thread
.
sleep
(
5000L
);
System
.
out
.
println
(
"user/get "
+
name
);
return
userService
.
get
(
name
);
}
}
unififi-demo2-service/src/main/java/com/unififi/demo/service/UserServiceImpl.java
0 → 100644
View file @
82be6264
package
com
.
unififi
.
demo
.
service
;
import
com.unififi.demo.model.User
;
import
lombok.extern.java.Log
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Log
@Service
public
class
UserServiceImpl
implements
UserService
{
private
static
final
List
<
User
>
USERS
=
new
ArrayList
<>();
@Override
public
String
echo
(
String
string
)
{
return
"unififi-demo2-service echo: "
+
string
;
}
@Override
public
List
<
User
>
list
()
{
log
.
info
(
"user list. size:"
+
USERS
.
size
());
return
USERS
;
}
@Override
public
User
get
(
String
name
)
{
return
USERS
.
stream
().
filter
(
u
->
name
.
equals
(
u
.
getName
())).
collect
(
Collectors
.
toList
()).
get
(
0
);
}
@Override
public
Boolean
add
(
User
user
)
{
log
.
info
(
"user add. tostring:"
+
user
.
toString
());
USERS
.
add
(
user
);
return
true
;
}
}
unififi-demo2-service/src/main/resources/application.yml
0 → 100644
View file @
82be6264
server
:
port
:
18080
management
:
endpoints
:
web
:
exposure
:
include
:
'
*'
spring
:
application
:
name
:
unififi-demo2-service
\ No newline at end of file
unififi-demo2-service/src/main/resources/bootstrap.yml
0 → 100644
View file @
82be6264
spring
:
cloud
:
nacos
:
username
:
nacos
password
:
nacos
server-addr
:
39.106.6.97:8848
config
:
shared-configs
:
-
data-id
:
unififi-common.properties
refresh
:
false
group
:
DEFAULT_GROUP
extension-configs
:
-
refresh
:
true
data-id
:
unififi-ext.properties
group
:
DEFAULT_GROUP
unififi-gateway/pom.xml
0 → 100644
View file @
82be6264
<?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>
unififi-spring-cloud-guide
</artifactId>
<groupId>
com.unififi
</groupId>
<version>
0.0.1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
unififi-gateway
</artifactId>
<version>
0.0.1
</version>
<dependencies>
<dependency>
<groupId>
com.unififi
</groupId>
<artifactId>
unififi-demo-api
</artifactId>
<version>
${unififi-api.version}
</version>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-actuator
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba.cloud
</groupId>
<artifactId>
spring-cloud-starter-alibaba-nacos-discovery
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba.cloud
</groupId>
<artifactId>
spring-cloud-starter-alibaba-nacos-config
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba.cloud
</groupId>
<artifactId>
spring-cloud-starter-alibaba-sentinel
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba.cloud
</groupId>
<artifactId>
spring-cloud-alibaba-sentinel-gateway
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-gateway
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba.csp
</groupId>
<artifactId>
sentinel-spring-cloud-gateway-adapter
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba.csp
</groupId>
<artifactId>
sentinel-core
</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.alibaba.csp</groupId>-->
<!-- <artifactId>sentinel-datasource-nacos</artifactId>-->
<!-- </dependency>-->
</dependencies>
</project>
unififi-gateway/src/main/java/com/unififi/gateway/GatewayApplication.java
0 → 100644
View file @
82be6264
package
com
.
unififi
.
gateway
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
@SpringBootApplication
@EnableFeignClients
public
class
GatewayApplication
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
GatewayApplication
.
class
,
args
);
}
}
unififi-gateway/src/main/resources/application.yml
0 → 100644
View file @
82be6264
server
:
port
:
18082
management
:
endpoints
:
web
:
exposure
:
include
:
'
*'
spring
:
application
:
name
:
unififi-gateway
cloud
:
sentinel
:
filter
:
enabled
:
true
transport
:
dashboard
:
39.106.6.97:8849
gateway
:
enabled
:
true
discovery
:
locator
:
lower-case-service-id
:
true
routes
:
-
id
:
unififi-demo1-service-route
uri
:
lb://unififi-demo1-service/
predicates
:
-
Path=/demo1/**
filters
:
-
StripPrefix=1
-
id
:
unififi-demo2-service-route
uri
:
lb://unififi-demo2-service/
predicates
:
-
Path=/demo2/**
filters
:
-
StripPrefix=1
\ No newline at end of file
unififi-gateway/src/main/resources/bootstrap.yml
0 → 100644
View file @
82be6264
spring
:
cloud
:
nacos
:
username
:
nacos
password
:
nacos
server-addr
:
39.106.6.97:8848
\ 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