Browse Source

feat: 更新业务逻辑

master
xc-yjs 7 months ago
parent
commit
f21945a6b7
  1. 15
      nla-common/pom.xml
  2. 30
      nla-common/src/main/java/cn/nla/common/exception/SentinelBlockHandler.java
  3. 0
      nla-coupon-service/src/main/resources/application-local.yml
  4. 32
      nla-coupon-service/src/main/resources/bootstrap.yml
  5. 43
      nla-gateway/pom.xml
  6. 13
      nla-gateway/src/main/java/cn/nla/gateway/GatewayApplication.java
  7. 55
      nla-gateway/src/main/resources/application-local.yml
  8. 23
      nla-gateway/src/main/resources/bootstrap.yml
  9. 71
      nla-gateway/src/main/resources/logback.xml
  10. 0
      nla-order-service/src/main/resources/application-local.yml
  11. 23
      nla-order-service/src/main/resources/bootstrap.yml
  12. 0
      nla-product-service/src/main/resources/application-local.yml
  13. 23
      nla-product-service/src/main/resources/bootstrap.yml
  14. 0
      nla-user-service/src/main/resources/application-local.yml
  15. 23
      nla-user-service/src/main/resources/bootstrap.yml
  16. 1
      pom.xml

15
nla-common/pom.xml

@ -99,11 +99,26 @@
<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>
<!--Feign远程调用-->
<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>
<!-- Sentinel流控持久化nacos -->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
</dependency>
<!--alibaba微服务整合分布式事务,上面的方式不行 mvn 包冲突-->
<!-- <dependency>-->
<!-- <groupId>com.alibaba.cloud</groupId>-->

30
nla-common/src/main/java/cn/nla/common/exception/SentinelBlockHandler.java

@ -0,0 +1,30 @@
package cn.nla.common.exception;
import cn.nla.common.enums.BizCodeEnum;
import cn.nla.common.util.CommonUtil;
import cn.nla.common.util.JsonData;
import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.BlockExceptionHandler;
import com.alibaba.csp.sentinel.slots.block.BlockException;
import com.alibaba.csp.sentinel.slots.block.authority.AuthorityException;
import com.alibaba.csp.sentinel.slots.block.degrade.DegradeException;
import com.alibaba.csp.sentinel.slots.block.flow.FlowException;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Component
public class SentinelBlockHandler implements BlockExceptionHandler {
@Override
public void handle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, BlockException e) throws Exception {
JsonData jsonData = null;
if(e instanceof FlowException){
jsonData = JsonData.buildResult(BizCodeEnum.CONTROL_FLOW);
}else if(e instanceof DegradeException){
jsonData = JsonData.buildResult(BizCodeEnum.CONTROL_DEGRADE);
} else if(e instanceof AuthorityException){
jsonData = JsonData.buildResult(BizCodeEnum.CONTROL_AUTH);
}
httpServletResponse.setStatus(200);
CommonUtil.sendJsonMessage(httpServletResponse,jsonData);
}
}

0
nla-coupon-service/src/main/resources/application.yml → nla-coupon-service/src/main/resources/application-local.yml

32
nla-coupon-service/src/main/resources/bootstrap.yml

@ -0,0 +1,32 @@
spring:
application:
name: nla-coupon-service
cloud:
nacos:
discovery:
server-addr: 117.72.43.105:8848
config:
server-addr: 117.72.43.105:8848
file-extension: yml
sentinel:
transport:
dashboard: 192.168.30.130:8080
port: 9999
#流控规则持久化到nacos配置中心
datasource:
ds1:
nacos:
server-addr: 117.72.43.105:8848
data-id: ${spring.application.name}.json
group-id: DEFAULT_GROUP
data-type: json
rule-type: flow
profiles:
active: dev
#设置⽇志级别,ERROR/WARN/INFO/DEBUG,默认是INFO以上才显示
logging:
level:
root: INFO
# nacos日志问题,一致打印
com.alibaba.nacos.client.config.impl: WARN

43
nla-gateway/pom.xml

@ -0,0 +1,43 @@
<?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>nla-shop</artifactId>
<groupId>cn.nla</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>nla-gateway</artifactId>
<description>网关模块</description>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<!--添加nacos客户端-->
<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>
<!-- Sentinel流控持久化nacos -->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
</dependency>
</dependencies>
</project>

13
nla-gateway/src/main/java/cn/nla/gateway/GatewayApplication.java

@ -0,0 +1,13 @@
package cn.nla.gateway;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args);
}
}

55
nla-gateway/src/main/resources/application-local.yml

