• 开发环境配置:
  • 数据环境准备:数据初始化
  • Demo程序已经开发完毕,详见
  • 启动 ,redis等容器

介绍

进入choerodon-todo-service目录下,运行以下命令启动本地项目

服务注册

TodoServiceApplication中添加@EnableEurekaClient 注解。

application.yml中添加关于Eureka的配置

  1. eureka:
  2. instance:
  3. preferIpAddress: true
  4. leaseRenewalIntervalInSeconds: 1
  5. leaseExpirationDurationInSeconds: 3
  6. client:
  7. serviceUrl:
  8. defaultZone: http://localhost:8000/eureka/

pom.xml中添加相关依赖

包含如下参数。

其中如果层级为组织层或项目层,则接口的mapping 中必须包含organization_idproject_id 作为变量。否则gateway-helper校验时不会识别该权限。

本地测试

由于Choerodon 包含的服务比较多和依赖的组件较多。一般不会在本地将所有的服务都启动,只会根据自己的需要启动对应的服务。建议在服务器运行一整套环境,本地做服务的单体测试,服务器上进行集成测试。

1. 如果不需要获取当前登录的用户信息,在TodoServiceApplication中不需要添加@EnableChoerodonResourceServer 注解。然后直接通过postman 或其他接口测试工具对服务提供的接口进行测试。

  • eureka-server
  • api-gateway
  • oauth-server3. 然后通过api-gateway 的输出日志,获取登录用户的 jwt_token。然后添加请求头。
  1. {
  2. "Jwt_Token": jwt_token
  3. }

如果需要启动其他模块,可以在上获取到对应服务的最新代码,克隆到本地,将./src/main/resources/application.yml 复制一份出来,修改里面的默认值。根据本地环境信息,修改数据库和redis连接。

