猪齿鱼_01_环境搭建(一)_微服务支撑组件部署(源码形式)

本系列暂时不再更新,因为本人由于业务需要暂时没弄猪齿鱼了,还请大家关注猪齿鱼官方

  • 本文原本是记录自己搭建猪齿鱼微服务组件的过程,并提供给团队内部同事学习的一个资料,当时用的版本不是最新的,按照本文确实项目可以跑起来,大家可以按照本文熟悉猪齿鱼环境搭建过程,不过建议大家按照本文搭建好环境之后,还是要过一遍官方文档
  • choerodon官方文档 :本文搭建过程就是参考的官方文档->开发手册->后端开发手册,建议大家把官方文档完整的过一遍
  • choerodon社区:大家如果遇到什么问题可以来此社区提问,猪齿鱼的优秀团队会为你提供支持
  • choerodon_github:猪齿鱼官方开源的项目都在这里
  • choerodon敏捷开发管理系统的详细操作视频:关于猪齿鱼敏捷开发管理系统怎么使用(只是讲解业务上怎么操作),大家可以看看这里的视频
  • 还有,请大家关注一波 choerodon官方CSDN,有什么问题都可以给他提问,猪齿鱼官方优秀团队会为你解答,而且该账号也会持续更新猪齿鱼相关博客,大家关注也是为猪齿鱼的进步注入了一份动力

最后,本人由于部门业务需要,有一段时间没弄猪齿鱼了,好多也忘记了,而且本人只是一个经验不满两年的菜鸟,大家私信别喊我老师了(大家对我的认可,我也非常感动,我会继续加油的,大家也努力,直接喊我昵称或者其他的就好),受之有愧,未免误人子弟,所以大家操作完本文之后(或者直接只是简单看看本文),建议去看官方文档,学习一手官方的资料。

一、前言

进行业务开发时,推荐使用Docker形式来进行部署,请参见【猪齿鱼_01_环境搭建(二)_微服务支撑组件部署(Docker形式)

这一节我们来部署下猪齿鱼微服务的支撑组件,源码形式部署有利于我们查看源码,学习人家的长处。

二、环境准备

需要准备如下程序:

Git
JDK 1.8.0 及以上
maven 3.3 及以上
Docker for Windows
IDEA

1.Docker for Windows的安装

1.1 注意事项

  • dokcer for windows 的下载需要能科学上网
  • dokcer for windows 的安装需要确保系统是win10专业版、教育版。

1.2下载地址

docker for windows

1.3安装

执行可执行文件,一路默认安装即可。
安装dokcer的过程中,可能会重启2次电脑。
启动Docker,然后会提示启用Hyper-V需要重启。

1.4 验证

打开 git bash ,执行如下命令,会显示dokcer的版本号

docker -v

三、下载源码

1.下载源码

前往 git hub 下载对应版本的源码

序号项目名正式版本描述
1choerodon-starters0.6.0提供自动化配置
2eureka-server0.8.0注册中心,也可用register server
3config-server0.9.0配置中心
4manager service0.9.0 管理服务
5asgard service0.9.0 分布式事务,数据最终一致性
6iam service0.9.0IAM服务
7api gateway0.9.0 网关服务
8gateway helper0.9.0 网关helper
9oauth server0.9.0 认证服务

这里各项目的版本信息来自官方文档:

Choerodon服务列表

2.目录结构

建议的目录结构如下:
在这里插入图片描述

3.导入到idea中

(1)去掉版本号
参考2中建议的目录结构,下载源码之后解压,去掉解压后文件夹的版本号。如下图,需要将eureka-server-0.8.0 改为eureka-server。
在这里插入图片描述

(2)导入Idea中
然后在idea中依次选择 file -> open -> choerodon-framwork,即可将项目导入到idea中。

四、编译项目

1.导入maven项目

在上一步,将上述下载好的项目导入到Idea中之后,Maven还没有发现它。得将其导入进来才行。

点击下图中Add Maven Projects,然后选择对应项目的pom.xml,即可导入进来。
在这里插入图片描述

2.choerodon-starters

完成了上一步之后,会发现项目依赖会飘红,不用担心,下面,我们将一步一步来解决他们。

由于其他项目依赖了choerodon-starters,因此需要将choerodon-starters安装到本地maven仓库。

打开git bash命令行,切换到choerodon-starters项目根目录,执行如下命令:

mvn clean install

2.InitRoleCode

在InitRoleCode类中缺少开发者角色,而其他很多类中使用到了开发者角色,导致报错。而由于数据库中,也没有开发者角色,因此,我们直接在这个类中定义一个开发者角色,并指向管理员角色。(这是个骚操作,后面需要改成正确的)

