-
Choerodon平台版本:0.6.0
-
运行环境(如localhost或k8s):localhost k8s都一样
-
遇到问题时的前置条件:服务注册到注册中心
-
问题描述:
请尽量详细的描述您遇到的问题,以便我们能更快速的提供解决办法。
如:用新的模板生成的项目注册到注册中心上去
-
修改的数据:
application.yml
bootstrap.yml
java
resources -
报错信息(请尽量使用代码块的形式展现):
Network:
api 403
iam_permission表数据为空 -
原因分析:
403,用了。0.7.0的微服务模板,微服务环境为:0.6.0
-
疑问:
怎么解决
新注册到注册中心的服务(eureka),到swagger报403错误,手动将 iam_permission里的 permission刷进去后,本地能用,部署到服务器的仍然是403,怀疑是
api-gateway、gateway-helper的配置文件里zuul没有新注册服务网管。注:原来研发没有升级之前没有此问题
服务端也调手动刷新的接口了吗?看看服务端的数据库iam_permission有没有数据
看下gateway-helper的日志,如果提示是找不到服务的路由,请在路由管理
页面添加你们服务的路由
建议您更新服务至最新的0.7,再配合对应0.7版本的应用模板使用;或是现有情况下使用0.6版本的应用模板
go-register-server,oauth-server和choerodon-front用0.7.1
因为我们这边要混合开发,所以用的是java版的注册中心,这个对升级会有影响吗?
访问一下你们接口,403时gateway-helper会打印日志,贴下该403请求的日志
我们线上是不使用eureka-server
的,我们的一些信息获取如版本,metrics-port
等信息是从go-register-server中获取,在eureka-server
是拿不到的,首先和版本相关的功能如swagger啥的会有影响,我们线上也并未使用eureka进行任何测试,还可能会有其他异常
那我们开发怎么办?
你好,能描述一下具体的场景吗?
我现在理解是这样的,你们线上用的是eureka 作为注册中心,然后关于权限还有路由都不会自动初始化到数据库对吧?
关于混合开发,是指本地连接线上环境开发吗?如果是这样,也可以在线上启动go-register-server,然后本地服务通过vpn,注册到线上地址,这样本地服务可以获取线上服务列表,线上也不会扫描到本地服务。
如果是本地开发服务,服务器上通过swagger扫描本地服务的注解时,请先确保服务器的pod能够连接到本地,而且本地防火墙是处于关闭状态的。
同时,本地开发一般是不需要权限的,可以将服务的@EnableChoerodonResourceServer
注解注释掉。
关于路由,模板里并没有提供注册路由的接口,需要自己在管理 -> 微服务管理 -> 路由管理 里面对路由进行配置,或者按照文档,添加对应的配置
http://choerodon.io/zh/docs/development-guide/backend/intergration/run/#服务注册