فهرست منبع

将service的监控采集从hos-broker中转移到hos-camel,采集只需要有一台服务器来执行就可以了。

airhead 7 سال پیش
والد
کامیت
b8c5de7c81
22فایلهای تغییر یافته به همراه121 افزوده شده و 441 حذف شده
  1. 38 2
      README.md
  2. 18 20
      hos-broker/pom.xml
  3. 3 4
      hos-broker/src/main/java/com/yihu/hos/broker/HosBrokerApplication.java
  4. 2 2
      hos-broker/src/main/java/com/yihu/hos/broker/common/camelrouter/MonitorRouterBulider.java
  5. 0 3
      hos-broker/src/main/java/com/yihu/hos/broker/common/constants/MonitorConstant.java
  6. 0 31
      hos-broker/src/main/java/com/yihu/hos/broker/configurations/GatewayConfiguration.java
  7. 1 0
      hos-broker/src/main/java/com/yihu/hos/broker/controllers/ESBCamelController.java
  8. 2 2
      hos-broker/src/main/java/com/yihu/hos/broker/controllers/ESBMycatlController.java
  9. 1 0
      hos-broker/src/main/java/com/yihu/hos/broker/controllers/ESBShellController.java
  10. 0 66
      hos-broker/src/main/java/com/yihu/hos/broker/controllers/GatewayController.java
  11. 0 37
      hos-broker/src/main/java/com/yihu/hos/broker/models/GatewayRequestResult.java
  12. 0 86
      hos-broker/src/main/java/com/yihu/hos/broker/models/GatewayResponseResult.java
  13. 0 25
      hos-broker/src/main/java/com/yihu/hos/broker/services/CenterMongoService.java
  14. 0 96
      hos-broker/src/main/java/com/yihu/hos/broker/services/GatewayService.java
  15. 1 6
      hos-broker/src/main/resources/application.yml
  16. 3 3
      hos-broker/src/main/resources/logback-spring.xml
  17. 0 26
      hos-broker/src/test/java/com/yihu/hos/broker/services/ServiceMonitorServiceTest.java
  18. 13 0
      hos-camel2/pom.xml
  19. 5 2
      hos-camel2/src/main/java/camel/HosCamelApplication.java
  20. 29 17
      hos-camel2/src/main/java/camel/central/gateway/processor/GatewayProcessor.java
  21. 5 5
      hos-camel2/src/main/resources/application.yml
  22. 0 8
      hos-parent/pom.xml

+ 38 - 2
README.md