在类中增加如下代码:

  /**
     * 全局层开发者
     */
    public static final String SITE_DEVELOPER = "role/site/default/administrator";
    public static String[] values () {
        return new String[] {
                SITE_ADMINISTRATOR,
                SITE_DEVELOPER,
                ORGANIZATION_ADMINISTRATOR,
                PROJECT_ADMINISTRATOR,
                DEPLOY_ADMINISTRATOR,
                PROJECT_MEMBER,
                PROJECT_OWNER
        };
    }

五、启动docker镜像

1.docker-compose.yaml

# docker-compose.yaml
version: "3"
services:
  zookeeper-0:
    container_name: zookeeper-0
    image: registry.cn-hangzhou.aliyuncs.com/choerodon-tools/zookeeper:3.4.10
    hostname: zookeeper-0
    environment:
    - ZK_REPLICAS=1
    - ZK_HEAP_SIZE=2G
    - ZK_TICK_TIME=2000
    - ZK_INIT_LIMIT=10
    - ZK_SYNC_LIMIT=5
    - ZK_MAX_CLIENT_CNXNS=60
    - ZK_SNAP_RETAIN_COUNT=3
    - ZK_PURGE_INTERVAL=1
    - ZK_LOG_LEVEL=INFO
    - ZK_CLIENT_PORT=2181
    - ZK_SERVER_PORT=2888
    - ZK_ELECTION_PORT=3888
    ports:
    - "2181:2181"
    - "2888:2888"
    - "3888:3888"
    command:
    - sh
    - -c
    - zkGenConfig.sh && exec zkServer.sh start-foreground
    volumes:
    - "./kafka/zk:/var/lib/zookeeper"
  kafka-0:
    container_name: kafka-0
    image: registry.cn-hangzhou.aliyuncs.com/choerodon-tools/kafka:1.0.0
    hostname: 127.0.0.1
    depends_on:
    - zookeeper-0
    links:
    - zookeeper-0
    ports:
      - "9092:9092"
    command:
    - sh
    - -c
    - "/opt/kafka/bin/kafka-server-start.sh config/server.properties \
           --override zookeeper.connect=zookeeper-0:2181 \
           --override log.dirs=/opt/kafka/data/logs \
           --override broker.id=0 "
    volumes:
    - "./kafka/kafka:/opt/kafka/data"
  mysql:
    container_name: mysql
    hostname: mysql
    image: registry.cn-hangzhou.aliyuncs.com/choerodon-tools/mysql:5.7.17
    ports:
    - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: root
    volumes:
    - ./mysql/mysql_data:/var/lib/mysql
    - ./mysql/mysql_db.cnf:/etc/mysql/conf.d/mysql_db.cnf

2.启动镜像

docker-compose.yaml 所在目录,打开 git bash 执行如下命令:

docker-compose up -d

注意
(1)为确保三个镜像都已启动,可以重复执行如上命令,直至出现下图所示日志:
在这里插入图片描述

(2)若是镜像无法启动,可以尝试重启docker.然后执行如上操作。
(3)如果还是不行,则需要删除掉docker中原有的镜像,再执行如上操作

3.相关命令

3.1 查看容器中正在运行的镜像

docker ps 或docker-compose ps

3.1 停止镜像

docker-compose down

六、数据库准备

这一步请参考官方文档:choerodon_后端开发手册—数据初始化

1.root登录数据库

以root用户登录到docker容器中正在运行的数据库中

docker exec -ti mysql mysql -u root -p

root用户的密码为 root

2.创建数据库并授权

在mysql命令行,执行以下命令,来创建用户、数据库,并进行数据库授权

CREATE USER IF NOT EXISTS 'choerodon'@'%' IDENTIFIED BY "123456";
CREATE DATABASE IF NOT EXISTS iam_service DEFAULT CHARACTER SET utf8;
CREATE DATABASE IF NOT EXISTS manager_service DEFAULT CHARACTER SET utf8;
CREATE DATABASE IF NOT EXISTS asgard_service DEFAULT CHARACTER SET utf8;
CREATE DATABASE IF NOT EXISTS notify_service DEFAULT CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON iam_service.* TO choerodon@'%';
GRANT ALL PRIVILEGES ON manager_service.* TO choerodon@'%';
GRANT ALL PRIVILEGES ON asgard_service.* TO choerodon@'%';
GRANT ALL PRIVILEGES ON notify_service.* TO choerodon@'%';
FLUSH PRIVILEGES;

