微服务部署
1.SpringBoot 微服务工程做成(过程略),可以参照http://123.57.164.21/?p=4053

- 这里把微服务和网关都打到一个工程里面,mircoservice是微服务,SringCloud是网关。

- ※注意修改工程Pom文件中的modules,把微服务模块添加进去。
2.微服务目录结构如下。
微服务的目录结构,用到了mybatis

注意mybatis Mapper.xml 文件,数据库有schema时的写法。

3.SpringBoot最重要的配置文件(application.yml)
- 微服务的配置文件[application.yml]
app.postgres-server: localhost server.port: 8001 spring.application.name: abc logging: file.path: logs level: com.ibm.xxxcloud: debug mybatis: configuration: map-underscore-to-camel-case: true mapper-locations: classpath:mapper/**/*.xml pagehelper: helper-dialect: postgresql params: countSql reasonable: true support-methods-arguments: true # 本地数据库连接的配置 spring: datasource: driver-class-name: org.postgresql.Driver password: 1qazxsw2 url: jdbc:postgresql://${app.postgres-server}:5432/abc_db username: postgres servlet: multipart: max-file-size: 10MB max-request-size: 10MB #--- #spring.config.activate.on-profile: docker #server.port: 80 #spring: # datasource: # url: jdbc:postgresql://postgres:5432/abc_db --- # OpenShift上的数据库连接配置,需要在部署时设定Secret信息(spring.profiles.active,POSTGRES_PASSWORD, POSTGRES_DB, POSTGRES_USER)。 spring.config.activate.on-profile: openshift server.port: 8080 spring: datasource: password: ${POSTGRES_PASSWORD} #非常重要!!!!,这里需要注意第二个postgresql是openshift pod 数据库节点的名称,在openshift中都是内网,可以通过节点名称内部连接。 url: jdbc:postgresql://postgresql:5432/${POSTGRES_DB} username: ${POSTGRES_USER} logging: file.path: logs level: com.ibm.xxxcloud.productapi.mapper: debug
4.网关的配置文件
- application.yaml
spring.application.name: gateway server.port: 8080 spring: cloud: gateway: default-filters: - DedupeResponseHeader=Access-Control-Allow-Credentials Access-Control-Allow-Origin globalcors: corsConfigurations: '[/**]': allowedOrigins: "*" allowedMethods: "*" allowedHeaders: "*" add-to-simple-url-handler-mapping: true #本地环境的路由 routes: - id: abc-api uri: http://localhost:8001 predicates: - Path=/abc/** filters: - RewritePath=/abc/(?<path>.*), /$\{path} logging: level: org.springframework.cloud.gateway: debug springdoc: api-docs: enabled: true version: 1.0.0 #--- #spring.config.activate.on-profile: docker # #spring: # cloud: # gateway: # routes: # - id: abc-api # uri: http://abc:8080 # predicates: # - Path=/abc/** # filters: # - RewritePath=/abc/(?<path>.*), /$\{path} --- spring.config.activate.on-profile: openshift spring: cloud: gateway: #openshift环境的路由 routes: - id: abc-api #非常重要!!!!,这里需要注意abc是openshift pod 微服务节点的名称,在openshift中都是内网,可以通过节点名称内部连接。 uri: http://abc:8080 predicates: - Path=/abc/** filters: - RewritePath=/abc/(?<path>.*), /$\{path}
- pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.ibm</groupId> <artifactId>abccloud</artifactId> <version>1.0.0</version> <packaging>pom</packaging> <properties> <java.version>11</java.version> <maven.compiler.target>11</maven.compiler.target> <maven.compiler.source>11</maven.compiler.source> </properties> <modules> <module>spring-cloud/gateway</module> <module>microservices/abc-api</module> </modules> </project>
- 5.OpenShift控制台的配置
注意下面Context Dir要填微服务文件夹的路径

注意名称修改

注意不要创建公共的路由,点击部署

设置好环境变量

注意查看微服务是否启动成功,特别是端口号,注意端口号是不是8080,因为按咱们的设置来说,应该是8080启动。


GateWay部署
过程大体跟微服务相同,下面是需要注意的地方
Context dir输入GateWay的文件夹路径


通过TLS Termination启用Https,有三种类型:edge、passthrough、reencrypt
- edge 访问route使用https协议,route到内部网络为非加密的,如未配置证书则使用默认证书。
- reencrypt 全部访问路径均是加密的
- passthrough 加密通信直接发送到目标,route不需提供TLS Termination。

配置LogDNA服务
1.打开 cluster 页面,向下滚动找到 Integrations > Logging, 点击 Connect

2.可以选择一个现有的 IBM Log Analysis 实例,如果没有则创建一个新的 Instance, (Lite Plan 可以免费使用 1 个月)


3. 使用 IBM Log Analysis
- Instance 创建成功后, 点击 Cluster 页面 Integrations Logging 下的 Launch 按钮打开 IBM Log Analysis 控制台.

- 在 Apps 下拉菜单中可以看到集群内所有 app,如下图所示,我们可以通过输入 app 的名字,比如
product
定位到我们的微服务:

- 此处我们勾选
product-composite
和product
这两个 app,点击 Apply 按钮

- 我们可以将当前的视图保存起来, 如下图所示,我保存了一个名为 jrecloud 的视图,用来查看与 jrecloud 相关的 app 日志。