@ -1,4 +1,40 @@
# eip
# 简介
信息共享交换平台(CoSharp)是一个面向医疗服务的智能化集成开发平台,定位于实现和推动医疗机构内外异构系统间的数据和服务信息共享与交换,实现网内外系统的互联互通。信息共享交换平台通过提供标准转换和各语言开发相关SDK或语言无关的API来规范开发流程,解耦应用间的依赖,降低系统的集成的难度,缩短时间周期和减少成本
信息共享交换平台(CoSharp)是一个面向医疗服务的智能化集成开发平台,定位于实现和推动医疗机构内外异构系统间的数据和服务信息共享与交换,实现网内外系统的互联互通。
信息共享交换平台通过提供标准转换和各语言开发相关SDK或语言无关的API来规范开发流程,解耦应用间的依赖,降低系统的集成的难度,缩短时间周期和减少成本。
# 项目结构
[代码位置](http://192.168.1.220:10080/Cosharp/eip)
模块| 说明
---|---
hos-parent | 依赖Jar版本管理
hos-core | 通用组件
hos-web-framework | 业务相关通用组件
hos-logger | 日志服务组件等
hos-dfs | 基于Mongo GirdFS的简易文件服务器
hos-arbiter | 服务协调组件
hos-broker | 服务运行组件
hos-admin | 控制管理 
hos-central-rest | 内置服务
hos-rest | 内置服务
hos-camel2| 服务编排实现模块
hos-docker | Docker化模块
sdk | 开发包
## 注意事项
通过dependencyManagement方式管理引入工程中类库及版本,其他模块只指定依赖,不设置版本号。以保证统一。
# 系统结构
系统 | 组成模块(只列可运行模块)
---|---
中心控制系统 | hos-admin,hos-dfs
中心交换系统 | hos-logger,hos-arbiter,hos-broker,hos-rest
前置一体机 | hos-logger,hos-arbiter,hos-broker,hos-rest
# 代码规范
具体内容参见本目录下的[Specification/Java代码规范.md](https://note.youdao.com/share/?token=48E8E5A8A08A44DA96BB8FDCB9390678&gid=35423570)
# 开发过程
开发过程中,如果工程最终是要通过tomcat容器进行部署的话;在功能模块完成后最好能够在在idea中使用集成的外置tomcat容器运行测试下,如此可以模拟生产环境的运行状态;

+ 18 - 20
hos-broker/pom.xml

@ -16,18 +16,25 @@
    <name>hos-broker</name>
    <description>ESB服务运行模块</description>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-netflix</artifactId>
                <version>1.2.6.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <!-- spring-boot -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
@ -40,12 +47,6 @@
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
@ -63,10 +64,10 @@
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <!--<dependency>-->
        <!--<groupId>org.springframework.cloud</groupId>-->
        <!--<artifactId>spring-cloud-starter-eureka</artifactId>-->
        <!--</dependency>-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>
        <!-- sigar -->
        <dependency>
@ -133,11 +134,8 @@
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-restlet</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>
        <!-- camel end -->
        <dependency>
            <groupId>com.yihu.hos</groupId>
            <artifactId>hos-core</artifactId>

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

@ -19,6 +19,7 @@ import java.util.concurrent.Executors;
@EnableScheduling
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
@EnableAsync
//@EnableEurekaClient
public class HosBrokerApplication extends SpringBootServletInitializer implements CommandLineRunner {
    @Autowired
    private GridFsOperations operations;
@ -27,8 +28,7 @@ public class HosBrokerApplication extends SpringBootServletInitializer implement
    private ExecutorService executorService = Executors.newSingleThreadExecutor();
    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(HosBrokerApplication.class);
        app.run(args);
        SpringApplication.run(HosBrokerApplication.class, args);
    }
    @Override
@ -49,7 +49,6 @@ public class HosBrokerApplication extends SpringBootServletInitializer implement
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        builder.sources(this.getClass());
        return super.configure(builder);
        return builder.sources(HosBrokerApplication.class);
    }
}

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

@ -10,7 +10,7 @@ import org.springframework.stereotype.Component;
public class MonitorRouterBulider extends RouteBuilder {
    @Override
    public void configure() throws Exception {
        from("quartz://monitor/monitorTimer?cron=0 0/1 * * * ?")
                .to("bean:serverMonitorService?method=collectEnvHealth");
//        from("quartz://monitor/monitorTimer?cron=0 0/1 * * * ?")
//                .to("bean:serverMonitorService?method=collectEnvHealth");
    }
}

+ 0 - 3
hos-broker/src/main/java/com/yihu/hos/broker/common/constants/MonitorConstant.java

