Merge remote-tracking branch 'origin/master'

yun-zuoyi
yunhao.wang 7 years ago
commit 129de18e45

@ -1,127 +1,127 @@
//package cn.estsh.i3plus.core.apiservice.controller; package cn.estsh.i3plus.core.apiservice.controller;
//
//import cn.estsh.i3plus.icloud.core.sdk.ICoreDemoCloud; import cn.estsh.i3plus.icloud.core.sdk.ICoreDemoCloud;
//import cn.estsh.i3plus.icloud.wms.sdk.IWmsDemoCloud; import cn.estsh.i3plus.icloud.wms.sdk.IWmsDemoCloud;
//import cn.estsh.i3plus.pojo.base.bean.BaseBean; import cn.estsh.i3plus.pojo.base.bean.BaseBean;
//import cn.estsh.i3plus.pojo.base.bean.BaseModelBean; import cn.estsh.i3plus.pojo.base.bean.BaseModelBean;
//import cn.estsh.i3plus.pojo.base.bean.BaseResultBean; import cn.estsh.i3plus.pojo.base.bean.BaseResultBean;
//import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.Pager;
//import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
//import cn.estsh.i3plus.pojo.platform.bean.SysRole; import cn.estsh.i3plus.pojo.platform.bean.SysRole;
//import cn.estsh.i3plus.pojo.platform.bean.SysUser; import cn.estsh.i3plus.pojo.platform.bean.SysUser;
//import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ResultBean;
//import io.swagger.annotations.Api; import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
//import org.slf4j.Logger; import org.slf4j.Logger;
//import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
//import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
//
//import java.util.Map; import java.util.Map;
//
//@RestController @RestController
//@RequestMapping("/impp/cloud") @RequestMapping("/impp/cloud")
//@Api(description="分布式服务测试") @Api(description="分布式服务测试")
//public class DemoCloudController { public class DemoCloudController {
//
// private static final Logger LOGGER = LoggerFactory.getLogger(DemoCloudController.class); private static final Logger LOGGER = LoggerFactory.getLogger(DemoCloudController.class);
//
// @Value("${server.port}") @Value("${server.port}")
// private String serverPort; private String serverPort;
//
// @Value("${eureka.instance.ip-address}") @Value("${eureka.instance.ip-address}")
// private String ipAddress; private String ipAddress;
//
// @Autowired @Autowired
// ICoreDemoCloud iCoreDemoCloud; ICoreDemoCloud iCoreDemoCloud;
//
// @Autowired @Autowired
// IWmsDemoCloud iWmsDemoCloud; IWmsDemoCloud iWmsDemoCloud;
//
// @GetMapping(value="/test") @GetMapping(value="/test")
// @ApiOperation(value="core测试",notes = "core测试") @ApiOperation(value="core测试",notes = "core测试")
// public ResultBean testCore(String test) { public ResultBean testCore(String test) {
// LOGGER.info("{}{}【impp-core接受数据】{}",ipAddress,serverPort,test); LOGGER.info("{}{}【impp-core接受数据】{}",ipAddress,serverPort,test);
// return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// } }
//
// @GetMapping(value="/test-wms") @GetMapping(value="/test-wms")
// @ApiOperation(value="wms测试",notes = "wms测试") @ApiOperation(value="wms测试",notes = "wms测试")
// public ResultBean testWms(String test) { public ResultBean testWms(String test) {
// LOGGER.info("【{}{}impp-core接受数据 -> wms】{}",ipAddress,serverPort,test); LOGGER.info("【{}{}impp-core接受数据 -> wms】{}",ipAddress,serverPort,test);
//
// BaseResultBean result = iWmsDemoCloud.testWms(test); BaseResultBean result = iWmsDemoCloud.testWms(test);
// if(result.isSuccess()){ if(result.isSuccess()){
// return ResultBean.success("wms返回" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("wms返回" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }else{ }else{
// LOGGER.error("无法调用wms服务{}",result.getErrorMsg()); LOGGER.error("无法调用wms服务{}",result.getErrorMsg());
// return ResultBean.fail("调用wms服务出错" + result.getErrorMsg()); return ResultBean.fail("调用wms服务出错" + result.getErrorMsg());
// } }
// } }
//
// @GetMapping(value="/test-get") @GetMapping(value="/test-get")
// @ApiOperation(value="测试get",notes = "测试get") @ApiOperation(value="测试get",notes = "测试get")
// public ResultBean testFeignGet(String test) { public ResultBean testFeignGet(String test) {
// LOGGER.info("【impp-core-get接受数据】{}" ,test); LOGGER.info("【impp-core-get接受数据】{}" ,test);
// return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// } }
//
// @PostMapping(value="/test-post") @PostMapping(value="/test-post")
// @ApiOperation(value="测试post",notes = "测试post") @ApiOperation(value="测试post",notes = "测试post")
// public ResultBean testFeignPost(String test) { public ResultBean testFeignPost(String test) {
// LOGGER.info("【impp-core-post接受数据】{}" ,test); LOGGER.info("【impp-core-post接受数据】{}" ,test);
// return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// } }
//
// @PutMapping(value="/test-put") @PutMapping(value="/test-put")
// @ApiOperation(value="put接受数据",notes = "put接受数据") @ApiOperation(value="put接受数据",notes = "put接受数据")
// public ResultBean testPut(String test,String name) { public ResultBean testPut(String test,String name) {
// LOGGER.info("【impp-core-put接受数据】param1:{},param2:{}", test,name); LOGGER.info("【impp-core-put接受数据】param1:{},param2:{}", test,name);
// return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// } }
//
// @DeleteMapping(value="/test-delete") @DeleteMapping(value="/test-delete")
// @ApiOperation(value="delete接受数据",notes = "delete接受数据") @ApiOperation(value="delete接受数据",notes = "delete接受数据")
// public ResultBean testDelete( public ResultBean testDelete(
// @RequestBody Pager pager, @RequestBody Pager pager,
// @RequestParam("test") String test) { @RequestParam("test") String test) {
// LOGGER.info("【impp-core-delete接受数据】pager:{},test:{}",pager,test); LOGGER.info("【impp-core-delete接受数据】pager:{},test:{}",pager,test);
// return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// } }
//
// @PutMapping(value="/test-cloud-put") @PutMapping(value="/test-cloud-put")
// @ApiOperation(value="测试cloudput",notes = "测试cloudput") @ApiOperation(value="测试cloudput",notes = "测试cloudput")
// public ResultBean putTestCloud(String test,String name) { public ResultBean putTestCloud(String test,String name) {
// LOGGER.info("【impp-core-put接受数据】test:{},name:{}",test,name); LOGGER.info("【impp-core-put接受数据】test:{},name:{}",test,name);
// return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// } }
//
// @PostMapping(value="/test-object") @PostMapping(value="/test-object")
// @ApiOperation(value="测试单对象") @ApiOperation(value="测试单对象")
// public ResultBean testObject(@RequestBody Pager pager) { public ResultBean testObject(@RequestBody Pager pager) {
// LOGGER.info("【impp-core-object接受数据】{}" ,pager); LOGGER.info("【impp-core-object接受数据】{}" ,pager);
// return ResultBean.success("返回:" + pager).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("返回:" + pager).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// } }
//
// @PostMapping(value="/test-map") @PostMapping(value="/test-map")
// @ApiOperation(value="测试get",notes = "测试get") @ApiOperation(value="测试get",notes = "测试get")
// public ResultBean testFeignMap(@RequestBody Map<String,String> map) { public ResultBean testFeignMap(@RequestBody Map<String,String> map) {
// LOGGER.info("【impp-core-map接受数据】{}" ,map); LOGGER.info("【impp-core-map接受数据】{}" ,map);
// return ResultBean.success("返回:" + map).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("返回:" + map).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// } }
//
// @PostMapping(value="/test-arr") @PostMapping(value="/test-arr")
// @ApiOperation(value="测试arr",notes = "测试arr") @ApiOperation(value="测试arr",notes = "测试arr")
// public ResultBean testFeignArr(@RequestBody String[] arr) { public ResultBean testFeignArr(@RequestBody String[] arr) {
// LOGGER.info("【impp-core-arr接受数据】{}" ,arr); LOGGER.info("【impp-core-arr接受数据】{}" ,arr);
// return ResultBean.success("返回:" + arr).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("返回:" + arr).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// } }
//
// @PostMapping(value="/test-more-object") @PostMapping(value="/test-more-object")
// @ApiOperation(value="测试多对象模型",notes = "测试多对象模型") @ApiOperation(value="测试多对象模型",notes = "测试多对象模型")
// public ResultBean testFeignMoreObj(@RequestBody BaseModelBean<SysRole> roleBean) { public ResultBean testFeignMoreObj(@RequestBody BaseModelBean<SysRole> roleBean) {
// LOGGER.info("【impp-core-more-obj接受多对象模型】objBean:{},pager:{}" ,roleBean.getObj(),roleBean.getPager()); LOGGER.info("【impp-core-more-obj接受多对象模型】objBean:{},pager:{}" ,roleBean.getObj(),roleBean.getPager());
// return ResultBean.success("返回:" + roleBean).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); return ResultBean.success("返回:" + roleBean).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// } }
//} }