@ -0,0 +1,55 @@
server:
port: 8089
spring:
application:
name: nla-gateway
#注册中心地址
cloud:
nacos:
discovery:
server-addr: 117.72.43.105:8848
gateway:
routes:
- id: product-service
uri: lb://nla-product-service
order: 1
predicates:
- Path=/product/**
filters:
- StripPrefix=1
- id: user-service
uri: lb://nla-user-service
order: 1
predicates:
- Path=/user/**
filters:
- StripPrefix=1
- id: coupon-service
uri: lb://nla-coupon-service
order: 1
predicates:
- Path=/coupon/**
filters:
- StripPrefix=1
- id: order-service
uri: lb://nla-order-service
order: 1
predicates:
- Path=/order/**
filters:
- StripPrefix=1
#开启网关拉取nacos的服务
discovery:
locator:
enabled: true
#设置⽇志级别,ERROR/WARN/INFO/DEBUG,默认是INFO以上才显示
logging:
level:
root: INFO
# nacos日志问题,一致打印
com.alibaba.nacos.client.config.impl: WARN

23
nla-gateway/src/main/resources/bootstrap.yml

@ -0,0 +1,23 @@
spring:
application:
name: nla-gateway
cloud:
nacos:
discovery:
server-addr: 117.72.43.105:8848
config:
server-addr: 117.72.43.105:8848
file-extension: yml
sentinel:
transport:
dashboard: 192.168.30.130:8080
port: 9999
profiles:
active: dev
#设置⽇志级别,ERROR/WARN/INFO/DEBUG,默认是INFO以上才显示
logging:
level:
root: INFO
# nacos日志问题,一致打印
com.alibaba.nacos.client.config.impl: WARN

71
nla-gateway/src/main/resources/logback.xml

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 自定义配置: 日志存放路径 -->
<property name="log.path" value="./logs/nla-gateway"/>
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- 系统日志输出 -->
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/info.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>INFO</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/error.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>ERROR</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 自定义配置: 系统模块日志级别控制 -->
<logger name="cn.nla" level="info"/>
<!-- Spring日志级别控制 -->
<logger name="org.springframework" level="warn"/>
<logger name="io.lettuce.core.protocol" level="ERROR"/>
<!--自定义配置: mapper打印-->
<logger name="cn.nla.coupon.mapper" level="DEBUG"/>
<root level="info">
<appender-ref ref="console"/>
</root>
<!--系统操作日志-->
<root level="info">
<appender-ref ref="file_info"/>
<appender-ref ref="file_error"/>
</root>
</configuration>

0
nla-order-service/src/main/resources/application.yml → nla-order-service/src/main/resources/application-local.yml

23
nla-order-service/src/main/resources/bootstrap.yml

@ -0,0 +1,23 @@
spring:
application:
name: nla-order-service
cloud:
nacos:
discovery:
server-addr: 117.72.43.105:8848
config:
server-addr: 117.72.43.105:8848
file-extension: yml
sentinel:
transport:
dashboard: 192.168.30.130:8080
port: 9999
profiles:
active: dev
#设置⽇志级别,ERROR/WARN/INFO/DEBUG,默认是INFO以上才显示
logging:
level:
root: INFO
# nacos日志问题,一致打印
com.alibaba.nacos.client.config.impl: WARN

0
nla-product-service/src/main/resources/application.yml → nla-product-service/src/main/resources/application-local.yml

23
nla-product-service/src/main/resources/bootstrap.yml

@ -0,0 +1,23 @@
spring:
application:
name: nla-product-service
cloud:
nacos:
discovery:
server-addr: 117.72.43.105:8848
config:
server-addr: 117.72.43.105:8848
file-extension: yml
sentinel:
transport:
dashboard: 192.168.30.130:8080
port: 9999
profiles:
active: dev
#设置⽇志级别,ERROR/WARN/INFO/DEBUG,默认是INFO以上才显示
logging:
level:
root: INFO
# nacos日志问题,一致打印
com.alibaba.nacos.client.config.impl: WARN

0
nla-user-service/src/main/resources/application.yml → nla-user-service/src/main/resources/application-local.yml

23
nla-user-service/src/main/resources/bootstrap.yml

@ -0,0 +1,23 @@
spring:
application:
name: nla-user-service
cloud:
nacos:
discovery:
server-addr: 117.72.43.105:8848
config:
server-addr: 117.72.43.105:8848
file-extension: yml
sentinel:
transport:
dashboard: 192.168.30.130:8080
port: 9999
profiles:
active: dev
#设置⽇志级别,ERROR/WARN/INFO/DEBUG,默认是INFO以上才显示
logging:
level:
root: INFO
# nacos日志问题,一致打印
com.alibaba.nacos.client.config.impl: WARN

1
pom.xml

@ -13,6 +13,7 @@
<module>nla-coupon-service</module>
<module>nla-product-service</module>
<module>nla-order-service</module>
<module>nla-gateway</module>
</modules>
<packaging>pom</packaging>
<description>拉新营销平台</description>

Loading…
Cancel
Save