这里提供一份docker-compose.yaml仅供参考,具体根据配置修改本地程序的配置。服务启动之前,请确保iam-servicemanager-service 的数据库已初始化完成。

  1. version: "3"
  2. services:
  3. mysql:
  4. container_name: mysql
  5. hostname: mysql
  6. image: registry.cn-hangzhou.aliyuncs.com/choerodon-tools/mysql:5.7.17
  7. ports:
  8. - "3306:3306"
  9. environment:
  10. MYSQL_ROOT_PASSWORD: root
  11. volumes:
  12. - ./mysql/mysql_data:/var/lib/mysql
  13. - ./mysql/mysql_db.cnf:/etc/mysql/conf.d/mysql_db.cnf
  14. - ./mysql/init_user.sql:/docker-entrypoint-initdb.d/init_user.sql
  15. expose:
  16. - "3306"
  17. networks:
  18. - "c7nNetwork"
  19. redis:
  20. container_name: redis
  21. hostname: redis
  22. image: redis:4.0.11
  23. ports:
  24. - "6379:6379"
  25. expose:
  26. - "6379"
  27. networks:
  28. - "c7nNetwork"
  29. container_name: eureka-server
  30. hostname: eureka-server
  31. image: registry.choerodon.com.cn/choerodon-framework/eureka-server:0.9.0
  32. ports:
  33. - "8000:8000"
  34. - EUREKA_CLIENT_SERVICEURL_DEFAULTZONE=http://eureka-server:8000/eureka/
  35. - EUREKA_CLIENT_REGISTER_WITH_EUREKA=false
  36. - EUREKA_CLIENT_FETCH_REGISTRY=false
  37. - LOGGING_LEVEL=WARN
  38. - JAVA_OPTS=-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Xms256M -Xmx512M
  39. expose:
  40. - "8000"
  41. networks:
  42. - "c7nNetwork"
  43. api-gateway:
  44. container_name: api-gateway
  45. hostname: api-gateway
  46. image: registry.cn-shanghai.aliyuncs.com/choerodon/api-gateway:0.17.1
  47. links:
  48. - eureka-server
  49. depends_on:
  50. - eureka-server
  51. ports:
  52. - "8080:8080"
  53. environment:
  54. - SPRING_CLOUD_CONFIG_ENABLED=false
  55. - HYSTRIX_STREAM_QUEUE_ENABLED=false
  56. - SPRING_CLOUD_BUS_ENABLED=false
  57. - SPRING_SLEUTH_STREAM_ENABLED=false
  58. - LOGGING_LEVEL=WARN
  59. - EUREKA_CLIENT_SERVICEURL_DEFAULTZONE=http://eureka-server:8000/eureka/
  60. - ZUUL_ADDHOSTHEADER=true
  61. - SPRING_APPLICATION_JSON={"zuul":{"routes":{"dev":{"path":"/todo/**", "serviceId":"choerodon-todo-service"}}}}
  62. - JAVA_OPTS=-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Xms512M -Xmx768M
  63. expose:
  64. - "8080"
  65. networks:
  66. - "c7nNetwork"
  67. iam-service:
  68. container_name: iam-service
  69. image: registry.cn-shanghai.aliyuncs.com/choerodon/iam-service:0.17.1
  70. depends_on:
  71. - eureka-server
  72. - mysql
  73. links:
  74. - eureka-server
  75. - mysql
  76. ports:
  77. - "8030:8030"
  78. environment:
  79. - SPRING_CLOUD_CONFIG_ENABLED=false
  80. - HYSTRIX_STREAM_QUEUE_ENABLED=false
  81. - SPRING_CLOUD_BUS_ENABLED=false
  82. - SPRING_SLEUTH_STREAM_ENABLED=false
  83. - LOGGING_LEVEL=WARN
  84. - EUREKA_CLIENT_SERVICEURL_DEFAULTZONE=http://eureka-server:8000/eureka/
  85. - SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/iam_service?useUnicode=true&characterEncoding=utf-8&useSSL=false
  86. - SPRING_DATASOURCE_USERNAME=choerodon
  87. - SPRING_DATASOURCE_PASSWORD=123456
  88. - CHOERODON_SAGA_CONSUMER_ENABLED=false
  89. - CHOERODON_SCHEDULE_CONSUMER_ENABLED=false
  90. - JAVA_OPTS=-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Xms512M -Xmx768M
  91. - "c7nNetwork"
  92. container_name: manager-service
  93. image: registry.cn-shanghai.aliyuncs.com/choerodon/manager-service:0.17.1
  94. depends_on:
  95. - eureka-server
  96. - mysql
  97. links:
  98. - eureka-server
  99. - mysql
  100. ports:
  101. - "8963:8963"
  102. environment:
  103. - SPRING_CLOUD_CONFIG_ENABLED=false
  104. - HYSTRIX_STREAM_QUEUE_ENABLED=false
  105. - SPRING_CLOUD_BUS_ENABLED=false
  106. - SPRING_SLEUTH_STREAM_ENABLED=false
  107. - LOGGING_LEVEL=WARN
  108. - EUREKA_CLIENT_SERVICEURL_DEFAULTZONE=http://eureka-server:8000/eureka/
  109. - SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/manager_service?useUnicode=true&characterEncoding=utf-8&useSSL=false
  110. - SPRING_DATASOURCE_USERNAME=choerodon
  111. - SPRING_DATASOURCE_PASSWORD=123456
  112. - CHOERODON_SWAGGER_CLIENT=client
  113. - CHOERODON_SWAGGER_OAUTH_URL=http://api-gateway:8080/oauth/oauth/authorize
  114. - CHOERODON_GATEWAY_DOMAIN=api-gateway:8080
  115. - JAVA_OPTS=-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Xms512M -Xmx768M
  116. networks:
  117. - "c7nNetwork"
  118. oauth-server:
  119. container_name: oauth-server
  120. image: registry.cn-shanghai.aliyuncs.com/choerodon/oauth-server:0.17.1
  121. depends_on:
  122. - eureka-server
  123. - redis
  124. - mysql
  125. links:
  126. - eureka-server
  127. - redis
  128. - mysql
  129. ports:
  130. - "8020:8020"
  131. environment:
  132. - SPRING_CLOUD_CONFIG_ENABLED=false
  133. - HYSTRIX_STREAM_QUEUE_ENABLED=false
  134. - SPRING_CLOUD_BUS_ENABLED=false
  135. - SPRING_SLEUTH_STREAM_ENABLED=false
  136. - LOGGING_LEVEL=WARN
  137. - EUREKA_CLIENT_SERVICEURL_DEFAULTZONE=http://eureka-server:8000/eureka/
  138. - SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/iam_service?useUnicode=true&characterEncoding=utf-8&useSSL=false
  139. - SPRING_DATASOURCE_USERNAME=choerodon
  140. - SPRING_DATASOURCE_PASSWORD=123456
  141. - SPRINT_REDIS_HOST=redis
  142. - SPRING_REDIS_PORT=6379
  143. - SPRING_REDIS_DATABASE=4
  144. - CHOERODON_OAUTH_LOGIN_SSL=false
  145. - CHOERODON_OAUTH_LOGIN_PATH=/login
  146. - CHOERODON_DEFAULT_REDIRECT_URL=http://localhost:9000
  147. - JAVA_OPTS=-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Xms512M -Xmx768M
  148. networks:
  149. - "c7nNetwork"
  150. networks:
  151. driver: bridge

有关Docker的更多信息请见此处

有关Docker-Compose的更多信息请见