Browse Source

Merge branch 'master' of luofaqiang/esb into master

luofaqiang 8 years ago
parent
commit
e0796cb431
50 changed files with 762 additions and 1267 deletions
  1. 105 54
      hos-arbiter/hos-arbiter.iml
  2. 3 34
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/HosArbiterApplication.java
  3. 2 26
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/configuration/ArbiterServerConfiguration.java
  4. 1 2
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/controllers/ArbiterServerController.java
  5. 1 2
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/controllers/BrokerServerController.java
  6. 1 2
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/controllers/EndpointController.java
  7. 19 0
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/controllers/ServiceFlowController.java
  8. 1 1
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/routers/ArbiterServerRouter.java
  9. 5 3
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/routers/EndpointEventRouter.java
  10. 1 1
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/routers/MycatRouter.java
  11. 2 2
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/routers/SerivceHealthRouter.java
  12. 3 3
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/routers/ServiceFlowEventRouter.java
  13. 2 2
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/routers/LinuxShellRouter.java
  14. 11 10
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/services/ArbiterServerService.java
  15. 2 2
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/services/BrokerServerService.java
  16. 22 6
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/services/EndpointService.java
  17. 0 37
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/services/HealthCheckService.java
  18. 0 162
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/services/LinuxShellService.java
  19. 0 86
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/services/MycatProxy.java
  20. 7 64
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/services/MycatService.java
  21. 147 29
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/services/ProxyService.java
  22. 14 48
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/services/ServiceFlowService.java
  23. 82 49
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/services/ShellService.java
  24. 9 5
      hos-arbiter/src/main/resources/application.yml
  25. 95 45
      hos-broker/hos-broker.iml
  26. 13 4
      hos-broker/src/main/java/com/yihu/hos/broker/HosBrokerApplication.java
  27. 2 2
      hos-broker/src/main/java/com/yihu/hos/broker/common/camelrouter/BrokerServerRouter.java
  28. 2 1
      hos-broker/src/main/java/com/yihu/hos/broker/configurations/SwaggerConfig.java
  29. 12 63
      hos-broker/src/main/java/com/yihu/hos/broker/daos/BrokerDao.java
  30. 0 187
      hos-broker/src/main/java/com/yihu/hos/broker/models/SystemServiceEndpoint.java
  31. 0 113
      hos-broker/src/main/java/com/yihu/hos/broker/models/SystemServiceFlow.java
  32. 0 75
      hos-broker/src/main/java/com/yihu/hos/broker/models/SystemServiceFlowClass.java
  33. 3 9
      hos-broker/src/main/java/com/yihu/hos/broker/services/BrokerServerService.java
  34. 7 7
      hos-broker/src/main/java/com/yihu/hos/broker/services/ServiceMonitorService.java
  35. 15 0
      hos-broker/src/main/java/com/yihu/hos/broker/services/camel/CamelStartBoot.java
  36. 39 39
      hos-broker/src/main/resources/application.yml
  37. 10 3
      hos-core/hos-core.iml
  38. 12 0
      hos-web-framework/src/main/java/com/yihu/hos/web/framework/constant/EndPointConstant.java
  39. 5 8
      hos-web-framework/src/main/java/com/yihu/hos/web/framework/constant/ServiceFlowConstant.java
  40. 1 1
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/models/ArbiterServer.java
  41. 1 1
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/models/BrokerServer.java
  42. 12 2
      hos-arbiter/src/main/java/com/yihu/hos/arbiter/models/Endpoint.java
  43. 36 0
      hos-web-framework/src/main/java/com/yihu/hos/web/framework/model/bo/ServiceFlow.java
  44. 1 1
      hos-web-framework/src/main/java/com/yihu/hos/web/framework/model/bo/ServiceShell.java
  45. 0 5
      pom.xml
  46. 0 20
      src/main/java/com/yihu/hos/ESBApplication.java
  47. 1 8
      src/main/java/com/yihu/hos/services/ServiceFlowEventService.java
  48. 31 18
      src/main/java/com/yihu/hos/services/ServiceMycatEventService.java
  49. 1 9
      src/main/java/com/yihu/hos/services/ServiceShellEventService.java
  50. 23 16
      src/main/resources/application.yml

+ 105 - 54
hos-arbiter/hos-arbiter.iml

@ -108,6 +108,53 @@
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty9:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty-common:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-configuration-processor:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-jdbc:8.5.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-juli:8.5.5" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:1.10.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.12.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-orm:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.5.5" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.3" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.3" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.3" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:1.9.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jms:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-messaging:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-server:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-http:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-util:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-io:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlet:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-security:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlets:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-continuation:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-client:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-jmx:9.3.11.v20160721" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.activemq:activemq-core:5.7.0" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.21" level="project" />
    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-jms_1.1_spec:1.1.1" level="project" />
@ -118,30 +165,30 @@
    <orderEntry type="library" name="Maven: org.fusesource.hawtdispatch:hawtdispatch:1.11" level="project" />
    <orderEntry type="library" name="Maven: org.fusesource.hawtbuf:hawtbuf:1.9" level="project" />
    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-j2ee-management_1.1_spec:1.0.1" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: commons-net:commons-net:3.1" level="project" />
    <orderEntry type="library" name="Maven: org.jasypt:jasypt:1.9.0" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-configuration-processor:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-configuration-processor:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.json:json:20140107" level="project" />
    <orderEntry type="module" module-name="hos-web-framework" />
    <orderEntry type="library" name="Maven: eu.medsea.mimeutil:mime-util:2.1.3" level="project" />
    <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.17" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.9" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-jdbc:8.5.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-juli:8.5.5" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-jdbc:8.5.6" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-juli:8.5.6" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.0.11.Final" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final" level="project" />
@ -153,43 +200,46 @@
    <orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.0.1.Final" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-entitymanager:5.0.11.Final" level="project" />
    <orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:1.10.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.12.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-orm:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.5.5" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:1.10.5.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.12.5.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-orm:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.6" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.6" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.5.6" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.2.4.Final" level="project" />
    <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.3" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.3" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.3" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.3" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.4" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.4" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.4" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver-core:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:bson:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:1.9.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:1.9.5.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:mongo-java-driver:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: mysql:mysql-connector-java:5.1.37" level="project" />
    <orderEntry type="library" name="Maven: com.oracle:ojdbc6:11.2.0.3.0" level="project" />
    <orderEntry type="module" module-name="hos-core" />
    <orderEntry type="library" name="Maven: net.lingala.zip4j:zip4j:1.3.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.0" level="project" />
    <orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3.1" level="project" />
    <orderEntry type="library" name="Maven: commons-io:commons-io:2.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.3.2" level="project" />
    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.2" level="project" />
    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.3" level="project" />
    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
    <orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:3.4.1" level="project" />
    <orderEntry type="library" name="Maven: com.squareup.okio:okio:1.9.0" level="project" />
    <orderEntry type="library" name="Maven: com.belerweb:pinyin4j:2.5.0" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.8.4" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.8.4" level="project" />
    <orderEntry type="library" name="Maven: org.codehaus.woodstox:stax2-api:3.1.4" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.woodstox:woodstox-core:5.0.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.6.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.6.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.2" level="project" />
@ -207,8 +257,8 @@
    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: com.yihu.core:ehr-dbhelper:1.1.9" level="project" />
    <orderEntry type="library" name="Maven: com.yihu.core:html2image:0.9" level="project" />
    <orderEntry type="library" name="Maven: org.zbus:zbus:7.2.0" level="project" />
    <orderEntry type="library" name="Maven: io.netty:netty-all:4.0.33.Final" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-core:2.18.0" level="project" />
    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.2.11" level="project" />
    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.2.11" level="project" />
@ -218,14 +268,13 @@
    <orderEntry type="library" name="Maven: org.apache.camel:camel-http-common:2.18.0" level="project" />
    <orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jms:2.18.0" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jms:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-messaging:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jms:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-messaging:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-cxf:2.18.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-cxf-transport:2.18.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-soap:3.1.7" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-core:3.1.7" level="project" />
    <orderEntry type="library" name="Maven: org.codehaus.woodstox:woodstox-core-asl:4.4.1" level="project" />
    <orderEntry type="library" name="Maven: org.codehaus.woodstox:stax2-api:3.1.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.ws.xmlschema:xmlschema-core:2.2.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-wsdl:3.1.7" level="project" />
    <orderEntry type="library" name="Maven: wsdl4j:wsdl4j:1.6.3" level="project" />
@ -259,23 +308,25 @@
    <orderEntry type="library" name="Maven: org.apache.camel:camel-stream:2.18.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty:2.18.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty9:2.18.0" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-server:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-http:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-util:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-io:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlet:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-security:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlets:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-continuation:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-client:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-jmx:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-server:9.3.14.v20161028" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-http:9.3.14.v20161028" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-util:9.3.14.v20161028" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-io:9.3.14.v20161028" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlet:9.3.14.v20161028" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-security:9.3.14.v20161028" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlets:9.3.14.v20161028" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-continuation:9.3.14.v20161028" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-client:9.3.14.v20161028" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-jmx:9.3.14.v20161028" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty-common:2.18.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-mongodb:2.18.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jackson:2.18.0" level="project" />
    <orderEntry type="library" name="Maven: xom:xom:1.2.5" level="project" />
    <orderEntry type="library" name="Maven: xerces:xercesImpl:2.8.0" level="project" />
    <orderEntry type="library" name="Maven: xalan:xalan:2.7.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.2.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.2.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.1" level="project" />
@ -286,6 +337,6 @@
    <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.3.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.3.4.RELEASE" level="project" />
  </component>
</module>

+ 3 - 34
hos-arbiter/src/main/java/com/yihu/hos/arbiter/HosArbiterApplication.java