@ -1,5 +1,6 @@
package cn.estsh.i3plus.core.apiservice.controller; package cn.estsh.i3plus.core.apiservice.controller;
import cn.estsh.impp.framework.boot.eureka.EurekaClientHealthCheck;
import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ResultBean;
import com.netflix.appinfo.ApplicationInfoManager; import com.netflix.appinfo.ApplicationInfoManager;
import com.netflix.appinfo.EurekaInstanceConfig; import com.netflix.appinfo.EurekaInstanceConfig;
@ -37,6 +38,9 @@ public class DemoEurekaController {
@Autowired @Autowired
private ApplicationInfoManager applicationInfoManager; private ApplicationInfoManager applicationInfoManager;
@Autowired
private EurekaClientHealthCheck healthCheck;
/** /**
* *
* @return * @return
@ -50,7 +54,7 @@ public class DemoEurekaController {
} }
/** /**
* *
* @return * @return
*/ */
@GetMapping(value="/show") @GetMapping(value="/show")
@ -71,4 +75,30 @@ public class DemoEurekaController {
return new ResultBean(true); return new ResultBean(true);
} }
/**
*
* @return
*/
@GetMapping(value="/health-status")
@ApiOperation(value="微服健康状态",notes = "查看微服健康状态")
public ResultBean healthStatus() {
LOGGER.info("【微服状态】{}",healthCheck.isHealth());
return new ResultBean(true,"状态:" + healthCheck.isHealth());
}
/**
*
* @return
*/
@GetMapping(value="/change-status")
@ApiOperation(value="改变微服状态",notes = "改变微服状态(true,正常使用.false,停止使用)")
public ResultBean changeStatus(boolean status) {
LOGGER.info("【改变微服状态】{}",status);
healthCheck.setHealth(status);
return new ResultBean(true);
}
} }