3.数据库数据导入

3.1 数据库建表和数据

3.2 数据导入

iam_servicemanager_service数据导入 2 中创建的数据库中。

  • 在对应数据库上右键
  • 选择 “运行SQL文件”
  • 选择 3.1中导出的SQL文件,点击开始,即可

3.3 asgard-service数据库准备

(1) 确保 asgard-service 项目根目录下 init-local-database.sh 脚本文件内容为

#!/usr/bin/env bash
mkdir -p choerodon_temp
if [ ! -f choerodon_temp/choerodon-tool-liquibase.jar ]
then
    curl http://nexus.choerodon.com.cn/repository/choerodon-release/io/choerodon/choerodon-tool-liquibase/0.5.2.RELEASE/choerodon-tool-liquibase-0.5.2.RELEASE.jar -L  -o choerodon_temp/choerodon-tool-liquibase.jar
fi
java -Dspring.datasource.url="jdbc:mysql://localhost/asgard_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
 -Dspring.datasource.username=root \
 -Dspring.datasource.password=root \
 -Ddata.drop=false -Ddata.init=true \
 -Ddata.dir=src/main/resources \
 -jar choerodon_temp/choerodon-tool-liquibase.jar

(2)打开git bash,切换到 asgard-service 项目根目录,执行如下命令:

sh ./init-local-database.sh

七、启动服务

1.启动docker镜像

需要确保docker镜像已经全部启动,参考第五小节 五、启动docker镜像

2.按顺序启动服务

将每个服务中的数据库连接信息改成正确的

需要按顺序启动如下服务,请确保一个服务启动成功之后,再启动下一个服务。

2.1 注册中心

启动 eureka-server ( 或者是 register server)。

(1)点击 Edit Configurations ...
在这里插入图片描述

(2)点击“+”,选择Spring boot
在这里插入图片描述

(3)填写相关信息,点击 apply ,然后OK即可
在这里插入图片描述

(3)点击debug按钮,启动 eureka
在这里插入图片描述

(3)验证。
访问网址 http://localhost:8000/,出现下图,说明注册中心成功启动。
在这里插入图片描述

2.2 manager service

启动步骤同 2.1,启动成功后效果如下图。
在这里插入图片描述

2.3 config server

启动步骤同 2.1 ,启动成功后效果如下图。
在这里插入图片描述

2.4 asgard service

启动步骤同上

2.5 iam service

启动步骤同上

2.6 api gateway

启动步骤同上

2.7 gateway helper

启动步骤同上

2.8 oauth server

启动步骤同上

八、启动成功效果

1.注册中心

将以上8个服务运行起来之后,打开如下网址,会发现服务列表中有七个服务。

http://localhost:8000/

在这里插入图片描述

2.API接口列表

打开如下网址进行登录,登录账号密码为:admin/admin

http://localhost:8020/oauth

将跳转到如下页面,在此页面中会显示可用的API列表

http://localhost:8080/manager/swagger-ui.html

在这里插入图片描述

九、常见异常

1.root密码无效

1.1 异常信息

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

在这里插入图片描述

1.2 异常解决

直接将docker恢复出厂设置,然后重新执行上述操作即可。

2.kafka连接超时

2.1 异常信息

启动config server时,出现kafka连接超时异常。异常信息如下:

org.springframework.context.ApplicationContextException: Failed to start bean 'outputBindingLifecycle'; nested exception is org.springframework.cloud.stream.binder.BinderException: Cannot initialize binder:
    at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:176) ~[spring-context-4.3.18.RELEASE.jar:4.3.18.RELEASE]
    at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:50) ~[spring-context-4.3.18.RELEASE.jar:4.3.18.RELEASE]
    at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:346) ~[spring-context-4.3.18.RELEASE.jar:4.3.18.RELEASE]
    at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:149) ~[spring-context-4.3.18.RELEASE.jar:4.3.18.RELEASE]
    at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:112) ~[spring-context-4.3.18.RELEASE.jar:4.3.18.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:880) ~[spring-context-4.3.18.RELEASE.jar:4.3.18.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:144) ~[spring-boot-1.5.14.RELEASE.jar:1.5.14.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546) ~[spring-context-4.3.18.RELEASE.jar:4.3.18.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.5.14.RELEASE.jar:1.5.14.RELEASE]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) [spring-boot-1.5.14.RELEASE.jar:1.5.14.RELEASE]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) [spring-boot-1.5.14.RELEASE.jar:1.5.14.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-1.5.14.RELEASE.jar:1.5.14.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) [spring-boot-1.5.14.RELEASE.jar:1.5.14.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) [spring-boot-1.5.14.RELEASE.jar:1.5.14.RELEASE]
    at io.choerodon.gateway.helper.GatewayHelperApplication.main(GatewayHelperApplication.java:30) [classes/:na]