@ -1,9 +1,6 @@
package com.yihu.hos.arbiter;
import com.yihu.hos.arbiter.configuration.ArbiterServerConfiguration;
import com.yihu.hos.arbiter.services.MycatProxy;
import com.yihu.hos.arbiter.services.ProxyService;
import com.yihu.hos.arbiter.services.ShellService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
@ -14,47 +11,19 @@ import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfigurat
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
public class HosArbiterApplication implements CommandLineRunner {
    private ArbiterServerConfiguration configuration;
    private ProxyService proxyService;
    private ShellService shellService;
    private MycatProxy mycatProxy;
    public static void main(String[] args) {
        SpringApplication.run(HosArbiterApplication.class, args);
    }
    @Override
    public void run(String... strings) throws Exception {
//        if (configuration.isCentral()) {
//            MqServerConfig config = new MqServerConfig();
//            config.serverPort = configuration.getCentralPort();
//            config.storePath = configuration.getCentralStore();
//            final MqServer server = new MqServer(config);
//            server.start();
//        }
        proxyService.start();
        shellService.start();
        mycatProxy.start();;
    }
    @Autowired
    public void setConfiguration(ArbiterServerConfiguration configuration) {
        this.configuration = configuration;
    }
    @Autowired
    public void setProxyService(ProxyService proxyService) {
        this.proxyService = proxyService;
    }
    @Autowired
    public void setShellService(ShellService shellService) {
        this.shellService = shellService;
    }
    @Autowired
    public void setMycatProxy(MycatProxy mycatProxy) {
        this.mycatProxy = mycatProxy;
    @Override
    public void run(String... strings) throws Exception {
        proxyService.start();
    }
}

+ 2 - 26
hos-arbiter/src/main/java/com/yihu/hos/arbiter/configuration/ArbiterServerConfiguration.java

@ -1,6 +1,5 @@
package com.yihu.hos.arbiter.configuration;
import com.yihu.hos.core.datatype.StringUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -16,10 +15,6 @@ import java.io.IOException;
public class ArbiterServerConfiguration {
    @Value("${arbiter.central.url}")
    private String centralUrl;
    @Value("${arbiter.central.port}")
    private Integer centralPort;
    @Value("${arbiter.central.store}")
    private String centralStore;
    @Value("${arbiter.terminal.url}")
    private String terminalUrl;
    @Value("${arbiter.tenant.name}")
@ -45,26 +40,11 @@ public class ArbiterServerConfiguration {
        return tenant;
    }
    public boolean isCentral() {
        return StringUtil.isEmpty(centralUrl);
    }
    public Integer getCentralPort() {
        return centralPort;
    }
    public String getCentralStore() {
        return centralStore;
    }
    @Bean
    public ZbusBroker getZbusBroker() {
        try {
            if (isCentral()){
                zbusBroker = new ZbusBroker(this.terminalUrl);
            }else {
                zbusBroker = new ZbusBroker(this.centralUrl);
            }
            zbusBroker = new ZbusBroker(this.centralUrl);
            return zbusBroker;
        } catch (IOException e) {
            e.printStackTrace();
@ -80,8 +60,4 @@ public class ArbiterServerConfiguration {
        super.finalize();
    }
//    public boolean isTerminal() {
//        return !isCentral();
//    }
}

+ 1 - 2
hos-arbiter/src/main/java/com/yihu/hos/arbiter/controllers/ArbiterServerController.java

@ -1,7 +1,7 @@
package com.yihu.hos.arbiter.controllers;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.hos.arbiter.models.ArbiterServer;
import com.yihu.hos.web.framework.model.bo.ArbiterServer;
import com.yihu.hos.arbiter.services.ArbiterServerService;
import com.yihu.hos.core.datatype.DateUtil;
import org.springframework.beans.factory.annotation.Autowired;
@ -10,7 +10,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.IOException;
import java.util.Date;
/**
 * @author Airhead

+ 1 - 2
hos-arbiter/src/main/java/com/yihu/hos/arbiter/controllers/BrokerServerController.java

@ -2,7 +2,7 @@ package com.yihu.hos.arbiter.controllers;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.hos.arbiter.models.BrokerServer;
import com.yihu.hos.web.framework.model.bo.BrokerServer;
import com.yihu.hos.arbiter.services.BrokerServerService;
import com.yihu.hos.core.datatype.DateUtil;
import org.springframework.beans.factory.annotation.Autowired;
@ -11,7 +11,6 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.io.IOException;
import java.util.Date;
/**
 * @created Airhead 2016/7/27.

+ 1 - 2
hos-arbiter/src/main/java/com/yihu/hos/arbiter/controllers/EndpointController.java

@ -1,7 +1,7 @@
package com.yihu.hos.arbiter.controllers;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.hos.arbiter.models.Endpoint;
import com.yihu.hos.web.framework.model.bo.Endpoint;
import com.yihu.hos.arbiter.services.EndpointService;
import com.yihu.hos.core.datatype.DateUtil;
import org.springframework.beans.factory.annotation.Autowired;
@ -10,7 +10,6 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.io.IOException;
import java.util.Date;
/**
 * @created Airhead 2016/7/27.

+ 19 - 0
hos-arbiter/src/main/java/com/yihu/hos/arbiter/controllers/ServiceFlowController.java

@ -0,0 +1,19 @@
package com.yihu.hos.arbiter.controllers;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
/**
 * @author Airhead
 * @since 2017/2/6.
 */
@RestController
@RequestMapping("/serviceFlow")
public class ServiceFlowController {
    @RequestMapping(method = RequestMethod.GET)
    public String get() {
        return "{}";
    }
}

+ 1 - 1
hos-arbiter/src/main/java/com/yihu/hos/arbiter/routers/ArbiterServerRouter.java

@ -12,6 +12,6 @@ public class ArbiterServerRouter  extends RouteBuilder {
    @Override
    public void configure() throws Exception {
        from("direct:arbiterServer")
                .to("bean:arbiterServerService?method=start");
                .to("bean:arbiterServerService?method=serverServiceFlow");
    }
}

+ 5 - 3
hos-arbiter/src/main/java/com/yihu/hos/arbiter/routers/EndpointEventRouter.java

@ -1,6 +1,7 @@
package com.yihu.hos.arbiter.routers;
import com.yihu.hos.arbiter.configuration.ActivemqConfiguration;
import com.yihu.hos.web.framework.constant.EndPointConstant;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.jms.JmsComponent;
@ -17,14 +18,15 @@ import javax.jms.ConnectionFactory;
public class EndpointEventRouter extends RouteBuilder {
    @Autowired
    private ActivemqConfiguration activemqConfiguration;
    @Override
    public void configure() throws Exception {
        ModelCamelContext context = this.getContext();
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
                activemqConfiguration.getUser(), activemqConfiguration.getPassword(),activemqConfiguration.getBrokerURL());
                activemqConfiguration.getUser(), activemqConfiguration.getPassword(), activemqConfiguration.getBrokerURL());
        // Note we can explicit name the component
        context.addComponent("endpoint.event", JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
        from("endpoint.event:queue:configuration.endpoint")
        context.addComponent(EndPointConstant.CAMEL_COMPONENT, JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
        from(EndPointConstant.CAMEL_ENDPOINT)
                .to("bean:endpointService?method=addBrokerServer"); //TODO:这边可以做Message Filter,减化trigger逻辑
    }
}

+ 1 - 1
hos-arbiter/src/main/java/com/yihu/hos/arbiter/routers/MycatRouter.java

@ -32,7 +32,7 @@ public class MycatRouter extends RouteBuilder {
        context.addComponent("service.mycat.event", JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
        from(ServiceFlowConstant.MYCAT_EVENT_SERVICE)
                .choice()
                .when(header("tenant").isNotNull()).to("bean:mycatService?method=proxy")
                .when(header("tenant").isNotNull()).to("bean:mycatService?method=handleServiceFlow")
                .when(header("event").isEqualTo(ServiceFlowConstant.EXECUTE_MYCAT)).to("bean:mycatService?method=updateMycat")
                .endChoice();
    }

+ 2 - 2
hos-arbiter/src/main/java/com/yihu/hos/arbiter/routers/SerivceHealthRouter.java

@ -10,7 +10,7 @@ import org.springframework.stereotype.Component;
public class SerivceHealthRouter extends RouteBuilder {
    @Override
    public void configure() throws Exception {
        from("timer:brokerServerOnline?period={{arbiter.timer.period}}")
                .to("bean:healthCheckService?method=check");
        from("timer:healthCheck?period={{arbiter.timer.period}}")
                .to("bean:endpointService?method=check");
    }
}

+ 3 - 3
hos-arbiter/src/main/java/com/yihu/hos/arbiter/routers/ServiceFlowEventRouter.java

@ -25,10 +25,10 @@ public class ServiceFlowEventRouter extends RouteBuilder {
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
                activemqConfiguration.getUser(), activemqConfiguration.getPassword(), activemqConfiguration.getBrokerURL());
        // Note we can explicit name the component
        context.addComponent("service.flow.event", JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
        from(ServiceFlowConstant.FLOW_EVENT_ENDPOINT)
        context.addComponent(ServiceFlowConstant.CAMEL_COMPONENT, JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
        from(ServiceFlowConstant.CAMEL_ENDPOINT)
                .choice()
//                .when(header("tenant").isNotNull()).to("bean:serviceFlowService?method=proxy")
//                .when(header("tenant").isNotNull()).to("bean:serviceFlowService?method=handleServiceFlow")
                .when(header("event").isEqualTo(ServiceFlowConstant.SERVICE_FLOW_STARTED)).to("bean:serviceFlowService?method=serviceFlowStarted")
                .when(header("event").isEqualTo(ServiceFlowConstant.SERVICE_FLOW_STOPPED)).to("bean:serviceFlowService?method=serviceFlowStopped")
                .when(header("event").isEqualTo(ServiceFlowConstant.SERVICE_FLOW_ADDED)).to("bean:serviceFlowService?method=serviceFlowAdd")

+ 2 - 2
hos-arbiter/src/main/java/com/yihu/hos/arbiter/routers/LinuxShellRouter.java

@ -18,7 +18,7 @@ import javax.jms.ConnectionFactory;
 * Created at 2017/1/5.
 */
@Component
public class LinuxShellRouter extends RouteBuilder {
public class ShellRouter extends RouteBuilder {
    @Autowired
    private ActivemqConfiguration activemqConfiguration;
@ -32,7 +32,7 @@ public class LinuxShellRouter extends RouteBuilder {
        context.addComponent("service.shell.event", JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
        from(ServiceFlowConstant.SHELL_EVENT_SERVICE)
                .choice()
                .when(header("tenant").isNotNull()).to("bean:linuxShellService?method=proxy")
                .when(header("tenant").isNotNull()).to("bean:linuxShellService?method=handleServiceFlow")
                .when(header("event").isEqualTo(ServiceFlowConstant.ARBITER_SHELL_SEND)).to("bean:linuxShellService?method=sendShell")
//                .when(header("event").isEqualTo(ServiceFlowConstant.ARBITER_SHELL_ACEPT)).to("bean:linuxShellService?method=shellBack")
                .endChoice();

+ 11 - 10
hos-arbiter/src/main/java/com/yihu/hos/arbiter/services/ArbiterServerService.java

@ -1,8 +1,7 @@
package com.yihu.hos.arbiter.services;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.hos.arbiter.configuration.ArbiterServerConfiguration;
import com.yihu.hos.arbiter.models.ArbiterServer;
import com.yihu.hos.web.framework.model.bo.ArbiterServer;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
@ -20,21 +19,23 @@ import org.springframework.stereotype.Service;
public class ArbiterServerService {
    private static final Logger logger = LogManager.getLogger(ArbiterServerService.class);
    @Autowired
    private MongoOperations mongoOperations;
    @Autowired
    private ArbiterServerConfiguration configuration;
    @Autowired
    private ObjectMapper objectMapper;
    public ArbiterServerService() {
    }
    @Autowired
    public void setMongoOperations(MongoOperations mongoOperations){
        this.mongoOperations = mongoOperations;
    }
    @Autowired
    public void setConfiguration(ArbiterServerConfiguration configuration){
        this.configuration = configuration;
    }
    public void start() {
        //中心Arbiter服务器直接注册
        if (configuration.isCentral()) {
            return;
        }
        ArbiterServer arbiterServer = new ArbiterServer();
        arbiterServer.setTenant(configuration.getTenant());

+ 2 - 2
hos-arbiter/src/main/java/com/yihu/hos/arbiter/services/BrokerServerService.java

@ -3,7 +3,7 @@ package com.yihu.hos.arbiter.services;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mongodb.WriteResult;
import com.yihu.hos.arbiter.models.BrokerServer;
import com.yihu.hos.web.framework.model.bo.BrokerServer;
import com.yihu.hos.core.http.HTTPResponse;
import com.yihu.hos.core.http.HttpClientKit;
import com.yihu.hos.web.framework.constant.ServiceFlowConstant;
@ -82,7 +82,7 @@ public class BrokerServerService {
            ProducerTemplate producerTemplate = createProducerTemplate();
            Map<String, Object> header = new HashMap<>();
            header.put("event", ServiceFlowConstant.BROKER_SERVER_ON);
            producerTemplate.sendBodyAndHeaders(ServiceFlowConstant.FLOW_EVENT_ENDPOINT, msg, header);
            producerTemplate.sendBodyAndHeaders(ServiceFlowConstant.CAMEL_ENDPOINT, msg, header);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
            logger.error(e.getMessage());

+ 22 - 6
hos-arbiter/src/main/java/com/yihu/hos/arbiter/services/EndpointService.java

@ -1,10 +1,8 @@
package com.yihu.hos.arbiter.services;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.hos.arbiter.models.BrokerServer;
import com.yihu.hos.arbiter.models.Endpoint;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import com.yihu.hos.web.framework.model.bo.BrokerServer;
import com.yihu.hos.web.framework.model.bo.Endpoint;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
@ -13,6 +11,7 @@ import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.List;
/**
 * @created Airhead 2016/7/27.
@ -41,14 +40,13 @@ public class EndpointService {
        System.out.println(msg);
        BrokerServer brokerServer = brokerServerService.get();
        if (brokerServer == null) {
            logger.trace("can not find a valid broker server.");
            logger.trace("can not find a valid broker start.");
            return;
        }
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            Endpoint endpoint = objectMapper.readValue(msg, Endpoint.class);
            CloseableHttpClient httpclient = HttpClients.createDefault();
            switch (endpoint.getEvent()) {
                case "endpointRegister": {
                    this.save(endpoint);
@ -73,4 +71,22 @@ public class EndpointService {
        }
    }
    public List<Endpoint> getEndpointList() {
        return mongoOperations.findAll(Endpoint.class);
    }
    public void check() {
        List<Endpoint> endpointList = getEndpointList();
        endpointList.forEach(this::remoteCheck);
    }
    /**
     * 调用实际的检查地址
     *
     * @param endpoint
     */
    private void remoteCheck(Endpoint endpoint) {
        //TODO:
    }
}

+ 0 - 37
hos-arbiter/src/main/java/com/yihu/hos/arbiter/services/HealthCheckService.java

@ -1,37 +0,0 @@
package com.yihu.hos.arbiter.services;
import com.yihu.hos.arbiter.models.Endpoint;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
 * @created Airhead 2016/8/23.
 */
@Service("healthCheckService")
public class HealthCheckService {
    public void check() {
        List<Endpoint> endpointList = getEndpointList();
        endpointList.forEach(this::remoteCheck);
    }
    /**
     * 返回所有拉取方式进行健康检测的Endpoint列表
     *
     * @return
     */
    private List<Endpoint> getEndpointList() {
        //TODO:
        return new ArrayList<>();
    }
    /**
     * 调用实际的检查地址
     *
     * @param endpoint
     */
    private void remoteCheck(Endpoint endpoint) {
        //TODO:
    }
}

+ 0 - 162
hos-arbiter/src/main/java/com/yihu/hos/arbiter/services/LinuxShellService.java

@ -1,162 +0,0 @@
package com.yihu.hos.arbiter.services;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.hos.arbiter.models.BrokerServer;
import com.yihu.hos.core.http.HTTPResponse;
import com.yihu.hos.core.http.HttpClientKit;
import com.yihu.hos.web.framework.constant.ServiceFlowConstant;
import com.yihu.hos.web.framework.model.bo.ServiceShell;
import org.apache.camel.Body;
import org.apache.camel.Headers;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.zbus.broker.ZbusBroker;
import org.zbus.mq.Producer;
import org.zbus.net.http.Message;
import java.io.IOException;
import java.util.List;
import java.util.Map;
/**
 * @author HZY
 * @vsrsion 1.0
 * Created at 2017/1/5.
 */
@Service("linuxShellService")
public class LinuxShellService {
    private static final Logger logger = LogManager.getLogger(LinuxShellService.class);
    @Autowired
    private BrokerServerService brokerServerService;
    private ZbusBroker zbusBroker;
    @Autowired
    private ObjectMapper objectMapper;
    private ShellService shellService;
    /**
     * SAAS化的管理端过来的消息会被proxy进行中转,之后发送到终端的Arbiter对Broker进行实际的控制。
     *
     * @param header 消息头部信息
     * @param msg    消息
     */
    public void proxy(@Headers Map<String, String> header, @Body String msg) {
        if (zbusBroker == null) {
            logger.error("zbusBroker is null.");
            return;
        }
        try {
            //TODO 设置shell发起用户
            Producer producer = new Producer(zbusBroker, ServiceFlowConstant.SHELL_REQUEST + "@" + header.get("tenant"));
            producer.createMQ();    //确定为创建消息队列需要显示调用
            Message message = new Message();
            message.setHead("event", header.get("event"));
            message.setHead("tenant", header.get("tenant"));
            message.setMethod("POST");
            message.setBody(msg);
            message = producer.sendSync(message);
            logger.debug(message);
            shellService.start();
//            System.out.println("test");
        } catch (IOException | InterruptedException e) {
            logger.error(e.getMessage());
            e.printStackTrace();
        }
    }
    /**
     * 发送shell命令请求到broker
     * @param msg    命令消息内容
     */
    public void sendShell(String msg) {
        try {
            List<BrokerServer> brokerServerList  = brokerServerService.get(false);
            for (BrokerServer broker : brokerServerList) {
                String result = sendMessage(broker, "post", "/esb/serviceShell/send", msg);
                if (result==null) {
                    logger.error("sendMessage to broker server failed, broker:" + broker.getURL() + ", msg:" + msg);
                    continue;
                }else {
                    logger.debug("发送shell请求到broker成功");
                    // shell执行成功,见执行结果返回到中心zbus显示。
                    ServiceShell serviceShell = objectMapper.readValue(msg,ServiceShell.class);
                    Producer producer = new Producer(zbusBroker, ServiceFlowConstant.SHELL_RESPONSE + "@" + serviceShell.getTenant());
                    producer.createMQ();    //确定为创建消息队列需要显示调用
                    Message message = new Message();
                    message.setHead("event", serviceShell.getType());
                    message.setHead("tenant", serviceShell.getTenant());
                    message.setMethod("POST");
                    message.setBody(result);
                    message = producer.sendSync(message);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            logger.error(e.getMessage());
        }
    }
    private String sendMessage(BrokerServer brokerServer, String method, String path, String msg) {
        if (brokerServer == null) {
            return null;
        }
        switch (method) {
            case "post": {
                HTTPResponse response = HttpClientKit.post(brokerServer.getURL() + path, msg);
                if (response.getStatusCode() == 200) {
                    String body = response.getBody();
                    return body;
                }
                return null;
            }
            case "put": {
                HTTPResponse response = HttpClientKit.put(brokerServer.getURL() + path, msg);
                if (response.getStatusCode() == 200) {
                    String body = response.getBody();
                    logger.debug(body);
                    return body;
                }
                return null;
            }
            case "delete": {
                HTTPResponse response = HttpClientKit.delete(brokerServer.getURL() + path, msg);
                if (response.getStatusCode() == 200) {
                    String body = response.getBody();
                    logger.debug(body);
                    return body;
                }
                return null;
            }
            default:
                break;
        }
        return null;
    }
    @Autowired
    public void setZbusBroker(ZbusBroker zbusBroker) {
        this.zbusBroker = zbusBroker;
    }
    @Autowired
    public void setShellService(ShellService shellService) {
        this.shellService = shellService;
    }
}

+ 0 - 86
hos-arbiter/src/main/java/com/yihu/hos/arbiter/services/MycatProxy.java

@ -1,86 +0,0 @@
package com.yihu.hos.arbiter.services;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.hos.arbiter.configuration.ArbiterServerConfiguration;
import com.yihu.hos.core.log.Logger;
import com.yihu.hos.core.log.LoggerFactory;
import com.yihu.hos.web.framework.constant.ServiceFlowConstant;
import org.apache.camel.CamelContext;
import org.apache.camel.ProducerTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.zbus.broker.ZbusBroker;
import org.zbus.mq.Consumer;
import org.zbus.net.http.Message;
import java.util.HashMap;
import java.util.Map;
/**
 * @author HZY
 * @vsrsion 1.0
 * Created at 2017/1/6.
 */
@Service
public class MycatProxy {
    private static final Logger logger = LoggerFactory.getLogger(MycatProxy.class);
    private CamelContext camelContext;
    private ArbiterServerConfiguration configuration;
    private ZbusBroker zbusBroker;
    private Consumer consumer;
    @Autowired
    private ObjectMapper objectMapper;
    private static Map<String,String> cunsumerNap = new HashMap<>();
    public void proxy(Message message, Consumer consumer) {
        Map<String, Object> header = new HashMap<>();
        header.put("event", message.getHead("event"));
        ProducerTemplate producerTemplate = camelContext.createProducerTemplate();
        producerTemplate.sendBodyAndHeaders(ServiceFlowConstant.MYCAT_EVENT_SERVICE, message.getBodyString(), header);
    }
    public void start() {
        if (zbusBroker == null) {
            logger.error("zbusBroker is null");
            return;
        }
        try {
            if (!cunsumerNap.containsKey(ServiceFlowConstant.MYCAT_UPDATE + "@" + configuration.getMycatName())){
                consumer = new Consumer(zbusBroker, ServiceFlowConstant.MYCAT_UPDATE + "@" + configuration.getMycatName());
                consumer.start(this::proxy);
                cunsumerNap.put(ServiceFlowConstant.MYCAT_UPDATE + "@" + configuration.getMycatName(),configuration.getMycatName());
            }
        } catch (Exception e) {
            e.printStackTrace();
            logger.error(e.getMessage());
        }
    }
    @Autowired
    public void setZbusBroker(ZbusBroker zbusBroker) {
        this.zbusBroker = zbusBroker;
    }
    @Autowired
    public void setCamelContext(CamelContext camelContext) {
        this.camelContext = camelContext;
    }
    @Autowired
    public void setConfiguration(ArbiterServerConfiguration configuration) {
        this.configuration = configuration;
    }
    @Override
    protected void finalize() throws Throwable {
        consumer.close();
        super.finalize();
    }
}

+ 7 - 64
hos-arbiter/src/main/java/com/yihu/hos/arbiter/services/MycatService.java

@ -1,23 +1,14 @@
package com.yihu.hos.arbiter.services;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.hos.arbiter.models.BrokerServer;
import com.yihu.hos.core.http.HTTPResponse;
import com.yihu.hos.core.http.HttpClientKit;
import com.yihu.hos.web.framework.constant.ServiceFlowConstant;
import org.apache.camel.Body;
import org.apache.camel.Headers;
import com.yihu.hos.web.framework.model.bo.BrokerServer;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.zbus.broker.ZbusBroker;
import org.zbus.mq.Producer;
import org.zbus.net.http.Message;
import java.io.IOException;
import java.util.List;
import java.util.Map;
/**
 * @author HZY
@ -30,58 +21,21 @@ public class MycatService {
    @Autowired
    private BrokerServerService brokerServerService;
    private ZbusBroker zbusBroker;
    @Autowired
    private ObjectMapper objectMapper;
    private MycatProxy mycatProxy;
    /**
     * SAAS化的管理端过来的消息会被proxy进行中转,之后发送到终端的Arbiter对Broker进行实际的控制。
     *
     * @param header 消息头部信息
     * @param msg    消息
     */
    public void proxy(@Headers Map<String, String> header, @Body String msg) {
        if (zbusBroker == null) {
            logger.error("zbusBroker is null.");
            return;
        }
        try {
            // 设置mycat 配置修改的 消息生产者
            Producer producer = new Producer(zbusBroker, ServiceFlowConstant.MYCAT_UPDATE + "@" + header.get("tenant"));
            producer.createMQ();    //确定为创建消息队列需要显示调用
            Message message = new Message();
            message.setHead("event", header.get("event"));
            message.setHead("tenant", header.get("tenant"));
            message.setMethod("POST");
            message.setBody(msg);
            message = producer.sendSync(message);
            logger.debug(message);
            mycatProxy.start();
//            System.out.println("test");
        } catch (IOException | InterruptedException e) {
            logger.error(e.getMessage());
            e.printStackTrace();
        }
    }
    /**
     * 发送shell命令请求到broker
     * @param msg    命令消息内容
     *
     * @param msg 命令消息内容
     */
    public void updateMycat(String msg) {
        try {
            List<BrokerServer> brokerServerList  = brokerServerService.get(false);
            List<BrokerServer> brokerServerList = brokerServerService.get(false);
            for (BrokerServer broker : brokerServerList) {
                String result = sendMessage(broker, "post", "/esb/serviceMycat/update", msg);
                if (result==null) {
                    logger.error("sendMessage to broker server failed, broker:" + broker.getURL() + ", msg:" + msg);
                if (result == null) {
                    logger.error("sendMessage to broker start failed, broker:" + broker.getURL() + ", msg:" + msg);
                    continue;
                }else {
                } else {
                    logger.debug("发送mycat修改请求到broker成功");
                }
@ -132,15 +86,4 @@ public class MycatService {
        return null;
    }
    @Autowired
    public void setZbusBroker(ZbusBroker zbusBroker) {
        this.zbusBroker = zbusBroker;
    }
    @Autowired
    public void setMycatProxy(MycatProxy mycatProxy) {
        this.mycatProxy = mycatProxy;
    }
}

+ 147 - 29
hos-arbiter/src/main/java/com/yihu/hos/arbiter/services/ProxyService.java

@ -3,6 +3,7 @@ package com.yihu.hos.arbiter.services;
import com.yihu.hos.arbiter.configuration.ArbiterServerConfiguration;
import com.yihu.hos.core.log.Logger;
import com.yihu.hos.core.log.LoggerFactory;
import com.yihu.hos.web.framework.constant.EndPointConstant;
import com.yihu.hos.web.framework.constant.ServiceFlowConstant;
import org.apache.camel.CamelContext;
import org.apache.camel.ProducerTemplate;
@ -27,51 +28,168 @@ public class ProxyService {
    private CamelContext camelContext;
    private ArbiterServerConfiguration configuration;
    private ZbusBroker zbusBroker;
    private Consumer consumer;
    @Autowired
    public void setZbusBroker(ZbusBroker zbusBroker) {
        this.zbusBroker = zbusBroker;
    }
    public void proxy(Message message, Consumer consumer) {
        Map<String, Object> header = new HashMap<>();
        header.put("event", message.getHead("event"));
    @Autowired
    public void setCamelContext(CamelContext camelContext) {
        this.camelContext = camelContext;
    }
        ProducerTemplate producerTemplate = camelContext.createProducerTemplate();
        producerTemplate.sendBodyAndHeaders(ServiceFlowConstant.FLOW_EVENT_ENDPOINT, message.getBodyString(), header);
    @Autowired
    public void setConfiguration(ArbiterServerConfiguration configuration) {
        this.configuration = configuration;
    }
    public void start() {
        if (zbusBroker == null) {
            logger.error("zbusBroker is null");
            return;
        new ServiceFlow().server();
        new Mycat().start();
        new Shell().start();
    }
    public class ServiceFlow {
        private Consumer consumer;
        public void handle(Message message, Consumer consumer) {
            Map<String, Object> header = new HashMap<>();
            header.put("event", message.getHead("event"));
            ProducerTemplate producerTemplate = camelContext.createProducerTemplate();
            producerTemplate.sendBodyAndHeaders(ServiceFlowConstant.CAMEL_ENDPOINT, message.getBodyString(), header);
        }
        consumer = new Consumer(zbusBroker, ServiceFlowConstant.SSH + "@" + configuration.getTenant());
        try {
            consumer.start(this::proxy);
        } catch (IOException e) {
            e.printStackTrace();
            logger.error(e.getMessage());
        public void server() {
            if (zbusBroker == null) {
                logger.error("zbusBroker is null");
                return;
            }
            try {
                consumer = new Consumer(zbusBroker, ServiceFlowConstant.ZBUS_MQ + "@" + configuration.getTenant());
                consumer.start(this::handle);
            } catch (IOException e) {
                e.printStackTrace();
                logger.error(e.getMessage());
            }
        }
    }
        @Override
        protected void finalize() throws Throwable {
            if (consumer != null) {
                consumer.close();
            }
    @Autowired
    public void setZbusBroker(ZbusBroker zbusBroker) {
        this.zbusBroker = zbusBroker;
            super.finalize();
        }
    }
    @Autowired
    public void setCamelContext(CamelContext camelContext) {
        this.camelContext = camelContext;
    public class Mycat {
        private Consumer consumer;
        public void handle(Message message, Consumer consumer) {
            Map<String, Object> header = new HashMap<>();
            header.put("event", message.getHead("event"));
            ProducerTemplate producerTemplate = camelContext.createProducerTemplate();
            producerTemplate.sendBodyAndHeaders(ServiceFlowConstant.MYCAT_EVENT_SERVICE, message.getBodyString(), header);
        }
        public void start() {
            if (zbusBroker == null) {
                logger.error("zbusBroker is null");
                return;
            }
            try {
                consumer = new Consumer(zbusBroker, ServiceFlowConstant.MYCAT_UPDATE + "@" + configuration.getMycatName());
                consumer.start(this::handle);
            } catch (IOException e) {
                e.printStackTrace();
                logger.error(e.getMessage());
            }
        }
        @Override
        protected void finalize() throws Throwable {
            if (consumer != null) {
                consumer.close();
            }
            super.finalize();
        }
    }
    @Autowired
    public void setConfiguration(ArbiterServerConfiguration configuration) {
        this.configuration = configuration;
    public class Shell {
        private Consumer consumer;
        public void handle(Message message, Consumer consumer) {
            Map<String, Object> header = new HashMap<>();
            header.put("event", message.getHead("event"));
            ProducerTemplate producerTemplate = camelContext.createProducerTemplate();
            producerTemplate.sendBodyAndHeaders(ServiceFlowConstant.SHELL_EVENT_SERVICE, message.getBodyString(), header);
        }
        public void start() {
            if (zbusBroker == null) {
                logger.error("zbusBroker is null");
                return;
            }
            try {
                consumer = new Consumer(zbusBroker, ServiceFlowConstant.SHELL_REQUEST + "@" + configuration.getTenant());
                consumer.start(this::handle);
            } catch (IOException e) {
                e.printStackTrace();
                logger.error(e.getMessage());
            }
        }
        @Override
        protected void finalize() throws Throwable {
            if (consumer != null) {
                consumer.close();
            }
            super.finalize();
        }
    }
    @Override
    protected void finalize() throws Throwable {
        consumer.close();
        super.finalize();
    public class EndPoint {
        private Consumer consumer;
        public void handle(Message message, Consumer consumer) {
            Map<String, Object> header = new HashMap<>();
            header.put("event", message.getHead("event"));
            ProducerTemplate producerTemplate = camelContext.createProducerTemplate();
            producerTemplate.sendBodyAndHeaders(ServiceFlowConstant.SHELL_EVENT_SERVICE, message.getBodyString(), header);
        }
        public void start() {
            if (zbusBroker == null) {
                logger.error("zbusBroker is null");
                return;
            }
            try {
                consumer = new Consumer(zbusBroker, EndPointConstant.ZBUS_MQ + "@" + configuration.getTenant());
                consumer.start(this::handle);
            } catch (IOException e) {
                e.printStackTrace();
                logger.error(e.getMessage());
            }
        }
        @Override
        protected void finalize() throws Throwable {
            if (consumer != null) {
                consumer.close();
            }
            super.finalize();
        }
    }
}

+ 14 - 48
hos-arbiter/src/main/java/com/yihu/hos/arbiter/services/ServiceFlowService.java

@ -3,13 +3,11 @@ package com.yihu.hos.arbiter.services;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mongodb.BasicDBObject;
import com.mongodb.WriteResult;
import com.yihu.hos.arbiter.models.BrokerServer;
import com.yihu.hos.web.framework.model.bo.BrokerServer;
import com.yihu.hos.core.http.HTTPResponse;
import com.yihu.hos.core.http.HttpClientKit;
import com.yihu.hos.web.framework.constant.ServiceFlowConstant;
import com.yihu.hos.web.framework.model.bo.ServiceFlow;
import org.apache.camel.Body;
import org.apache.camel.Headers;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
@ -22,7 +20,6 @@ import org.zbus.broker.ZbusBroker;
import java.io.IOException;
import java.util.List;
import java.util.Map;
/**
 * Broker原则上具有等同性,这样Arbiter无论选择了哪个Broker能提供的服务都是一样的。
@ -108,9 +105,9 @@ public class ServiceFlowService {
            List<BrokerServer> brokerServerList;
            brokerServerList = brokerServerService.get(one);
            for (BrokerServer broker : brokerServerList) {
                boolean result = sendMessage(broker, "post", "/esb/serviceFlow/start", msg);
                boolean result = sendMessage(broker, "post", "/esb/serviceFlow/serverServiceFlow", msg);
                if (!result) {
                    logger.error("sendMessage to broker server failed, broker:" + broker.getURL() + ", msg:" + msg);
                    logger.error("sendMessage to broker start failed, broker:" + broker.getURL() + ", msg:" + msg);
                    continue;
                }
@ -139,7 +136,7 @@ public class ServiceFlowService {
                boolean result = sendMessage(broker, "post", "/esb/serviceFlow/stop", msg);
                if (!result) {
                    logger.error("sendMessage to broker server failed, broker:" + broker.getURL() + ", msg:" + msg);
                    logger.error("sendMessage to broker start failed, broker:" + broker.getURL() + ", msg:" + msg);
                    continue;
                }
@ -162,7 +159,7 @@ public class ServiceFlowService {
                BrokerServer brokerServer = brokerServerService.get();
                boolean result = sendMessage(brokerServer, "post", "/esb/serviceFlow", msg);
                if (!result) {
                    logger.error("sendMessage to broker server failed, broker:" + brokerServer.getURL() + ", msg:" + msg);
                    logger.error("sendMessage to broker start failed, broker:" + brokerServer.getURL() + ", msg:" + msg);
                    return;
                }
@ -175,7 +172,7 @@ public class ServiceFlowService {
            for (BrokerServer broker : brokerServerList) {
                boolean result = sendMessage(broker, "post", "/esb/serviceFlow", msg);
                if (!result) {
                    logger.error("sendMessage to broker server failed, broker:" + broker.getURL() + ", msg:" + msg);
                    logger.error("sendMessage to broker start failed, broker:" + broker.getURL() + ", msg:" + msg);
                    continue;
                }
@ -203,7 +200,7 @@ public class ServiceFlowService {
                boolean result = sendMessage(brokerList.get(0), "put", "/esb/serviceFlow/add", msg);
                if (!result) {
                    logger.error("sendMessage to broker server failed, broker:" + brokerList.get(0).getURL() + ", msg:" + msg);
                    logger.error("sendMessage to broker start failed, broker:" + brokerList.get(0).getURL() + ", msg:" + msg);
                    return;
                }
@ -218,7 +215,7 @@ public class ServiceFlowService {
            for (BrokerServer broker : brokerServerList) {
                boolean result = sendMessage(broker, "put", "/esb/serviceFlow/add", msg);
                if (!result) {
                    logger.error("sendMessage to broker server failed, broker:" + broker.getURL() + ", msg:" + msg);
                    logger.error("sendMessage to broker start failed, broker:" + broker.getURL() + ", msg:" + msg);
                    continue;
                }
@ -247,7 +244,7 @@ public class ServiceFlowService {
                boolean result = sendMessage(brokerList.get(0), "put", "/esb/serviceFlow/reduce", msg);
                if (!result) {
                    logger.error("sendMessage to broker server failed, broker:" + brokerList.get(0).getURL() + ", msg:" + msg);
                    logger.error("sendMessage to broker start failed, broker:" + brokerList.get(0).getURL() + ", msg:" + msg);
                    return;
                }
@ -262,7 +259,7 @@ public class ServiceFlowService {
            for (BrokerServer broker : brokerServerList) {
                boolean result = sendMessage(broker, "put", "/esb/serviceFlow/reduce", msg);
                if (!result) {
                    logger.error("sendMessage to broker server failed, broker:" + broker.getURL() + ", msg:" + msg);
                    logger.error("sendMessage to broker start failed, broker:" + broker.getURL() + ", msg:" + msg);
                    continue;
                }
@ -291,7 +288,7 @@ public class ServiceFlowService {
                boolean result = sendMessage(brokerList.get(0), "delete", "/esb/serviceFlow", msg);
                if (!result) {
                    logger.error("sendMessage to broker server failed, broker:" + brokerList.get(0).getURL() + ", msg:" + msg);
                    logger.error("sendMessage to broker start failed, broker:" + brokerList.get(0).getURL() + ", msg:" + msg);
                    return;
                }
@ -304,7 +301,7 @@ public class ServiceFlowService {
            for (BrokerServer broker : brokerServerList) {
                boolean result = sendMessage(broker, "delete", "/esb/serviceFlow", msg);
                if (!result) {
                    logger.error("sendMessage to broker server failed, broker:" + broker.getURL() + ", msg:" + msg);
                    logger.error("sendMessage to broker start failed, broker:" + broker.getURL() + ", msg:" + msg);
                    continue;
                }
@ -330,9 +327,9 @@ public class ServiceFlowService {
                BrokerServer brokerServer = objectMapper.readValue(msg, BrokerServer.class);
                String serviceFlowMsg = objectMapper.writeValueAsString(serviceFlow);
                boolean result = sendMessage(brokerServer, "post", "/esb/serviceFlow/start", serviceFlowMsg);
                boolean result = sendMessage(brokerServer, "post", "/esb/serviceFlow/serverServiceFlow", serviceFlowMsg);
                if (!result) {
                    logger.error("sendMessage to broker server failed, broker:" + brokerServer.getURL() + ", msg:" + serviceFlowMsg);
                    logger.error("sendMessage to broker start failed, broker:" + brokerServer.getURL() + ", msg:" + serviceFlowMsg);
                    return;
                }
@ -349,37 +346,6 @@ public class ServiceFlowService {
        //可以不用处理。
    }
    /**
     * SAAS化的管理端过来的消息会被proxy进行中转,之后发送到终端的Arbiter对Broker进行实际的控制。
     *
     * @param header 消息头部信息
     * @param msg    消息
     */
    public void proxy(@Headers Map<String, String> header, @Body String msg) {
//        if (zbusBroker == null) {
//            logger.error("zbusBroker is null.");
//            return;
//        }
//
//        try {
//            Producer producer = new Producer(zbusBroker, ServiceFlowConstant.SSH + "@" + header.get("tenant"));
//            producer.createMQ();    //确定为创建消息队列需要显示调用
//            Message message = new Message();
//            message.setHead("event", header.get("event"));
//            message.setHead("tenant", header.get("tenant"));
////            message.setHead(header);
//            message.setMethod("POST");
//            message.setBody(msg);
//            message = producer.sendSync(message);
//            logger.debug(message);
////            System.out.println("test");
//        } catch (IOException | InterruptedException e) {
//            logger.error(e.getMessage());
//            e.printStackTrace();
//        }
    }
    @Autowired
    public void setZbusBroker(ZbusBroker zbusBroker) {
        this.zbusBroker = zbusBroker;

+ 82 - 49
hos-arbiter/src/main/java/com/yihu/hos/arbiter/services/ShellService.java

@ -1,65 +1,113 @@
package com.yihu.hos.arbiter.services;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.hos.arbiter.configuration.ArbiterServerConfiguration;
import com.yihu.hos.core.log.Logger;
import com.yihu.hos.core.log.LoggerFactory;
import com.yihu.hos.core.http.HTTPResponse;
import com.yihu.hos.core.http.HttpClientKit;
import com.yihu.hos.web.framework.constant.ServiceFlowConstant;
import org.apache.camel.CamelContext;
import org.apache.camel.ProducerTemplate;
import com.yihu.hos.web.framework.model.bo.BrokerServer;
import com.yihu.hos.web.framework.model.bo.ServiceShell;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.zbus.broker.ZbusBroker;
import org.zbus.mq.Consumer;
import org.zbus.mq.Producer;
import org.zbus.net.http.Message;
import java.util.HashMap;
import java.util.Map;
import java.util.List;
/**
 * @author HZY
 * @vsrsion 1.0
 * Created at 2017/1/6.
 * Created at 2017/1/5.
 */
@Service
@Service("linuxShellService")
public class ShellService {
    private static final Logger logger = LoggerFactory.getLogger(ShellService.class);
    private static final Logger logger = LogManager.getLogger(ShellService.class);
    private CamelContext camelContext;
    private ArbiterServerConfiguration configuration;
    @Autowired
    private BrokerServerService brokerServerService;
    private ZbusBroker zbusBroker;
    private Consumer consumer;
    @Autowired
    private ObjectMapper objectMapper;
    private static Map<String,String> cunsumerNap = new HashMap<>();
    /**
     * 发送shell命令请求到broker
     * @param msg    命令消息内容
     */
    public void sendShell(String msg) {
        try {
            List<BrokerServer> brokerServerList  = brokerServerService.get(false);
            for (BrokerServer broker : brokerServerList) {
                String result = sendMessage(broker, "post", "/esb/serviceShell/send", msg);
                if (result==null) {
                    logger.error("sendMessage to broker start failed, broker:" + broker.getURL() + ", msg:" + msg);
                    continue;
                }else {
                    logger.debug("发送shell请求到broker成功");
                    // shell执行成功,见执行结果返回到中心zbus显示。
                    ServiceShell serviceShell = objectMapper.readValue(msg,ServiceShell.class);
                    Producer producer = new Producer(zbusBroker, ServiceFlowConstant.SHELL_RESPONSE + "@" + serviceShell.getTenant());
                    producer.createMQ();    //确定为创建消息队列需要显示调用
                    Message message = new Message();
                    message.setHead("event", serviceShell.getType());
                    message.setHead("tenant", serviceShell.getTenant());
                    message.setMethod("POST");
                    message.setBody(result);
                    message = producer.sendSync(message);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            logger.error(e.getMessage());
        }
    }
    public void proxy(Message message, Consumer consumer) {
        Map<String, Object> header = new HashMap<>();
        header.put("event", message.getHead("event"));
    private String sendMessage(BrokerServer brokerServer, String method, String path, String msg) {
        if (brokerServer == null) {
            return null;
        }
        ProducerTemplate producerTemplate = camelContext.createProducerTemplate();
        producerTemplate.sendBodyAndHeaders(ServiceFlowConstant.SHELL_EVENT_SERVICE, message.getBodyString(), header);
    }
        switch (method) {
            case "post": {
                HTTPResponse response = HttpClientKit.post(brokerServer.getURL() + path, msg);
                if (response.getStatusCode() == 200) {
                    String body = response.getBody();
                    return body;
                }
    public void start() {
        if (zbusBroker == null) {
            logger.error("zbusBroker is null");
            return;
        }
                return null;
            }
        try {
            if (!cunsumerNap.containsKey(ServiceFlowConstant.SHELL_REQUEST + "@" + configuration.getTenant())){
                consumer = new Consumer(zbusBroker, ServiceFlowConstant.SHELL_REQUEST + "@" + configuration.getTenant());
                consumer.start(this::proxy);
                cunsumerNap.put(ServiceFlowConstant.SHELL_REQUEST + "@" + configuration.getTenant(),configuration.getTenant());
            case "put": {
                HTTPResponse response = HttpClientKit.put(brokerServer.getURL() + path, msg);
                if (response.getStatusCode() == 200) {
                    String body = response.getBody();
                    logger.debug(body);
                    return body;
                }
                return null;
            }
        } catch (Exception e) {
            e.printStackTrace();
            logger.error(e.getMessage());
            case "delete": {
                HTTPResponse response = HttpClientKit.delete(brokerServer.getURL() + path, msg);
                if (response.getStatusCode() == 200) {
                    String body = response.getBody();
                    logger.debug(body);
                    return body;
                }
                return null;
            }
            default:
                break;
        }
        return null;
    }
@ -68,19 +116,4 @@ public class ShellService {
        this.zbusBroker = zbusBroker;
    }
    @Autowired
    public void setCamelContext(CamelContext camelContext) {
        this.camelContext = camelContext;
    }
    @Autowired
    public void setConfiguration(ArbiterServerConfiguration configuration) {
        this.configuration = configuration;
    }
    @Override
    protected void finalize() throws Throwable {
        consumer.close();
        super.finalize();
    }
}

+ 9 - 5
hos-arbiter/src/main/resources/application.yml

@ -36,27 +36,29 @@ spring:
  profiles: test
  data:
    mongodb:
      host: 172.19.103.58
      host: 172.19.103.57
      port: 27017
      username: esb
      password: esb
      authenticationDatabase: admin
      database: configuration
      database: runtime
  activemq:
    broker-url: tcp://172.19.103.58:61616
    broker-url: tcp://172.19.103.57:61616
    user: admin
    password: admin
arbiter:
  timer:
      period: 10000
    period: 10000
  central:
    url:
    port: 15555
    store: ./store
  terminal:
    url: 127.0.0.1:15555
    url: 192.168.131.119:15555
  tenant:
    name: jkzl
  mycat:
    name: mycat192.168.75.128    ##mycat 服务器标识,规则:“mycat"+ 本机IP
---
spring:
  profiles: prod
@ -109,6 +111,8 @@ arbiter:
    url: 192.168.131.38:15555
  tenant:
    name: yichang
  mycat:
    name: mycat192.168.131.38    ##mycat 服务器标识,规则:“mycat"+ 本机IP
#jcraft shell操作
jcraft:
  host: 172.19.103.57

+ 95 - 45
hos-broker/hos-broker.iml

@ -131,27 +131,74 @@
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty9:2.17.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty-common:2.17.1" level="project" />
    <orderEntry type="module" module-name="hos-web-framework" />
    <orderEntry type="library" name="Maven: eu.medsea.mimeutil:mime-util:2.1.3" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.21" level="project" />
    <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.17" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.9" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-jdbc:8.5.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-juli:8.5.5" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:1.10.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.12.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-orm:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.3" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.3" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.3" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:1.9.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.5.5" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-configuration-processor:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jms:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-messaging:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-server:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-http:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-util:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-io:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlet:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-security:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlets:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-continuation:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-client:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-jmx:9.3.11.v20160721" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.3.3.RELEASE" level="project" />
    <orderEntry type="module" module-name="hos-web-framework" />
    <orderEntry type="library" name="Maven: eu.medsea.mimeutil:mime-util:2.1.3" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.21" level="project" />
    <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.17" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.9" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-jdbc:8.5.6" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-juli:8.5.6" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.0.11.Final" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final" level="project" />
@ -163,27 +210,26 @@
    <orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.0.1.Final" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-entitymanager:5.0.11.Final" level="project" />
    <orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:1.10.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.12.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-orm:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:1.10.5.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.12.5.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-orm:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.2.4.Final" level="project" />
    <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.1" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.3" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.3" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.3" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.3" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.4" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.4" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.4" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver-core:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:bson:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:1.9.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:1.9.5.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.mongodb:mongo-java-driver:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: mysql:mysql-connector-java:5.1.37" level="project" />
    <orderEntry type="library" name="Maven: com.oracle:ojdbc6:11.2.0.3.0" level="project" />
    <orderEntry type="module" module-name="hos-core" />
    <orderEntry type="library" name="Maven: net.lingala.zip4j:zip4j:1.3.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.0" level="project" />
@ -191,12 +237,16 @@
    <orderEntry type="library" name="Maven: commons-io:commons-io:2.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.3.2" level="project" />
    <orderEntry type="library" name="Maven: commons-net:commons-net:3.1" level="project" />
    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.2" level="project" />
    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.3" level="project" />
    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
    <orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:3.4.1" level="project" />
    <orderEntry type="library" name="Maven: com.squareup.okio:okio:1.9.0" level="project" />
    <orderEntry type="library" name="Maven: com.belerweb:pinyin4j:2.5.0" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.8.4" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.8.4" level="project" />
    <orderEntry type="library" name="Maven: org.codehaus.woodstox:stax2-api:3.1.4" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.woodstox:woodstox-core:5.0.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.6.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.6.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.2" level="project" />
@ -214,12 +264,10 @@
    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: com.yihu.core:ehr-dbhelper:1.1.9" level="project" />
    <orderEntry type="library" name="Maven: com.yihu.core:html2image:0.9" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.5.5" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.6" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.6" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.5.6" level="project" />
    <orderEntry type="library" name="Maven: org.fusesource:sigar:1.6.4" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.7.21" level="project" />
    <orderEntry type="library" name="Maven: org.apache.activemq:activemq-core:5.7.0" level="project" />
@ -232,8 +280,9 @@
    <orderEntry type="library" name="Maven: org.fusesource.hawtbuf:hawtbuf:1.9" level="project" />
    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-j2ee-management_1.1_spec:1.0.1" level="project" />
    <orderEntry type="library" name="Maven: org.jasypt:jasypt:1.9.0" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-configuration-processor:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-configuration-processor:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.json:json:20140107" level="project" />
    <orderEntry type="library" name="Maven: com.jcraft:jsch:0.1.53" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-core:2.18.0" level="project" />
    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.2.11" level="project" />
    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.2.11" level="project" />
@ -243,14 +292,13 @@
    <orderEntry type="library" name="Maven: org.apache.camel:camel-http-common:2.18.0" level="project" />
    <orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jms:2.18.0" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jms:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-messaging:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jms:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-messaging:4.3.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-cxf:2.18.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-cxf-transport:2.18.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-soap:3.1.7" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-core:3.1.7" level="project" />
    <orderEntry type="library" name="Maven: org.codehaus.woodstox:woodstox-core-asl:4.4.1" level="project" />
    <orderEntry type="library" name="Maven: org.codehaus.woodstox:stax2-api:3.1.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.ws.xmlschema:xmlschema-core:2.2.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-wsdl:3.1.7" level="project" />
    <orderEntry type="library" name="Maven: wsdl4j:wsdl4j:1.6.3" level="project" />
@ -284,23 +332,25 @@
    <orderEntry type="library" name="Maven: org.apache.camel:camel-stream:2.18.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty:2.18.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty9:2.18.0" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-server:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-http:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-util:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-io:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlet:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-security:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlets:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-continuation:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-client:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-jmx:9.3.11.v20160721" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-server:9.3.14.v20161028" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-http:9.3.14.v20161028" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-util:9.3.14.v20161028" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-io:9.3.14.v20161028" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlet:9.3.14.v20161028" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-security:9.3.14.v20161028" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-servlets:9.3.14.v20161028" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-continuation:9.3.14.v20161028" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-client:9.3.14.v20161028" level="project" />
    <orderEntry type="library" name="Maven: org.eclipse.jetty:jetty-jmx:9.3.14.v20161028" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jetty-common:2.18.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-mongodb:2.18.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.camel:camel-jackson:2.18.0" level="project" />
    <orderEntry type="library" name="Maven: xom:xom:1.2.5" level="project" />
    <orderEntry type="library" name="Maven: xerces:xercesImpl:2.8.0" level="project" />
    <orderEntry type="library" name="Maven: xalan:xalan:2.7.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:1.4.1.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:1.4.2.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.2.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.2.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.1" level="project" />
@ -311,6 +361,6 @@
    <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.3.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.3.3.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.3.4.RELEASE" level="project" />
  </component>
</module>

+ 13 - 4
hos-broker/src/main/java/com/yihu/hos/broker/HosBrokerApplication.java

@ -6,18 +6,19 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.data.mongodb.gridfs.GridFsOperations;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@EnableScheduling
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
public class HosBrokerApplication extends SpringBootServletInitializer implements CommandLineRunner {
    @Autowired
    private GridFsOperations operations;
    private CamelStartBoot camelStartBoot;
    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(HosBrokerApplication.class);
@ -27,7 +28,15 @@ public class HosBrokerApplication extends SpringBootServletInitializer implement
    @Override
    public void run(String... strings) throws Exception {
        GridFSUtil.gridFsOperations = operations;
        new CamelStartBoot().start();
        camelStartBoot = new CamelStartBoot();
        camelStartBoot.start();
        Runtime.getRuntime().addShutdownHook(new Thread(() -> {
            try {
                camelStartBoot.shutdown();
            } catch (Exception ignored) {
            }
        }));
    }
    @Override

+ 2 - 2
hos-broker/src/main/java/com/yihu/hos/broker/common/camelrouter/BrokerServerRouter.java

@ -16,8 +16,8 @@ public class BrokerServerRouter extends RouteBuilder {
    @Override
    public void configure() throws Exception {
        if (arbiterConfiguration.getEnable()) {
            from("timer:brokerServerOnline?period={{hos.timer.period}}")
                    .to("bean:brokerServerService?method=brokerServerOnline");
            from("timer:online?period={{hos.timer.period}}")
                    .to("bean:brokerServerService?method=online");
        }
    }
}

+ 2 - 1
hos-broker/src/main/java/com/yihu/hos/broker/configurations/SwaggerConfig.java

@ -5,6 +5,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.request.async.DeferredResult;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@ -34,7 +35,7 @@ public class SwaggerConfig  {
                "向其他服务提供的接口。",
                "1.0",
                "No terms of service",
                "admin@jkzl.com",
                new Contact("admin@jkzl.com", "", ""),
                "The Apache License, Version 2.0",
                "http://www.apache.org/licenses/LICENSE-2.0.html"
        );

+ 12 - 63
hos-broker/src/main/java/com/yihu/hos/broker/daos/BrokerDao.java

@ -1,78 +1,27 @@
package com.yihu.hos.broker.daos;
import com.yihu.hos.broker.common.constants.BrokerConstant;
import com.yihu.hos.broker.models.SystemServiceEndpoint;
import com.yihu.hos.broker.models.SystemServiceFlow;
import com.yihu.hos.broker.models.SystemServiceFlowClass;
import com.yihu.hos.web.framework.model.bo.Endpoint;
import com.yihu.hos.web.framework.model.bo.ServiceFlow;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.stereotype.Repository;
import java.util.*;
import java.util.List;
@Repository("BrokerDao")
@Repository
public class BrokerDao {
    public static final String BEAN_ID = "BrokerDao";
    private MongoOperations mongoOperations;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    public List<SystemServiceFlow> getSystemServiceFlowList() throws Exception {
        List<SystemServiceFlow> systemServiceFlowList = new ArrayList<>();;
        String sql = "select * from system_service_flow t where t.file_type='"+ BrokerConstant.CLASS +"'";
        List list = jdbcTemplate.queryForList(sql);
        Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
            Map map = (Map) iterator.next();
            SystemServiceFlow systemServiceFlow = new SystemServiceFlow();
            systemServiceFlow.setId((Integer) map.get("id"));
            systemServiceFlow.setCode((String) map.get("code"));
            systemServiceFlow.setName((String) map.get("name"));
            systemServiceFlow.setDescription((String) map.get("description"));
            systemServiceFlow.setPath((String) map.get("path"));
            systemServiceFlow.setChart((String) map.get("chart"));
            systemServiceFlow.setValid((Integer) map.get("valid"));
            systemServiceFlow.setCreateDate((Date) map.get("create_date"));
            systemServiceFlowList.add(systemServiceFlow);
        }
        return systemServiceFlowList;
    public void setMongoOperations(MongoOperations mongoOperations) {
        this.mongoOperations = mongoOperations;
    }
    public List<SystemServiceEndpoint> getSystemServiceEndpointList() throws Exception {
        List<SystemServiceEndpoint> systemServieEndpointList = new ArrayList<>();
        String sql = "select * from system_service_endpoint";
        List list = jdbcTemplate.queryForList(sql);
        Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
            Map map = (Map) iterator.next();
            SystemServiceEndpoint systemServiceEndpoint = new SystemServiceEndpoint();
            systemServiceEndpoint.setId((String) map.get("id"));
            systemServiceEndpoint.setCode((String) map.get("code"));
            systemServiceEndpoint.setName((String) map.get("name"));
            systemServieEndpointList.add(systemServiceEndpoint);
        }
        return systemServieEndpointList;
    public List<ServiceFlow> getServiceFlowList() {
        return mongoOperations.findAll(ServiceFlow.class);
    }
    public List<SystemServiceFlowClass> getSystemServiceFlowClassList() throws Exception {
        List<SystemServiceFlowClass> systemServiceFlowClassList = new ArrayList<>();;
        String sql = "select * from system_service_flow_class";
        List list = jdbcTemplate.queryForList(sql);
        Iterator iterator = list.iterator();
        SystemServiceFlowClass systemServiceFlowClass = null;
        while (iterator.hasNext()) {
            Map map = (Map) iterator.next();
            systemServiceFlowClass = new SystemServiceFlowClass();
            systemServiceFlowClass.setId((Integer) map.get("id"));
            systemServiceFlowClass.setClassName((String) map.get("class_name"));
            systemServiceFlowClass.setPackageName((String) map.get("package_name"));
            systemServiceFlowClass.setClassPath((String) map.get("class_path"));
            systemServiceFlowClass.setFlowId((Integer) map.get("flow_id"));
            systemServiceFlowClass.setType((String) map.get("type"));
            systemServiceFlowClassList.add(systemServiceFlowClass);
        }
        return systemServiceFlowClassList;
    public List<Endpoint> getEndPointList() {
        return mongoOperations.findAll(Endpoint.class);
    }
}

+ 0 - 187
hos-broker/src/main/java/com/yihu/hos/broker/models/SystemServiceEndpoint.java

@ -1,187 +0,0 @@
package com.yihu.hos.broker.models;
/**
 *
 * @author HZY
 * @vsrsion 1.0
 * Created at 2016/8/16.
 */
public class SystemServiceEndpoint implements java.io.Serializable {
    private String id;
    private String code;
    private String name;
    private String appId;
    private String version;
    private String description;
    private String endpoint;
    private String requestProtocol;
    private String requestParameterList;
    private String requesModule;
    private String requestMethod;
    private String responeResult;
    private String responeError;
    private Integer healthReportType;
    private String healthEndpoint;
    private Integer metricsReportType;
    private String metricsEndpoint;
    private Integer valid;
    private String requestFormat;
    public SystemServiceEndpoint() {
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getVersion() {
        return version;
    }
    public void setVersion(String version) {
        this.version = version;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public String getEndpoint() {
        return endpoint;
    }
    public void setEndpoint(String endpoint) {
        this.endpoint = endpoint;
    }
    public String getRequestProtocol() {
        return requestProtocol;
    }
    public void setRequestProtocol(String requestProtocol) {
        this.requestProtocol = requestProtocol;
    }
    public String getRequestParameterList() {
        return requestParameterList;
    }
    public void setRequestParameterList(String requestParameterList) {
        this.requestParameterList = requestParameterList;
    }
    public String getRequesModule() {
        return requesModule;
    }
    public void setRequesModule(String requesModule) {
        this.requesModule = requesModule;
    }
    public String getRequestMethod() {
        return requestMethod;
    }
    public void setRequestMethod(String requestMethod) {
        this.requestMethod = requestMethod;
    }
    public String getResponeResult() {
        return responeResult;
    }
    public void setResponeResult(String responeResult) {
        this.responeResult = responeResult;
    }
    public String getResponeError() {
        return responeError;
    }
    public void setResponeError(String responeError) {
        this.responeError = responeError;
    }
    public Integer getHealthReportType() {
        return healthReportType;
    }
    public void setHealthReportType(Integer healthReportType) {
        this.healthReportType = healthReportType;
    }
    public String getHealthEndpoint() {
        return healthEndpoint;
    }
    public void setHealthEndpoint(String healthEndpoint) {
        this.healthEndpoint = healthEndpoint;
    }
    public Integer getMetricsReportType() {
        return metricsReportType;
    }
    public void setMetricsReportType(Integer metricsReportType) {
        this.metricsReportType = metricsReportType;
    }
    public String getMetricsEndpoint() {
        return metricsEndpoint;
    }
    public void setMetricsEndpoint(String metricsEndpoint) {
        this.metricsEndpoint = metricsEndpoint;
    }
    public Integer getValid() {
        return valid;
    }
    public void setValid(Integer valid) {
        this.valid = valid;
    }
    public String getRequestFormat() {
        return requestFormat;
    }
    public void setRequestFormat(String requestFormat) {
        this.requestFormat = requestFormat;
    }
    public String getAppId() {
        return appId;
    }
    public void setAppId(String appId) {
        this.appId = appId;
    }
}

+ 0 - 113
hos-broker/src/main/java/com/yihu/hos/broker/models/SystemServiceFlow.java

@ -1,113 +0,0 @@
package com.yihu.hos.broker.models;
import java.util.Date;
import java.util.List;
/**
 *  系统管理-服务流程
 * @author HZY
 * @vsrsion 1.0
 * Created at 2016/8/19.
 */
public class SystemServiceFlow implements java.io.Serializable {
    private Integer id;
    private String code;
    private String name;
    private String path;//流程路径
    private String chart;//流程图路径
    private String description;
    private Integer valid;
    private Date createDate;
    private String fileType;
    private String flowClassList;
    private List<SystemServiceFlowClass> flowClassArray;
    public String getFileType() {
        return fileType;
    }
    public void setFileType(String fileType) {
        this.fileType = fileType;
    }
    public String getFlowClassList() {
        return flowClassList;
    }
    public void setFlowClassList(String flowClassList) {
        this.flowClassList = flowClassList;
    }
    public List<SystemServiceFlowClass> getFlowClassArray() {
        return flowClassArray;
    }
    public void setFlowClassArray(List<SystemServiceFlowClass> flowClassArray) {
        this.flowClassArray = flowClassArray;
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPath() {
        return path;
    }
    public void setPath(String path) {
        this.path = path;
    }
    public String getChart() {
        return chart;
    }
    public void setChart(String chart) {
        this.chart = chart;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public Integer getValid() {
        return valid;
    }
    public void setValid(Integer valid) {
        this.valid = valid;
    }
    public Date getCreateDate() {
        return createDate;
    }
    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }
}

+ 0 - 75
hos-broker/src/main/java/com/yihu/hos/broker/models/SystemServiceFlowClass.java

@ -1,75 +0,0 @@
package com.yihu.hos.broker.models;
/**
 *  系统服务流程class
 * @author HZY
 * @vsrsion 1.0
 * Created at 2016/8/19.
 */
public class SystemServiceFlowClass implements java.io.Serializable {
    private Integer id;
    private String className;
    private String packageName;
    private String classPath;
    private Integer flowId;
    private String type;
    //标识 是否有做文件上传
    private String isUpdate;
    public String getIsUpdate() {
        return isUpdate;
    }
    public void setIsUpdate(String isUpdate) {
        this.isUpdate = isUpdate;
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getClassName() {
        return className;
    }
    public void setClassName(String className) {
        this.className = className;
    }
    public String getPackageName() {
        return packageName;
    }
    public void setPackageName(String packageName) {
        this.packageName = packageName;
    }
    public String getClassPath() {
        return classPath;
    }
    public void setClassPath(String classPath) {
        this.classPath = classPath;
    }
    public Integer getFlowId() {
        return flowId;
    }
    public void setFlowId(Integer flowId) {
        this.flowId = flowId;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
}

+ 3 - 9
hos-broker/src/main/java/com/yihu/hos/broker/services/BrokerServerService.java

@ -13,7 +13,6 @@ import org.apache.http.client.methods.HttpDelete;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@ -28,7 +27,7 @@ import java.util.Map;
 * @created Airhead 2016/8/1.
 */
@Component("brokerServerService")
public class BrokerServerService implements DisposableBean {
public class BrokerServerService {
    private static boolean registered = false;
    @Autowired
    private ApplicationConfiguration applicationConfiguration;
@ -41,7 +40,7 @@ public class BrokerServerService implements DisposableBean {
    private String hostAddress;
    private int port;
    public void brokerServerOnline() {
    public void online() {
        try {
            hostName = InetAddressUtil.getLocalHostName();
            hostAddress = IPChoiceUtils.getSourceIP();
@ -71,7 +70,7 @@ public class BrokerServerService implements DisposableBean {
    /**
     * brokerServer下线时通知
     */
    public void brokerServerOffline() {
    public void offline() {
        try {
            ObjectMapper objectMapper = new ObjectMapper();
            ObjectNode objectNode = objectMapper.createObjectNode();
@ -95,9 +94,4 @@ public class BrokerServerService implements DisposableBean {
        }
    }
    @Override
    public void destroy() throws Exception {
//        this.brokerServerOffline();
    }
}

+ 7 - 7
hos-broker/src/main/java/com/yihu/hos/broker/services/ServiceMonitorService.java

@ -5,11 +5,11 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.mongodb.*;
import com.yihu.hos.broker.common.constants.MonitorConstant;
import com.yihu.hos.broker.daos.BrokerDao;
import com.yihu.hos.broker.models.SystemServiceEndpoint;
import com.yihu.hos.broker.models.SystemServiceFlow;
import com.yihu.hos.core.datatype.DateUtil;
import com.yihu.hos.core.datatype.NumberUtil;
import com.yihu.hos.core.datatype.StringUtil;
import com.yihu.hos.web.framework.model.bo.Endpoint;
import com.yihu.hos.web.framework.model.bo.ServiceFlow;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@ -47,14 +47,14 @@ public class ServiceMonitorService {
            Date beforeDate = new Date(now.getTime() - 60000);
            String beginTime = DateUtil.toString(beforeDate, DateUtil.DEFAULT_YMDHMSDATE_FORMAT);
            String endTime = DateUtil.toString(now, DateUtil.DEFAULT_YMDHMSDATE_FORMAT);
            List<SystemServiceFlow> flowList = brokerDao.getSystemServiceFlowList();
            List<SystemServiceEndpoint> endpointList = brokerDao.getSystemServiceEndpointList();
            List<ServiceFlow> flowList = brokerDao.getServiceFlowList();
            List<Endpoint> endpointList = brokerDao.getEndPointList();
            List<String> codeList = new ArrayList<>();
            for (SystemServiceFlow systemServiceFlow : flowList) {
                codeList.add(systemServiceFlow.getCode());
            for (ServiceFlow systemServiceFlow : flowList) {
                codeList.add(systemServiceFlow.getRouteCode());
            }
            for (SystemServiceEndpoint systemServiceEndpoint : endpointList) {
            for (Endpoint systemServiceEndpoint : endpointList) {
                codeList.add(systemServiceEndpoint.getCode());
            }

+ 15 - 0
hos-broker/src/main/java/com/yihu/hos/broker/services/camel/CamelStartBoot.java

@ -1,8 +1,10 @@
package com.yihu.hos.broker.services.camel;
import com.yihu.hos.broker.services.BrokerServerService;
import org.apache.camel.builder.RouteBuilder;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import java.net.URL;
import java.net.URLClassLoader;
@ -17,6 +19,13 @@ import java.util.concurrent.SynchronousQueue;
public class CamelStartBoot {
    private static Logger logger = LogManager.getLogger(ESBCamelService.class);
    private BrokerServerService brokerServerService;
    @Autowired
    public void setBrokerServerService(BrokerServerService brokerServerService) {
        this.brokerServerService = brokerServerService;
    }
    public void start() {
        logger.info("Apache Camel Context 启动...");
@ -42,10 +51,16 @@ public class CamelStartBoot {
                    SystemCamelContext.getContext().addRoutes(routeBuilder);
                }
            }
            brokerServerService.online();
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("Apache Camel Context 启动失败...");
        }
    }
    public void shutdown() {
        brokerServerService.offline();
    }
}

+ 39 - 39
hos-broker/src/main/resources/application.yml

@ -17,19 +17,19 @@ camel:
---
spring:
  profiles: dev
  datasource:
    driverClassName: com.mysql.jdbc.Driver
    url: jdbc:mysql://192.168.1.220:8066/hos2?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true
    username: hos
    password: 123456
    test-on-borrow: true
    validation-query: SELECT 1
    test-while-idle: true
    max-active: 30
    default-auto-commit: true
    max-idle: 30
    min-idle: 10
    initial-size: 10
#  datasource:
#    driverClassName: com.mysql.jdbc.Driver
#    url: jdbc:mysql://192.168.1.220:8066/hos2?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true
#    username: hos
#    password: 123456
#    test-on-borrow: true
#    validation-query: SELECT 1
#    test-while-idle: true
#    max-active: 30
#    default-auto-commit: true
#    max-idle: 30
#    min-idle: 10
#    initial-size: 10
  activemq:
      broker-url: tcp://172.19.103.57:61616
      user: admin
@ -70,19 +70,19 @@ hos:
---
spring:
  profiles: test
  datasource:
      driverClassName: com.mysql.jdbc.Driver
      url: jdbc:mysql://192.168.1.220:8066/hos1?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true
      username: hos
      password: 123456
      test-on-borrow: true
      validation-query: SELECT 1
      test-while-idle: true
      max-active: 30
      default-auto-commit: true
      max-idle: 30
      min-idle: 10
      initial-size: 10
#  datasource:
#      driverClassName: com.mysql.jdbc.Driver
#      url: jdbc:mysql://192.168.1.220:8066/hos1?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true
#      username: hos
#      password: 123456
#      test-on-borrow: true
#      validation-query: SELECT 1
#      test-while-idle: true
#      max-active: 30
#      default-auto-commit: true
#      max-idle: 30
#      min-idle: 10
#      initial-size: 10
  activemq:
      broker-url: tcp://172.19.103.58:61616
      user: admin
@ -113,19 +113,19 @@ hos:
---
spring:
  profiles: lfq
  datasource:
      driverClassName: com.mysql.jdbc.Driver
      url: jdbc:mysql://172.19.103.51:3306/db1?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true
      username: canal
      password: canal
      test-on-borrow: true
      validation-query: SELECT 1
      test-while-idle: true
      max-active: 30
      default-auto-commit: true
      max-idle: 30
      min-idle: 10
      initial-size: 10
#  datasource:
#      driverClassName: com.mysql.jdbc.Driver
#      url: jdbc:mysql://172.19.103.57:3306/db1?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true
#      username: esb
#      password: esb
#      test-on-borrow: true
#      validation-query: SELECT 1
#      test-while-idle: true
#      max-active: 30
#      default-auto-commit: true
#      max-idle: 30
#      min-idle: 10
#      initial-size: 10
  activemq:
      broker-url: tcp://172.19.103.58:61616
      user: admin

+ 10 - 3
hos-core/hos-core.iml

@ -9,6 +9,9 @@
    </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.4.6" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.4.6" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: net.lingala.zip4j:zip4j:1.3.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.0" level="project" />
    <orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3.1" level="project" />
@ -22,9 +25,13 @@
    <orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:3.4.1" level="project" />
    <orderEntry type="library" name="Maven: com.squareup.okio:okio:1.9.0" level="project" />
    <orderEntry type="library" name="Maven: com.belerweb:pinyin4j:2.5.0" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.4.6" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.4.6" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.5" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.5" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.0" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.8.5" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.8.5" level="project" />
    <orderEntry type="library" name="Maven: org.codehaus.woodstox:stax2-api:3.1.4" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.woodstox:woodstox-core:5.0.3" level="project" />
    <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.4.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.4.1" level="project" />

+ 12 - 0
hos-web-framework/src/main/java/com/yihu/hos/web/framework/constant/EndPointConstant.java

@ -0,0 +1,12 @@
package com.yihu.hos.web.framework.constant;
/**
 * @author Airhead
 * @since 2017/2/6.
 */
public interface EndPointConstant {
    String ZBUS_MQ = "endpoint";        //zbus消息,admin到arbiter上的通讯
    String ACTIVE_MQ = "runtime.endpoint";   //active-mq消息,arbiter到broker的通讯
    String CAMEL_COMPONENT = "event.endpoint";  //camel组件命名
    String CAMEL_ENDPOINT = CAMEL_COMPONENT + ":queue:" + ACTIVE_MQ;   //camel的Endpoint
}

+ 5 - 8
hos-web-framework/src/main/java/com/yihu/hos/web/framework/constant/ServiceFlowConstant.java

@ -5,10 +5,11 @@ package com.yihu.hos.web.framework.constant;
 * @since 2016/12/6.
 */
public interface ServiceFlowConstant {
    //流程-队列名称
    String FLOW_EVENT_QUEUE = "configuration.service.flow";
    String FLOW_EVENT_ENDPOINT = "service.flow.event:queue:configuration.service.flow";
    String ZBUS_MQ = "serviceFlow"; //zbus消息,admin到arbiter上的通讯
    String ACTIVE_MQ = "runtime.serviceFlow";   //active-mq消息,arbiter到broker的通讯
    String CAMEL_COMPONENT = "event.serviceFlow";  //camel组件命名
    String CAMEL_ENDPOINT = CAMEL_COMPONENT + ":queue:" + ACTIVE_MQ;   //camel的Endpoint
    
    //流程-模板类型
    String JAVA = "java";
    String CLASS = "class";
@ -37,10 +38,6 @@ public interface ServiceFlowConstant {
    String BROKER_SERVER_ON = "brokerServerOn"; //Broker启动
    String BROKER_SERVER_OFF = "brokerServerOff";//Broker停止
    //ArbiterServer MQ
    String SSH = "ssh";
    /* *******   shell相关  ******  */
    // shell 请求命令,对列名称
    String SHELL_EVENT_QUEUE = "configuration.service.shell";

+ 1 - 1
hos-arbiter/src/main/java/com/yihu/hos/arbiter/models/ArbiterServer.java

@ -1,4 +1,4 @@
package com.yihu.hos.arbiter.models;
package com.yihu.hos.web.framework.model.bo;
import com.yihu.hos.core.datatype.DateUtil;
import org.springframework.data.annotation.Id;

+ 1 - 1
hos-arbiter/src/main/java/com/yihu/hos/arbiter/models/BrokerServer.java

@ -1,4 +1,4 @@
package com.yihu.hos.arbiter.models;
package com.yihu.hos.web.framework.model.bo;
import com.yihu.hos.core.datatype.DateUtil;
import org.springframework.data.annotation.Id;

+ 12 - 2
hos-arbiter/src/main/java/com/yihu/hos/arbiter/models/Endpoint.java

@ -1,4 +1,4 @@
package com.yihu.hos.arbiter.models;
package com.yihu.hos.web.framework.model.bo;
import com.yihu.hos.core.datatype.DateUtil;
import org.springframework.data.annotation.Id;
@ -14,9 +14,11 @@ import java.util.Date;
public class Endpoint {
    @Id
    private String id;
    @Indexed
    private String code;
    private String name;
    private String endpoint;
    @Indexed(name = "updateTime_1", expireAfterSeconds = 30)
//    @Indexed(name = "updateTime_1", expireAfterSeconds = 30)
    private Date updateTime;
    private String event;
    private Integer healthCheckType;
@ -108,4 +110,12 @@ public class Endpoint {
    public void setMetricsURL(String metricsURL) {
        this.metricsURL = metricsURL;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
}

+ 36 - 0
hos-web-framework/src/main/java/com/yihu/hos/web/framework/model/bo/ServiceFlow.java

@ -15,6 +15,10 @@ public class ServiceFlow {
    @Id
    private String id;
    private String routeCode;
    private String name;
    private String chart;
    private String description;
    private Integer valid;
    private ArrayList<HandleFile> handleFiles;
    private Date updated;
    private String flowType;    //pull or push?
@ -76,6 +80,38 @@ public class ServiceFlow {
        this.flowType = flowType;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getChart() {
        return chart;
    }
    public void setChart(String chart) {
        this.chart = chart;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public Integer getValid() {
        return valid;
    }
    public void setValid(Integer valid) {
        this.valid = valid;
    }
    static public class HandleFile {
        private String usage;   //router or processor
        private String packageName;

+ 1 - 1
hos-web-framework/src/main/java/com/yihu/hos/web/framework/model/bo/ServiceShell.java

@ -15,7 +15,7 @@ public class ServiceShell {
    @Id
    private String id;
    private String name;
    private String type;    //send or acept?
    private String type;    //send or accept?
    private Date updated;
    private String fromHost;
    private String tenant;

+ 0 - 5
pom.xml

@ -122,11 +122,6 @@
            <artifactId>hibernate-core</artifactId>
            <version>4.3.11.Final</version>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-core</artifactId>
            <version>5.7.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
        <dependency>
            <groupId>org.aspectj</groupId>

+ 0 - 20
src/main/java/com/yihu/hos/ESBApplication.java

@ -2,22 +2,17 @@ package com.yihu.hos;
import com.yihu.hos.config.BeanConfig;
import com.yihu.hos.interceptor.WebMvcInterceptor;
import com.yihu.hos.web.framework.constant.ServiceFlowConstant;
import com.yihu.hos.web.framework.util.GridFSUtil;
import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.data.mongodb.gridfs.GridFsOperations;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.zbus.mq.server.MqServer;
import org.zbus.mq.server.MqServerConfig;
import javax.jms.Queue;
@SpringBootApplication
public class ESBApplication extends WebMvcConfigurerAdapter  implements CommandLineRunner {
    private BeanConfig configuration;
@ -42,21 +37,6 @@ public class ESBApplication extends WebMvcConfigurerAdapter  implements CommandL
        registry.addInterceptor(new WebMvcInterceptor());
    }
    @Bean
    public Queue queue() {
        return new ActiveMQQueue(ServiceFlowConstant.FLOW_EVENT_QUEUE);
    }
    @Bean(name = "shellQueue")
    public Queue shellQueue() {
        return new ActiveMQQueue(ServiceFlowConstant.SHELL_EVENT_QUEUE);
    }
    @Bean(name = "mycatQueue")
    public Queue mycatQueue() {
        return new ActiveMQQueue(ServiceFlowConstant.MYCAT_EVENT_QUEUE);
    }
    @Override
    public void run(String... strings) throws Exception {
        MqServerConfig config = new MqServerConfig();

+ 1 - 8
src/main/java/com/yihu/hos/services/ServiceFlowEventService.java

@ -8,13 +8,11 @@ import com.yihu.hos.interceptor.LocalContext;
import com.yihu.hos.web.framework.constant.ServiceFlowConstant;
import com.yihu.hos.web.framework.model.bo.ServiceFlow;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.stereotype.Component;
import org.zbus.broker.ZbusBroker;
import org.zbus.mq.Producer;
import org.zbus.net.http.Message;
import javax.jms.Queue;
import java.io.IOException;
/**
@ -23,11 +21,6 @@ import java.io.IOException;
@Component
public class ServiceFlowEventService {
    static final Logger logger = LoggerFactory.getLogger(ServiceFlowEventService.class);
    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;
    @Autowired
    private Queue queue;
    @Autowired
    private ObjectMapper objectMapper;
@ -89,7 +82,7 @@ public class ServiceFlowEventService {
            String msg = objectMapper.writeValueAsString(serviceFlow);
            String tenant = LocalContext.getContext().getAttachment(ContextAttributes.TENANT_NAME);
            Producer producer = new Producer(zbusBroker, ServiceFlowConstant.SSH + "@" + tenant);
            Producer producer = new Producer(zbusBroker, ServiceFlowConstant.ZBUS_MQ + "@" + tenant);
            producer.createMQ();    //确定为创建消息队列需要显示调用
            Message message = new Message();
            message.setHead("event", event);

+ 31 - 18
src/main/java/com/yihu/hos/services/ServiceMycatEventService.java

@ -7,16 +7,16 @@ import com.yihu.hos.core.log.LoggerFactory;
import com.yihu.hos.web.framework.constant.ServiceFlowConstant;
import com.yihu.hos.web.framework.model.bo.ServiceMycat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.stereotype.Component;
import org.zbus.broker.ZbusBroker;
import org.zbus.mq.Producer;
import org.zbus.net.http.Message;
import javax.annotation.Resource;
import javax.jms.Queue;
import java.util.HashMap;
import java.util.Map;
import java.io.IOException;
/**
 *  mycat配置文件操作 消息到MQ
 * mycat配置文件操作 消息到MQ
 *
 * @author HZY
 * @vsrsion 1.0
 * Created at 2017/1/5.
@ -24,33 +24,46 @@ import java.util.Map;
@Component
public class ServiceMycatEventService {
    static final Logger logger = LoggerFactory.getLogger(ServiceMycatEventService.class);
    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;
    @Resource(name = "mycatQueue")
    private Queue mycatQueue;
    @Autowired
    private ObjectMapper objectMapper;
    private ZbusBroker zbusBroker;
    @Autowired
    public void setZbusBroker(ZbusBroker zbusBroker) {
        this.zbusBroker = zbusBroker;
    }
    public void executeMycatConfig(ServiceMycat servviceMycat, String tenant) {
        this.sendMsg(ServiceFlowConstant.EXECUTE_MYCAT, servviceMycat,tenant);
        this.sendMsg(ServiceFlowConstant.EXECUTE_MYCAT, servviceMycat, tenant);
    }
    private void sendMsg(String event, ServiceMycat servviceMycat,String tenant) {
    private void sendMsg(String event, ServiceMycat servviceMycat, String tenant) {
        if (zbusBroker == null) {
            logger.error("zbusBroker is null.");
            return;
        }
        try {
            Map<String, Object> header = new HashMap<>();
            String msg = objectMapper.writeValueAsString(servviceMycat);
            header.put("tenant", tenant);
            header.put("event", event);
            this.jmsMessagingTemplate.convertAndSend(this.mycatQueue, msg, header);
            Producer producer = new Producer(zbusBroker, ServiceFlowConstant.MYCAT_UPDATE + "@" + tenant);
            producer.createMQ();    //确定为创建消息队列需要显示调用
            Message message = new Message();
            message.setHead("event", event);
            message.setHead("tenant", tenant);
            message.setMethod("POST");
            message.setBody(msg);
            producer.sendSync(message);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
            logger.error(e.getMessage());
        } catch (InterruptedException | IOException e) {
            e.printStackTrace();
        }
    }
}

+ 1 - 9
src/main/java/com/yihu/hos/services/ServiceShellEventService.java

@ -8,14 +8,11 @@ import com.yihu.hos.interceptor.LocalContext;
import com.yihu.hos.web.framework.constant.ServiceFlowConstant;
import com.yihu.hos.web.framework.model.bo.ServiceShell;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.stereotype.Component;
import org.zbus.broker.ZbusBroker;
import org.zbus.mq.Producer;
import org.zbus.net.http.Message;
import javax.annotation.Resource;
import javax.jms.Queue;
import java.io.IOException;
/**
@ -28,11 +25,6 @@ import java.io.IOException;
@Component
public class ServiceShellEventService {
    static final Logger logger = LoggerFactory.getLogger(ServiceShellEventService.class);
    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;
    @Resource(name = "shellQueue")
    private Queue shellQueue;
    @Autowired
    private ObjectMapper objectMapper;
@ -50,7 +42,7 @@ public class ServiceShellEventService {
    }
    public void serviceShellAcept(ServiceShell serviceShell) {
    public void serviceShellAccept(ServiceShell serviceShell) {
        serviceShell.setType(ServiceFlowConstant.ARBITER_SHELL_ACEPT);
        this.sendMsg(ServiceFlowConstant.ARBITER_SHELL_ACEPT, serviceShell);
    }

+ 23 - 16
src/main/resources/application.yml

@ -49,11 +49,11 @@ spring:
      password: esb
      authenticationDatabase: admin
      gridFsDatabase: dfs
  activemq:
    broker-url: tcp://172.19.103.57:61616?wireFormat.maxInactivityDuration=0
    user: admin
    password: admin
    pooled: false
#  activemq:
#    broker-url: tcp://172.19.103.57:61616?wireFormat.maxInactivityDuration=0
#    user: admin
#    password: admin
#    pooled: false
  aop:
    proxy-target-class: true
hos:
@ -95,11 +95,11 @@ spring:
      password: esb
      authenticationDatabase: admin
      gridFsDatabase: dfs
  activemq:
    broker-url: tcp://172.19.103.57:61616?wireFormat.maxInactivityDuration=0
    user: admin
    password: admin
    pooled: false
#  activemq:
#    broker-url: tcp://172.19.103.57:61616?wireFormat.maxInactivityDuration=0
#    user: admin
#    password: admin
#    pooled: false
  aop:
    proxy-target-class: true
---
@ -135,10 +135,17 @@ spring:
      password: esb
      authenticationDatabase: admin
      gridFsDatabase: dfs
  activemq:
    broker-url: tcp://172.19.103.57:61616?wireFormat.maxInactivityDuration=0
    user: admin
    password: admin
    pooled: false
#  activemq:
#    broker-url: tcp://172.19.103.57:61616?wireFormat.maxInactivityDuration=0
#    user: admin
#    password: admin
#    pooled: false
  aop:
    proxy-target-class: true
    proxy-target-class: true
hos:
  zbus:
    url: 192.168.131.119:15555
    port: 15555
    store: ./store
  mysql:
    filePath: e://learn.sql   #租户基础表 sql文件位置