微服务框架

网关


Q: 网关处将auth.api-access-control设置为false无效。

A: webflux版本未对此配置做判断,所以导致无效。以下提供两种解决办法:

  1. 更新到KEMS v2.0.0
  2. strategy-name配置一个不存在的策略名,让其失效。

Q: 网关通过swagger聚合方式获取下游接口请求有时候不返回。

A: 网关使用lettuce连接池问题(会主动断开连接),改成jedis连接池

注册中心


Q:registry.instance.ipAddress失效问题。

A: koca的注册中心对eureka进行了配置兼容,需要将原生eureka的配置设置到registry节点下

​ 例如:registry.eureka.instance.ipAddress

配置中心


Q:获取配置失败问题。

A:koca config的配置,需要配置在bootstrap_xxx.yml中,不能放到application文件中,前者优先级会高于后者


Q:配置中心依赖问题。

A: 运维监控中心依赖pmi,如果要使用配置中心,则需要先打一个特定版本的pmi,等配置中心启用后,再重新打包pmi使其根据配置中心获取配置数据。

监控中心


Q: registry启用用户名密码认证,服务可以正常注册,但”监控运维平台—注册中心管理—实例管理“看不到实例信息。

A: koca向配置的"注册中心地址"发送获取所有实例的请求时,没做认证判断和设置,故获取为空。

KOCA v2.7.0已修复,可按需引用。

分布式事务


Q: Send init message exception : request timeout... connect failed!。

A: 修复分布式服务的监听地址(默认为10002),可能被占用。


Q: 分布式事务是否可以与本地事务混用。

A: 不能、分布式事务中禁用本地事务,否则分布式事务无法回滚。


Q: 分布式事务中新增的数据,去查询的时候查询不到。

A: 由于kems的分布式事务默认采用二阶段提交方式,分布式中要查询到修改数据,需要查询语句上也增加注解。

服务调用


Q: 使用Feign时,远程服务通过AuthContextHolder.getPrincipal()拿不到用户信息。

A: 由于koca仅把用户信息存储在线程上下文中,所以koca-client在设置header:trustedprincipal的时候,获取用户信息为空,就传递不下去。解决方法有以下两种:

  • 禁用hystrix;
  • hystrix的隔离策略设置为"信号量",默认为”线程“
    hystrix:
    command:
      default:
        execution:
          isolation:
            strategy: SEMAPHORE #信号量隔离
    

Q: 使用Feign时,报 could not acquire a semaphore for execution。

A: 增加semaphore.maxConcurrentRequests配置

hystrix:
  command:
    default:
      execution:
        isolation:
          strategy: SEMAPHORE
          thread:
            timeoutInMilliseconds:  120000
          semaphore:
            maxConcurrentRequests: 1000

业务组件

系统管理


Q:默认机构重复的问题

A:通过stream的distinct()函数进行去重。

日志管理


Q:登录日志表中的登录ip非用户真实ip

A:网关中的认证插件版本需要更新,使用koca-auth-webflux 2.7.1版本。

消息管理


Q:发送模板消息 params must be [a-zA-Z0-9] for verification sms

A: 发送给了短信服务的param中key对应的value取值可能为空字符串。


Q:发送短信消息时,模板消息该账号下找不到对应的模板

A:模板编号不合法,对应的渠道下没有申请对应模板。


Q:V2.2.0之前腾讯消息组件读取不到配置

A: 将tencent改为tencentyun, 2.3.0版本后修复。

附件管理


Q: 文件上传重复。

A: 启用如下插件。

<dependency>
    <groupId>szkingdom.jzyq.taoism.kems.plug</groupId>
    <artifactId>kems-plug-file-uniq</artifactId>
</dependency>

v3.2.0及以上版本:

<dependency>
    <groupId>com.kingengine.kems.plug</groupId>
    <artifactId>kems-plug-file-uniq</artifactId>
</dependency>

功能组件

文件


Q: 更新到v1.4.0,文件上传成功,重新下载后显示大小为0

A: 已修复,升级kems-sdk-file-corev1.4.2解决问题。

<dependency>
    <groupId>szkingdom.jzyq.taoism.kems.sdk</groupId>
    <artifactId>kems-sdk-file-core</artifactId>
    <version>1.4.2</version>
</dependency>

消息


Q: 短信提供商选择华为云通信,短信发送失败,但返回状态仍是成功。

A: 已修复,升级kems-sdk-mns-smsv1.4.2解决问题。

<dependency>
    <groupId>szkingdom.jzyq.taoism.kems.sdk</groupId>
    <artifactId>kems-sdk-mns-sms</artifactId>
    <version>1.4.2</version>
</dependency>

安全测评

Q:API成批分配。

A: 如果是网关,则重写WebfluxLoginParamterParser接口,并增加webflux异常捕获。

​ 如果不是网关,将POST请求改成GET请求 或者 增加网关过滤器对POST请求的RequestBody进行校验


Q:API功能级授权中断。

A: 网关中的认证插件版本需要更新,使用koca-auth-webflux 2.7.1版本,禁用POST之外请求


Q:JWT中的弱签名。

A: 禁用白名单功能,可能会被认为绕过JWT认证机制,针对系统参数获取,可以在前端项目本地配置。


Q:退出登录接口的弱签名。

A: 使用koca-auth-webflux 2.7.2版本


Q:配置中包含密码明文,提示安全漏洞的问题。

A: 请参考koca微服务框架-安全-配置项加密

http://koca.szkingdom.com/koca-base_v4.0.0/Development_Boot/Security/ConfigFile_Pwd_Encryption.html

容器化部署

Q:服务的ip和端口要如何分配。

A: 联系韩朋成,统一进行分配与管理。

Copyright © 2017-2023 深圳金证引擎科技有限公司 all right reserved,powered by Gitbook该文件最后修订时间: 2023-09-01 14:01:28

results matching ""

    No results matching ""