Caused by: org.springframework.cloud.stream.binder.BinderException: Cannot initialize binder:
    at org.springframework.cloud.stream.binder.kafka.provisioning.KafkaTopicProvisioner.getPartitionsForTopic(KafkaTopicProvisioner.java:271) ~[spring-cloud-stream-binder-kafka-core-1.2.1.RELEASE.jar:1.2.1.RELEASE]
    at org.springframework.cloud.stream.binder.kafka.KafkaMessageChannelBinder.createProducerMessageHandler(KafkaMessageChannelBinder.java:149) ~[spring-cloud-stream-binder-kafka-1.2.1.RELEASE.jar:1.2.1.RELEASE]
    at org.springframework.cloud.stream.binder.kafka.KafkaMessageChannelBinder.createProducerMessageHandler(KafkaMessageChannelBinder.java:88) ~[spring-cloud-stream-binder-kafka-1.2.1.RELEASE.jar:1.2.1.RELEASE]
    at org.springframework.cloud.stream.binder.AbstractMessageChannelBinder.doBindProducer(AbstractMessageChannelBinder.java:112) ~[spring-cloud-stream-1.2.2.RELEASE.jar:1.2.2.RELEASE]
    at org.springframework.cloud.stream.binder.AbstractMessageChannelBinder.doBindProducer(AbstractMessageChannelBinder.java:57) ~[spring-cloud-stream-1.2.2.RELEASE.jar:1.2.2.RELEASE]
    at org.springframework.cloud.stream.binder.AbstractBinder.bindProducer(AbstractBinder.java:152) ~[spring-cloud-stream-1.2.2.RELEASE.jar:1.2.2.RELEASE]
    at org.springframework.cloud.stream.binding.BindingService.bindProducer(BindingService.java:124) ~[spring-cloud-stream-1.2.2.RELEASE.jar:1.2.2.RELEASE]
    at org.springframework.cloud.stream.binding.BindableProxyFactory.bindOutputs(BindableProxyFactory.java:238) ~[spring-cloud-stream-1.2.2.RELEASE.jar:1.2.2.RELEASE]
    at org.springframework.cloud.stream.binding.OutputBindingLifecycle.start(OutputBindingLifecycle.java:57) ~[spring-cloud-stream-1.2.2.RELEASE.jar:1.2.2.RELEASE]
    at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:173) ~[spring-context-4.3.18.RELEASE.jar:4.3.18.RELEASE]
    ... 14 common frames omitted
Caused by: org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.

Disconnected from the target VM, address: '127.0.0.1:59328', transport: 'socket'

Process finished with exit code -1

2.2 异常原因

kafka没启动

2.3 异常解决

重复执行docker-compose up -d , 确保kafka启动即可。

3. choerodon.default.redirect.url有误

3.1 异常信息

启动 0.9.0的oauth-server时,出现如下异常信息

2018-09-26 14:58:53.932 ERROR [oauth-server,,,] 1780 --- [           main] o.s.boot.SpringApplication               : Application startup failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'customAuthenticationSuccessHandler': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: defaultTarget must start with '/' or with 'http(s)'
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:137) ~[spring-beans-4.3.18.RELEASE.jar:4.3.18.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:409) ~[spring-beans-4.3.18.RELEASE.jar:4.3.18.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1626) ~[spring-beans-4.3.18.RELEASE.jar:4.3.18.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) ~[spring-beans-4.3.18.RELEASE.jar:4.3.18.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.18.RELEASE.jar:4.3.18.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312) ~[spring-beans-4.3.18.RELEASE.jar:4.3.18.RELEASE]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.18.RELEASE.jar:4.3.18.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308) ~[spring-beans-4.3.18.RELEASE.jar:4.3.18.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.18.RELEASE.jar:4.3.18.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761) ~[spring-beans-4.3.18.RELEASE.jar:4.3.18.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) ~[spring-context-4.3.18.RELEASE.jar:4.3.18.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543) ~[spring-context-4.3.18.RELEASE.jar:4.3.18.RELEASE]
	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.5.14.RELEASE.jar:1.5.14.RELEASE]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) [spring-boot-1.5.14.RELEASE.jar:1.5.14.RELEASE]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) [spring-boot-1.5.14.RELEASE.jar:1.5.14.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-1.5.14.RELEASE.jar:1.5.14.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) [spring-boot-1.5.14.RELEASE.jar:1.5.14.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) [spring-boot-1.5.14.RELEASE.jar:1.5.14.RELEASE]
	at io.choerodon.oauth.OauthServerApplication.main(OauthServerApplication.java:30) [classes/:na]