@ -8,9 +8,6 @@ package com.yihu.hos.broker.common.constants;
public interface MonitorConstant {
    String DATABASE = "log";
    String SERVER = "server";
    String SERVICE = "service";
    String SERVICE_METRICS = "serviceMetrics";
    String BUSINESS = "business";
    String HOST = "host";     //这个是否需要,可以在runtime库中使用brokerServer?
    String CPU = "cpu";

+ 0 - 31
hos-broker/src/main/java/com/yihu/hos/broker/configurations/GatewayConfiguration.java

@ -1,31 +0,0 @@
package com.yihu.hos.broker.configurations;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
/**
 * @created Airhead 2016/8/4.
 */
@Configuration
public class GatewayConfiguration {
    @Value("${spring.gateway.ip}")
    private String ip;
    @Value("${spring.gateway.port}")
    private String port;
    public String getIp() {
        return ip;
    }
    public void setIp(String ip) {
        this.ip = ip;
    }
    public String getPort() {
        return port;
    }
    public void setPort(String port) {
        this.port = port;
    }
}

+ 1 - 0
hos-broker/src/main/java/com/yihu/hos/broker/controllers/ESBCamelController.java

@ -14,6 +14,7 @@ import java.util.List;
import java.util.Map;
/**
 * 流程管理
 * Created by lingfeng on 2016/8/4.
 */
@RestController

+ 2 - 2
hos-broker/src/main/java/com/yihu/hos/broker/controllers/ESBMycatlController.java

@ -11,15 +11,15 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
/**
 * MyCat管理
 * Created by lingfeng on 2016/8/4.
 */
@RestController
@RequestMapping("/esb")
public class ESBMycatlController {
public class ESBMycatController {
    @Autowired
    private MycatConfigService mycatService;
    @RequestMapping(value = "/serviceMycat/update", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
    @ApiOperation(value = "修改mycat", produces = "application/json", notes = "修改mycat的配置文件,并重新加载配置")
    public Result updateMycat(

+ 1 - 0
hos-broker/src/main/java/com/yihu/hos/broker/controllers/ESBShellController.java

@ -14,6 +14,7 @@ import javax.annotation.Resource;
/**
 * @author HZY
 * @vsrsion 1.0
 * SSH命令控制
 * Created at 2017/1/6.
 */
@RestController

+ 0 - 66
hos-broker/src/main/java/com/yihu/hos/broker/controllers/GatewayController.java

@ -1,66 +0,0 @@
package com.yihu.hos.broker.controllers;
import com.yihu.hos.core.constants.ExceptionConstant;
import com.yihu.hos.core.exception.ESBException;
import com.yihu.hos.broker.models.GatewayRequestResult;
import com.yihu.hos.broker.models.GatewayResponseResult;
import com.yihu.hos.broker.services.GatewayService;
import io.swagger.annotations.ApiParam;
import net.sf.json.JSONObject;
import org.apache.commons.beanutils.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.Writer;
@RestController
@RequestMapping("/esb")
public class GatewayController {
    private final GatewayService gatewayService;
    @Autowired
    public GatewayController(GatewayService gatewayService) {
        this.gatewayService = gatewayService;
    }
    @RequestMapping(value = "/camel.central.gateway", method = RequestMethod.POST)
    public void transfer(HttpServletRequest request, HttpServletResponse response) throws Exception {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("application/json;charset=UTF-8");
        Writer writer = response.getWriter();
        response.setCharacterEncoding("UTF-8");
        String returnString;
        String resultData;
        GatewayRequestResult gatewayRequestResult = new GatewayRequestResult();
        try {
            BeanUtils.populate(gatewayRequestResult, request.getParameterMap());
            //---end
            gatewayService.paramsIsNotNull(gatewayRequestResult.getApi());
            resultData = gatewayService.getResultData(gatewayRequestResult);
            returnString = resultData;
        } catch (Exception e) {
            e.printStackTrace();
            if (e instanceof ESBException) {
                ESBException esbException = (ESBException) e;
                returnString = JSONObject.fromObject(GatewayResponseResult.getError(esbException.getExceptionCode(), esbException.getExceptionMessage())).toString();
            } else {
                returnString = JSONObject.fromObject(GatewayResponseResult.getError(ExceptionConstant.EHREXCEPTION_SYSTEMEXCEPTION, ExceptionConstant.EHREXCEPTION_SYSTEMEXCEPTION_MESSAGE)).toString();
            }
        }
        writer.write(returnString);
        writer.flush();
        writer.close();
    }
    @RequestMapping(value = "/webservice/host", method = RequestMethod.GET)
    public String wsHost(
            @ApiParam(name = "serviceName", value = "微服务名", required = true)
            @RequestParam String serviceName) throws Exception {
        String uri = gatewayService.serviceUrl(serviceName);
        return uri;
    }
}

+ 0 - 37
hos-broker/src/main/java/com/yihu/hos/broker/models/GatewayRequestResult.java

@ -1,37 +0,0 @@
package com.yihu.hos.broker.models;
import java.io.Serializable;
/**
 * Created by chenweida on 2016/1/27.
 */
public class GatewayRequestResult implements Serializable {
    private String api;
    private String param;
    //---end
    public String getApi() {
        return api;
    }
    public void setApi(String api) {
        this.api = api;
    }
    public String getParam() {
        return param;
    }
    public void setParam(String param) {
        this.param = param;
    }
    @Override
    public String toString() {
        return "{" +
                "api:'" + api + '\'' +
                ", param:'" + param + '\'' +
                '}';
    }
}

+ 0 - 86
hos-broker/src/main/java/com/yihu/hos/broker/models/GatewayResponseResult.java

@ -1,86 +0,0 @@
package com.yihu.hos.broker.models;
import com.yihu.hos.core.constants.ExceptionConstant;
import java.io.Serializable;
/**
 * Created by chenweida on 2016/1/27.
 */
public class GatewayResponseResult implements Serializable {
    private String responseCode = ExceptionConstant.EHREXCEPTION_SUCCESS;
    private String responseMessage = "";
    private String responseParams;
    private String requestId;
    private Object responseResult;
    public String getResponseCode() {
        return responseCode;
    }
    public void setResponseCode(String responseCode) {
        this.responseCode = responseCode;
    }
    public String getResponseMessage() {
        return responseMessage;
    }
    public void setResponseMessage(String responseMessage) {
        this.responseMessage = responseMessage;
    }
    public String getResponseParams() {
        return responseParams;
    }
    public void setResponseParams(String responseParams) {
        this.responseParams = responseParams;
    }
    public String getRequestId() {
        return requestId;
    }
    public void setRequestId(String requestId) {
        this.requestId = requestId;
    }
    public static GatewayResponseResult getSuccess(String responseParams, String requestId) {
        GatewayResponseResult responseModel = new GatewayResponseResult();
        responseModel.setRequestId(requestId);
        responseModel.setResponseParams(responseParams);
        return responseModel;
    }
    public static GatewayResponseResult getSuccess(String responseParams) {
        GatewayResponseResult responseModel = new GatewayResponseResult();
        responseModel.setResponseParams(responseParams);
        return responseModel;
    }
    public static GatewayResponseResult getError(String respCode, String respMessage) {
        GatewayResponseResult responseModel = new GatewayResponseResult();
        responseModel.setResponseCode(respCode);
        responseModel.setResponseMessage(respMessage);
        return responseModel;
    }
    @Override
    public String toString() {
        return "{" +
                "responseCode:'" + responseCode + '\'' +
                ", responseMessage:'" + responseMessage + '\'' +
                ", responseParams:'" + responseParams + '\'' +
                ", requestId:'" + requestId + '\'' +
                '}';
    }
    public Object getResponseResult() {
        return responseResult;
    }
    public void setResponseResult(Object responseResult) {
        this.responseResult = responseResult;
    }
}

+ 0 - 25
hos-broker/src/main/java/com/yihu/hos/broker/services/CenterMongoService.java

@ -1,25 +0,0 @@
package com.yihu.hos.broker.services;
import com.yihu.hos.core.http.HttpClientKit;
import com.yihu.hos.core.log.Logger;
import com.yihu.hos.core.log.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
@Component("centerMongoService")
public class CenterMongoService {
    private static final Logger logger = LoggerFactory.getLogger(CenterMongoService.class);
    @Value("${hos.rest.url}")
    private String url;
    public void save(String msg) {
        Map<String, String> params = new HashMap<>();
        params.put("msg", msg);
        String returnData = HttpClientKit.post(url + "/metric/saveToMongo", params).getBody();
        System.out.println(returnData);
    }
}

+ 0 - 96
hos-broker/src/main/java/com/yihu/hos/broker/services/GatewayService.java

@ -1,96 +0,0 @@
package com.yihu.hos.broker.services;
import com.yihu.hos.broker.configurations.GatewayConfiguration;
import com.yihu.hos.core.constants.CoreConstant;
import com.yihu.hos.core.constants.ExceptionConstant;
import com.yihu.hos.core.exception.ESBException;
import com.yihu.hos.core.http.HttpClientKit;
import com.yihu.hos.broker.models.GatewayRequestResult;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
 * @author chenweida on 2016/1/27.
 */
@Service
public class GatewayService {
    private final GatewayConfiguration gatewayConfiguration;
    @Autowired
    public GatewayService(GatewayConfiguration gatewayConfiguration) {
        this.gatewayConfiguration = gatewayConfiguration;
    }
    @Autowired
    private DiscoveryClient discoveryClient;
    /**
     * 通过服务名获取微服务地址
     *
     * @param serviceName 微服务名
     * @return
     */
    public String serviceUrl(String serviceName) {
        List<ServiceInstance> instances = discoveryClient.getInstances(serviceName);
        if (instances != null && !instances.isEmpty()) {
            int index = (int) (Math.random() * instances.size());//随机获取其中一个服务
            ServiceInstance serviceInstance = instances.get(index);
            return serviceInstance.getUri().toString();
        } else {
            return null;
        }
    }
    public String getResultData(GatewayRequestResult gatewayRequestResult) throws ESBException {
        String returnData;
        //拼凑出URL
        String url = getUrl(gatewayConfiguration.getIp(), gatewayConfiguration.getPort(), gatewayRequestResult.getApi());
        try {
            Map<String, String> params = getParams(gatewayRequestResult.getParam());
            returnData = HttpClientKit.post(url, params).getBody();
            System.out.print(returnData);
        } catch (Exception e) {
            throw new ESBException(ExceptionConstant.EHREXCEPTION_SYSTEM_TRANSFER, ExceptionConstant.EHREXCEPTION_SYSTEM_TRANSFER_MESSAGE);
        }
        return returnData;
    }
    public void paramsIsNotNull(Object params) throws ESBException {
        if (StringUtils.isEmpty(params)) {
            throw new ESBException(ExceptionConstant.EHREXCEPTION_BUSINESS_PARAMS_EXCEPTION, ExceptionConstant.EHREXCEPTION_BUSINESS_PARAMS_EXCEPTION_MESSAGE);
        }
    }
    private String getUrl(String ip, String port, String api) {
        String url = CoreConstant.HTTP + CoreConstant.COLON + CoreConstant.BACKSLASH +
                CoreConstant.BACKSLASH + ip + CoreConstant.COLON + port +
                CoreConstant.BACKSLASH + api;
        return url;
    }
    private Map<String, String> getParams(String jsonParam) {
        JSONObject object = JSONObject.fromObject(jsonParam);
        Map<String, String> params = new HashMap<>();
        Iterator<?> keys = object.keys();
        while (keys.hasNext()) {
            String key = (String) keys.next();
            String value = object.getString(key);
            params.put(key, value);
        }
        return params;
    }
}

+ 1 - 6
hos-broker/src/main/resources/application.yml

@ -30,13 +30,11 @@ spring:
      authenticationDatabase: admin
      database: log
      gridFsDatabase: dfs
  camel.gateway:
    ip: localhost
    port: 8066
eureka:
  client:
    serviceUrl:
      defaultZone: http://192.168.1.221:8761/eureka/
log:
  path: D://logs/logback/dev
  level: info
@ -77,9 +75,6 @@ spring:
      authenticationDatabase: admin
      database: log
      gridFsDatabase: dfs
  camel.gateway:
    ip: localhost
    port: 8066
eureka:
  client:
    serviceUrl:

+ 3 - 3
hos-broker/src/main/resources/logback-spring.xml

@ -18,9 +18,9 @@
    </appender>
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">    
        <file>${LOG_HOME}/output.log</file>        
        <file>output.log</file>        
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <fileNamePattern>{LOG_HOME}/output.%d{yyyy-MM-dd_HH_mm}.%i.log.zip</fileNamePattern>
            <fileNamePattern>output.%d{yyyy-MM-dd_HH_mm}.%i.log.zip</fileNamePattern>
            <minIndex>1</minIndex>
            <maxIndex>3</maxIndex>
        </rollingPolicy>
@ -55,7 +55,7 @@
            <appender-ref ref="queue"/>
        </logger>
        <logger name="org.hibernate" level="WARN"/>
        <logger name="org.springframework" level="WARN"/>
        <!--<logger name="org.springframework" level="INFO"/>-->
        <logger name="springfox.documentation" level="WARN"/>
        <root level="INFO">

+ 0 - 26
hos-broker/src/test/java/com/yihu/hos/broker/services/ServiceMonitorServiceTest.java

@ -1,26 +0,0 @@
package com.yihu.hos.broker.services;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import static org.junit.Assert.*;
/**
 * Created by l4qiang on 2017-06-19.
 */
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
@WebAppConfiguration
public class ServiceMonitorServiceTest {
    @Autowired
    private ServiceMonitorService serviceMonitorService;
    @Test
    public void monitor() throws Exception {
        serviceMonitorService.monitor();
    }
}

+ 13 - 0
hos-camel2/pom.xml

@ -32,6 +32,14 @@
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-netflix</artifactId>
                <version>1.2.6.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
@ -81,6 +89,11 @@
            <artifactId>camel-quartz</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-mongodb</artifactId>
        </dependency>
        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>

+ 5 - 2
hos-camel2/src/main/java/camel/HosCamelApplication.java

@ -8,12 +8,15 @@ 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.cloud.netflix.eureka.EnableEurekaClient;
/**
 * Basic Spring Boot application.
 */
@SpringBootApplication
//@EnableEurekaClient
@EnableEurekaClient
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
public class HosCamelApplication implements CommandLineRunner {
    @Autowired
    private CamelContext context;

+ 29 - 17
hos-camel2/src/main/java/camel/central/gateway/processor/GatewayProcessor.java

@ -8,6 +8,7 @@ import com.yihu.hos.core.http.HttpClientKit;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.stereotype.Component;
@ -18,6 +19,7 @@ import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@ -180,13 +182,12 @@ public class GatewayProcessor implements Processor {
            methodMap.put("3", "put");
            JsonNode jsonNode = objectMapper.readValue(param, JsonNode.class);
//            String url = serviceUrl(appApi.getMicroServiceName());
            String url = brokerUrl;
            String url = serviceUrl(appApi.getMicroServiceName());
            if (StringUtil.isEmpty(url)) {
                return "";
                url = appApi.getMicroServiceUri();
            }
            final String[] endPoint = {"restlet:" + appApi.getMicroServiceUri() + appApi.getMsMethodName() + "?socketTimeout=60000&connectionTimeout=60000&restletMethod=" + methodMap.get(appApi.getMethod())};
            final String[] endPoint = {"restlet:" + url + appApi.getMsMethodName() + "?socketTimeout=60000&connectionTimeout=60000&restletMethod=" + methodMap.get(appApi.getMethod())};
            final String[] body = {""};
            appApi.getParameters().forEach(p -> {
                JsonNode paramNode = jsonNode.get(p.getName());
@ -274,24 +275,35 @@ public class GatewayProcessor implements Processor {
     * @return
     */
    public String serviceUrl(String serviceName) {
        HTTPResponse response = HttpClientKit.get(brokerUrl + "/esb/webservice/host?serviceName=" + serviceName);
        if (response.getStatusCode() != 200) {
            System.out.println("获取服务地址请求失败!");
            return "";
        List<ServiceInstance> instances = discoveryClient.getInstances(serviceName);
        if (instances != null && !instances.isEmpty()) {
            int index = (int) (Math.random() * instances.size());   //随机获取其中一个服务
            ServiceInstance serviceInstance = instances.get(index);
            return serviceInstance.getUri().toString();
        } else {
            return null;
        }
        return response.getBody();
    }
    public String nodeValue(JsonNode node){
    public String nodeValue(JsonNode node) {
        Object value = null;
        try {
            switch (node.getNodeType().name()){
                case "NUMBER" : value = node.asInt();break;
                case "STRING" : value = node.asText();break;
                case "BOOLEAN" : value = node.asBoolean();break;
                case "OBJECT" : value = node.toString();break;
                default:value = "";break;
            switch (node.getNodeType().name()) {
                case "NUMBER":
                    value = node.asInt();
                    break;
                case "STRING":
                    value = node.asText();
                    break;
                case "BOOLEAN":
                    value = node.asBoolean();
                    break;
                case "OBJECT":
                    value = node.toString();
                    break;
                default:
                    value = "";
                    break;
            }
            return URLEncoder.encode(value.toString(), "UTF-8");
        } catch (UnsupportedEncodingException e) {

+ 5 - 5
hos-camel2/src/main/resources/application.yml

@ -8,10 +8,6 @@ server:
---
spring:
  profiles: dev
eureka:
  client:
    serviceUrl:
      defaultZone: http://192.168.1.221:8761/eureka/
  data:
    mongodb:
      host: 172.19.103.57
@ -20,4 +16,8 @@ eureka:
      password: esb
      authenticationDatabase: admin
      database: log
      gridFsDatabase: dfs
      gridFsDatabase: dfs
eureka:
  client:
    serviceUrl:
      defaultZone: http://192.168.1.221:8761/eureka/

+ 0 - 8
hos-parent/pom.xml

@ -248,14 +248,6 @@
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Camden.SR6</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- Camel -->
            <dependency>
                <groupId>org.apache.camel</groupId>