• 企业级微服务架构实战项目--xx优选2


    一 常用核心功能

    1.1 mp返回分页工具类

     1.2 返回统一的数据格式

     第2部分

     1.3 异常统一的处理

     系统在运行过程中如果出现了异常,默认会直接返回异常信息,比如500错误提示。但是我们想让异常结果也显示为统一的返回结果对象,并且统一处理系统的异常信息,那么需要进行统一异常处理。

    1.3.1 处理全局异常的定义

     1.3.2 自定义异常的处理

     2.全局中引用:

      1.4 配置swagger

    二 权限功能

    2.1 用户角色,菜单按钮

    菜单的递归遍历

    三 nacos注册与发现

    3.1 nacos

    Nacos支持所有主流的服务发现、配置和管理。

    配置

    四 nginx的反向代理技术

    4.1 nginx的反向代理

    1.代理架构图

     2.配置

     3.匹配原则

    当proxy_pass代理地址端口后有目录(包括 / 和/xxx),相当于是绝对根路径,则 nginx 不会把 location 中匹配的路径部分代理走;

    proxy_pass代理地址端口后无任何内容,可以理解为相对路径,则nginx会把location中匹配的路径部分代理走;

    http://localhost:9001/admin/acl/index/login =》

    http://localhost:8201/admin/acl/index/login

    http://localhost:9001/admin/sys/ware/findAllList  =》

    http://localhost:8201/admin/sys/ware/findAllList

    https://blog.csdn.net/u011066470/article/details/126275847

    五 OSS实现图片存储与上传下载

    5.1 oss的介绍

    阿里云对象存储oss是一个可靠的云存储服务。提供可靠的持久化服务。

    5.2  上传图片

    通过系统上传图片,调用连接阿里云oss存储的客户端,通过流的方式进行存储,返回存储地址,方便页面显示。

    1.接收系统上传的文件

    2.文件名的命名规则: 时间格式化+uuid+文件名

     3.信息保存时,将图片地址保存到数据表中

     数据表:

    六  es+kibana+rabitmq+nacos

    6.1 es简介

    es与mysql的联系与区别:

    2.es的type

     6.2 es的安装步骤

    七  营销模块活动

    7.1 java8的遍历

    1. public class Test {
    2. public static void main(String[] args) {
    3. List<String> dataList=new ArrayList<>();
    4. List<UserDomain> userDomainList=new ArrayList<>();
    5. UserDomain userDomain=new UserDomain();
    6. userDomain.setUserId(2334);
    7. userDomain.setUserName("ljf");
    8. userDomainList.add(userDomain);
    9. dataList=userDomainList.stream().map(UserDomain::getUserName).collect(Collectors.toList());
    10. dataList.forEach((x)->{System.out.println("x:"+x);});
    11. }
    12. }

    结果:

    7.2 营销管理活动接口

    1.管理接口,保存接口,添加@Transaction 事务处理

     7.3 优惠券管理活动接口

    1.保存优惠券规则,在方法上添加@Transaction 事务规则。

      7.4 秒杀场景的接口

      八  Gateway的使用

    8.1 gateway的使用

    gateway:网关,路由,断言,过滤器

    1.pom文件

    1. <!-- 服务注册 -->
    2. <dependency>
    3. <groupId>com.alibaba.cloud</groupId>
    4. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    5. </dependency>
    6. <dependency>
    7. <groupId>org.springframework.cloud</groupId>
    8. <artifactId>spring-cloud-starter-gateway</artifactId>
    9. </dependency>

    2.跨域

    1. @Configuration
    2. public class CorsConfig {
    3. @Bean
    4. public CorsWebFilter corsFilter() {
    5. CorsConfiguration config = new CorsConfiguration();
    6. config.addAllowedMethod("*");
    7. config.addAllowedOrigin("*");
    8. config.addAllowedHeader("*");
    9. UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());
    10. source.registerCorsConfiguration("/**", config);
    11. return new CorsWebFilter(source);
    12. }
    13. }

    目前我们已经在网关做了跨域处理,那么service服务就不需要再做跨域处理了,将之前在controller类上添加过@CrossOrigin标签的去掉,防止程序异常

    3.路由以及断言的配置

     4.前端请求,改为网关路径,这里不再使用nginx的反向代理

  • 相关阅读:
    (4)全局路径切换、换道策略
    React Hooks —— ref hooks
    大数据学习(3)-hive分区表与分桶表
    [解题报告] CSDN竞赛第11期
    如何使用Jekyll在GitHub Pages上搭建网站(个人博客)
    docker的数据卷、docker数据持久化
    国家开放大学 模拟试题 训练
    linux学习-用户组管理
    C++ VS2015安装教程,下载和安装(下载地址+图解+详细步骤)
    宏任务、微任务,怎么执行的
  • 原文地址:https://blog.csdn.net/u011066470/article/details/131123518