Caused by: java.lang.IllegalArgumentException: defaultTarget must start with '/' or with 'http(s)'
	at org.springframework.util.Assert.isTrue(Assert.java:92) ~[spring-core-4.3.18.RELEASE.jar:4.3.18.RELEASE]
	at org.springframework.security.web.authentication.AbstractAuthenticationTargetUrlRequestHandler.setDefaultTargetUrl(AbstractAuthenticationTargetUrlRequestHandler.java:151) ~[spring-security-web-4.2.7.RELEASE.jar:4.2.7.RELEASE]
	at io.choerodon.oauth.infra.common.util.CustomAuthenticationSuccessHandler.init(CustomAuthenticationSuccessHandler.java:46) ~[classes/:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_161]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_161]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_161]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_161]
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:366) ~[spring-beans-4.3.18.RELEASE.jar:4.3.18.RELEASE]
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:311) ~[spring-beans-4.3.18.RELEASE.jar:4.3.18.RELEASE]
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:134) ~[spring-beans-4.3.18.RELEASE.jar:4.3.18.RELEASE]
	... 18 common frames omitted

Disconnected from the target VM, address: '127.0.0.1:56562', transport: 'socket'

Process finished with exit code 1

3.2 异常原因

配置文件中 choerodon.default.redirect.url 需要以"/"或者"http(s)"开头。错误的url如下:

  default:
    redirect:
      url: localhost:8080/manager/swagger-ui.html

3.3 异常解决

将配置文件中 choerodon.default.redirect.url 修改为下面的即可

  default:
    redirect:
      url: http://localhost:8080/manager/swagger-ui.html

八、参考资料

  1. 猪齿鱼官方文档
  2. 猪齿鱼GitHub
  3. 猪齿鱼后台登录
  4. 猪齿鱼视频
  5. HZero文档平台
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
Choerodon猪齿是一个开源多云技术平台,是基于开源技术Kubernetes,Istio,knative,Gitlab,Spring Cloud来实现本地和云端环境的集成,实现企业多云/混合云应用环境的一致性。平台通过提供精益敏捷、持续交付、容器环境、微服务、DevOps等能力来帮助组织团队来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。 Choerodon提供: 1、全面的工具链支持DevOps最佳实践,从计划,编程,构建,测试,发布和运营支持Scrum管理。 2、一套基于Spring Cloud的微服务应用程序框架,可帮助公司更快,更高效地进行微服务开发。 Choerodon的特征: 1、协作 -结合精益敏捷对业务需求、工作任务进行管理,打造高效协作生态。提供工作列表、故事地图、知识管理等协作工具,是贯穿开发、测试、部署的价值链,促进团队成员沟通交流,降低项目管理成本,提高沟通协作效率。 2、开发 -提供迭代规划和持续集成的流水线,帮助规范应用服务开发,实现快速迭代。以DevOps理念为指引,结合精益看板和Gitlab的分支管理,提供持续集成的流水线,缩短应用服务开发周期,同时提高团队效率,高效频繁向测试团队或者用户交付软件新版本。 3、测试 -敏捷化的持续测试工具,可以有效地提高软件测试的效率和质量。测试管理为用户提供敏捷化的持续测试工具,包括测试用例管理、测试循环、测试分析等,可以有效地提高软件测试的效率和质量,提高测试的灵活性和可视化水平,最终减少测试时间,让用户将主要精力放到软件功能构建上。 4、部署 -流水线式多环境一键部署。用户客户可以方便地使用部署功能管理各种使用Choerodon开发部署的应用服务,包括应用启停、状态监控,以及应用服务对应的版本控制、容器管理等,同时还包括应用服务涉及到的各种资源管理,例如网络、域名、数据库服务、缓存服务等。 5、运营 -汇集辅助项目进行管理的各种报表,多维度展示项目进展详情和问题。包含了敏捷报表(累积流量图、燃尽图等)、DevOps报表(代码提交图、代码质量图等)、测试报表。 6、微服务框架 - 基于汉得微服务技术平台HZERO的微服务架构,使用此开发框架,用户可以轻松构建应用服务。 另外,您可以查看Choerodon的屏幕快照以最直观地了解Choerodon,还可以访问Choerodon的网站。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值