面试2024.1.20

简单介绍下你做的项目。

这个神领物流项目是一个前后端分离的项目,前段他有3个客户端(用户端为微信小程序、司机端和快递员端为app)一个管理端(pc),后端用的技术栈用的是SpringAlibabaCloud、数据库用的是MySQL、缓存型数据库用的是redis和MongoDB、数据库框架用的是mybatis-plus、我在这个项目中主要负责

  • 父工程、通用工程、统一消息代码、网关、基础微服务
  • (快递员web服务系统)、运费微服务、快递员微服务、订单微服务、轨迹微服务、
  • 调度微服务、支付微服务、路线微服务、物流信息微服务、运单微服务
  • (司机web服务系统)、司机微服务、服务范围微服务、短信微服务、
  • (后台web服务系统、用户web服务系统)、搜索微服务 用户微服务、

微服务项目团队如何协作?你们多少个小组开发?

团队如何协作:技术部门进行分工协作,不同的小组负责对应微服务的开发;
多少个开发小组:有5个小组协同进行开发,技术部人数为每个开发小组4-5人(前段开发、后端开发)有专门的测试人员进行测试,

项目中是如何进行持续集成的?提交git后如何自动进行构建?

持续集成:使用Jenkins进行持续集成
构建:使用Jenkins进行项目的构建(运维人员安装对应的测试、生成环境和对应的项目构建部署工具)

说说统一网关中是如何进行认证与鉴权工作的?在网关中如何自定义过滤器?

用户通过指定的url路径登录web系统:
1.NGINX将请求反向代理给Gateway服务
在这里插入图片描述
2.Gateway服务在yml文件的路由中配置拦截的路径 和 过滤器:
在这里插入图片描述
3.

  • 判断请求url在不在非鉴权白名单中不在则进行鉴权逻辑操作、
  • 从header中拿到token并校验、校验成功从中拿出用户级别信息类AuthUserInfoDTO
  • 在解析AuthUserInfoDTO中的信息拿到该用户对应的角色id
  • 鉴权(使用AuthUserInfoDTO中的信息拿到该用户对应的角色id和配置文件中的角色id进行判断)判断成功返回true鉴权成功则登录,返回false鉴权失败则报错提示在这里插入图片描述

网关中如何定义过滤器:
1.在路由配置文件bootstrap.yml的服务路由配置中,配置自定义的服务路由过滤器:
在这里插入图片描述2.自定义的服务路由过滤器继承抽象网关过滤器工厂类AbstractGatewayFilterFactory<Object>和实现自定义的鉴权过滤器接口AuthFilter,实现三个方法(传入应用参数方法、校验token方法、鉴权方法)
3.抽象网关过滤器工厂类AbstractGatewayFilterFactory<Object>的主要逻辑在通用过滤器TokenGatewayFilter中进行逻辑执行

项目中的用户权限是如何管理的?如何与权限管家对接?

用户权限使用的第三方权限服务:使用的是传智播客的开源项目(权限管家),我们在权限管家里面创建角色和给用户选择对应的角色。
Gateway网关服务与权限管家对接:引入权限管家依赖、yml文件配置权限管家服务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/337197.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ABC337 A-G

Toyota Programming Contest 2024#1&#xff08;AtCoder Beginner Contest 337&#xff09; - AtCoder 手速五题之后看FG&#xff0c;一看榜G过的比F多...两题都有思路然后先开写了F像是大模拟写了一堆bug&#xff0c;赛后对拍调bug调完疯狂re&#xff0c;发现是对数组双倍操作…

Django开发_14_后台管理及分页器

一、后台管理 &#xff08;一&#xff09;登录 http://127.0.0.1:8000/admin/ &#xff08;二&#xff09;创建超级用户 manage.py createsuperuser &#xff08;三&#xff09;注册模型 admin.py&#xff1a; models [model1&#xff0c;model2&#xff0c;model3 ]ad…

VScode新增设备实现无感接入(不需要输入密码)

VScode远程开发接入设备&#xff0c;默认是需要输入密码的&#xff0c;但是日常开发中刷新就需要重新输入密码&#xff0c;很烦人。配置ssh的RSA密钥后会&#xff0c;就可以直接系统级别验证接入&#xff0c;对开发人员来说验证步骤就透明了&#xff0c;实现无感接入&#xff0…

Object.prototype.toString.call个人理解

文章目录 这段代码的常见用处参考文献&#xff1a; 拆分理解1、Object.prototype.toString小问题参考文献&#xff1a; 2、call函数的作用参考文献 3、继续深入一些&#xff08;这部分内容是个人理解&#xff0c;没有明确文献支撑&#xff09; 这段代码的常见用处 Object.prot…

力扣645.错误的集合

一点一点地刷&#xff0c;慢慢攻克力扣&#xff01;&#xff01; 王子公主请看题 集合 s 包含从 1 到 n 的整数。不幸的是&#xff0c;因为数据错误&#xff0c;导致集合里面某一个数字复制了成了集合里面的另外一个数字的值&#xff0c;导致集合 丢失了一个数字 并且 有一个数…

el-upload中的before-upload不生效

我们先来看看官方对before-upload的定义 before-upload是在上传文件时触发&#xff0c;不是添加文件时触发&#xff0c;添加文件时触发 on-change。 所以如果我们要在添加文件时&#xff0c;对文件的大小和后缀等等进行判断&#xff0c;可以用 on-change 方法来实现。 checkSu…

​WordPress顶部管理工具栏怎么添加一二级自定义菜单?