@ -1,5 +1,22 @@
#项目端口 #项目端口
server.port=8100 server.port=8100
#本机ip
impp.server.ip=192.168.1.20
#console控制台服务zipkin追踪全路径
impp.console.ip=http://192.168.1.20:8010
################ 功能配置1 ################
#若无法连接注册中心,是否需要一直检测加入
impp.cluster.fetch=false
#服务注册中心
impp.cluster.regist.center=http://192.168.1.20:8000/eureka/
#多注册中心
#impp.cluster.regist.center=http://192.168.1.20:8000/eureka/,http://192.168.1.20:8001/eureka/
################ 功能配置2 ################
#是否允许前端跨域提交impp.web.cross.hosts
impp.web.cross = true
################ 授权过滤配置 ################ ################ 授权过滤配置 ################
#用户登陆路径 #用户登陆路径
filter.shiro.user.loginuri = /login filter.shiro.user.loginuri = /login
@ -15,35 +32,31 @@ filter.shiro.admin.filteruri = /adoperate/*
#用户授权过滤路径 #用户授权过滤路径
filter.shiro.saadmin.filteruri = /saoperate/* filter.shiro.saadmin.filteruri = /saoperate/*
################ 跨域提交 ################
#是否允许前端跨域提交impp.web.cross.hosts
impp.web.cross = true
################ 云配置 以projectName作为应用名 ################ ################ 云配置 以projectName作为应用名 ################
#若无法连接注册中心,是否需要一直检测加入
impp.cluster.fetch=false
#是否开启微服 #是否开启微服
eureka.client.enabled=true eureka.client.enabled=true
#(参数配置)注册中心地址 -》 i3plus-ics多个用逗号分隔 #(参数配置)注册中心地址 -》 i3plus-ics多个用逗号分隔
eureka.client.service-url.defaultZone=http://192.168.1.20:8000/eureka/,http://192.168.1.20:8001/eureka/ eureka.client.service-url.defaultZone=${impp.cluster.regist.center}
#区域源码中包含defaultZone所以默认使用defaultZone #区域源码中包含defaultZone所以默认使用defaultZone
#eureka.client.region=estsh #eureka.client.region=estsh
#eureka.client.service-url.estsh:http://192.168.1.20:8000/eureka/,http://192.168.1.20:8001/eureka/ #eureka.client.service-url.estsh:http://192.168.1.20:8000/eureka/,http://192.168.1.20:8001/eureka/
#### 本机微服配置 #### ################ 本机微服配置 ################
#本服务主机ip若多个网卡则需要设置本服务ip #本服务主机ip若多个网卡则需要设置本服务ip
eureka.instance.ip-address=192.168.1.20 eureka.instance.ip-address=${impp.server.ip}
#本服务实例ID #本服务实例ID
#eureka.instance.instance-id=${eureka.instance.ip-address}:${server.port} eureka.instance.instance-id=${impp.server.ip}:${server.port}
#本服务主机名 #本服务主机名
#eureka.instance.hostname=${eureka.instance.ip-address} eureka.instance.hostname=${impp.server.ip}
#本服务状态页面 #本服务状态页面
eureka.instance.status-page-url=http://${eureka.instance.ip-address}:${server.port}/swagger-ui.html eureka.instance.status-page-url=http://${impp.server.ip}:${server.port}/swagger-ui.html
#将自己的IP注册到Eureka Server。若不配置或设置为false表示注册微服务所在操作系统的hostname到Eureka Server #将自己的IP注册到Eureka Server。若不配置或设置为false表示注册微服务所在操作系统的hostname到Eureka Server
eureka.instance.prefer-ip-address=true eureka.instance.prefer-ip-address=true
#是否进行健康检查
eureka.client.healthcheck.enabled=true
#### 检测机制 #### ################ 检测机制 ################
#心跳间隔周期,宕机限制(秒),90秒没反应视为宕机 #心跳间隔周期,宕机限制(秒),30秒没反应视为宕机
eureka.instance.lease-expiration-duration-in-seconds=30 eureka.instance.lease-expiration-duration-in-seconds=30
#心跳周期 #心跳周期
eureka.instance.lease-renewal-interval-in-seconds=20 eureka.instance.lease-renewal-interval-in-seconds=20
@ -62,9 +75,11 @@ hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=5000
#集群名 #集群名
eureka.instance.metadata-map.cluster=impp_cluster eureka.instance.metadata-map.cluster=impp_cluster
#### 链路追踪 #### ################ 链路追踪 ################
#使用web方式传输信息
spring.zipkin.sender.type=web
#链路追踪服务的地址 #链路追踪服务的地址
spring.zipkin.base-url=http://192.168.1.20:8010 spring.zipkin.base-url=${impp.console.ip}
#追踪深度百分比1是全部 #追踪深度百分比1是全部
spring.sleuth.sampler.probability=1.0 spring.sleuth.sampler.probability=1.0

@ -41,6 +41,8 @@ eureka.instance.ip-address=192.168.1.20
eureka.instance.status-page-url=http://${eureka.instance.ip-address}:${server.port}/swagger-ui.html eureka.instance.status-page-url=http://${eureka.instance.ip-address}:${server.port}/swagger-ui.html
#将自己的IP注册到Eureka Server。若不配置或设置为false表示注册微服务所在操作系统的hostname到Eureka Server #将自己的IP注册到Eureka Server。若不配置或设置为false表示注册微服务所在操作系统的hostname到Eureka Server
eureka.instance.prefer-ip-address=true eureka.instance.prefer-ip-address=true
#是否进行健康检查
eureka.client.healthcheck.enabled=true
#### 检测机制 #### #### 检测机制 ####
#心跳间隔周期宕机限制90秒没反应视为宕机 #心跳间隔周期宕机限制90秒没反应视为宕机

Loading…
Cancel
Save