默认情况下&#xff0c;WordPress前端和后台页面顶部都有一个“管理工具栏”&#xff0c;左侧一般就是站点名称、评论、新建&#xff0c;右侧就是您好&#xff0c;用户名称和头像。那么我们是否可以在这个管理工具栏中添加一些一二级自定义菜单呢&#xff1f; 其实&#xff0c…

史上最全EasyExcel

一、EasyExcel介绍 1、数据导入&#xff1a;减轻录入工作量 2、数据导出&#xff1a;统计信息归档 3、数据传输&#xff1a;异构系统之间数据传输 二、EasyExcel特点 Java领域解析、生成Excel比较有名的框架有Apache poi、jxl等。但他们都存在一个严重的问题就是非常的耗内…

64位ATT汇编语言as汇编ld链接,执行报错Segmentation fault

absCallAndPrintAbsAsLd.s里边的内容如下&#xff1a; .section .datastringToShow:.ascii "The abs of number is %d\n\0" .global _start .section .text _start:pushq %rbpmovq %rsp,%rbpmovq $-5,%rdicall absmovq $stringToShow,%rdimovq %rax,%rsicall printf…

EasyRecovery2024电脑数据恢复工具好不好用?

Ontrack是我们综述中的第一个产品&#xff0c;由于该软件的功效和广度&#xff0c;我认为它完全基于业务。有一个具有基本功能的免费版本和一系列付费版本&#xff0c;不仅可以恢复文件&#xff08;免费版和家庭版&#xff09;&#xff0c;还可以创建磁盘映像/从 CD 和 DVD 恢复…

集美大学“第15届蓝桥杯大赛(软件类)“校内选拔赛 H卯酉东海道

dijk spfa思想 然后你需要存一下每个点 * l种颜色&#xff0c;你开个数组存一下 st[i][j] 为到达i点且到达以后是j颜色的最小距离是否已经确定了 #include<bits/stdc.h> using namespace std; using ll long long; const int N 3e510; struct Edge{ll to,col,w;bool …

竞赛保研 机器视觉opencv答题卡识别系统

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 答题卡识别系统 - opencv python 图像识别 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f947;学长这里给一个题目综合评分(每项满分5分…

Chatopera 云服务支持大语言模型对话(LLM),定制您的聊天机器人

2024 年&#xff0c;Chatopera 云服务继续不断完善&#xff0c;为开发者提供最好的定制聊天机器人的工具。在过去的一年&#xff0c;用户们反映最多的建议是 Chatopera 云服务内置大语言模型的对话&#xff0c;今天 Chatopera 云服务完成了产品升级&#xff0c;满足了这个诉求。…

Python-setup打包命令

一、setup.py文件的书写 这个资料有很多&#xff0c;不多赘述&#xff0c;setup 函数常用的参数如下&#xff1a; 基础描述信息&#xff1a; name 包名称&#xff08;起一个响亮的名字&#xff09;version (-V) 包版本author 程序的作者author_email 程序的作者的邮箱地址mai…

Datawhale 强化学习笔记(三)基于策略梯度(policy-based)的算法

文章目录 参考基于价值函数的缺点策略梯度算法REINFORCE 算法策略梯度推导进阶策略函数的设计离散动作的策略函数连续动作的策略函数 参考 第九章 策略梯度 之前介绍的 DQN 算法属于基于价值(value-based)的算法&#xff0c;基于策略梯度的算法直接对策略本身进行优化。 将策…

Cortex-M3/M4内核中断及HAL库函数详解(1):中断相关寄存器

0 工具准备 Keil uVision5 Cortex M3权威指南&#xff08;中文&#xff09; Cortex M3与M4权威指南 stm32f407的HAL库工程 STM32F4xx中文参考手册 1 NVIC相关寄存器介绍 在Cortex-M3/M4内核上搭载了一个异常响应系统&#xff0c;支持为数众多的系统异常和外部中断。其中&#…

[AutoSar]BSW_OS 07 Autosar OS_时间保护

一、 目录 一、关键词平台说明一 时间保护的概念 关键词 嵌入式、C语言、autosar、OS、BSW 平台说明 项目ValueOSautosar OSautosar厂商vector &#xff0c;芯片厂商TI 英飞凌编程语言C&#xff0c;C编译器HighTec (GCC) >>>>>回到总目录<<<<<…

【设计模式】什么是外观模式并给出例子!

什么是外观模式&#xff1f; 外观模式是一种结构型设计模式&#xff0c;主要用于为复杂系统、库或框架提供一种简化的接口。这种模式通过定义一个包含单个方法的高级接口&#xff0c;来隐藏系统的复杂性&#xff0c;使得对外的API变得简洁并易于使用。 为什么要使用外观模式&a…

详解IPV6地址

华子目录 IPV6IPV4和IPV6的报头IPV6的地址组成IPV6地址写法IPV6地址分类单播地址多播地址IPV6下的组播MAC地址 协议ICMPV61.PMTU2.NDP3.前缀通告auto-config 配置静态RIPNGOSPFV3BGP4 解决IPV4和IPV6兼容问题 (共存问题)普通tunnel6to4 tunnel双栈 IPV6 特征&#xff08;升级点…

Lattice Diamond软件下载

Lattice Diamond软件官方下载方法 对于电子设计中的很多开发软件&#xff0c;下载渠道有很多&#xff0c;但是安装包的下载&#xff0c;任何时候在官网上都可以可靠的找到资源并进行下载&#xff0c;因此这里对Diamond软件的下载&#xff0c;介绍官网的下载方法。 1 Lattice官…