eureka微服整合

yun-zuoyi
frin.fei 7 years ago
parent 9c42a21a0b
commit 2c4b04e259

@ -4,6 +4,7 @@ import cn.estsh.i3plus.core.apiservice.auth.realm.AdminAuthRealm;
import cn.estsh.i3plus.core.apiservice.auth.realm.DefaultModularRealm;
import cn.estsh.i3plus.core.apiservice.auth.realm.SaAuthRealm;
import cn.estsh.i3plus.core.apiservice.auth.realm.UserAuthRealm;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.impp.framework.boot.auth.filter.AdminFilter;
import cn.estsh.impp.framework.boot.auth.filter.SaAdminFilter;
@ -39,7 +40,7 @@ import java.util.Map;
@Configuration
@AutoConfigureAfter(RedisConfig.class) //2类配置延后加载
public class ShiroAuthConfiguration {
public static final Logger LOGGER = LoggerFactory.getLogger(ShiroAuthConfiguration.class);
public static final Logger LOGGER = LoggerFactory.getLogger(CommonConstWords.SYSTEM_LOG);
@Value("${filter.shiro.admin.loginuri}")
private String adminLoginUri;

@ -1,87 +1,87 @@
//package cn.estsh.i3plus.core.apiservice.controller;
//
//import cn.estsh.i3plus.icloud.core.controller.DemoCoreCloudInterface;
//import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
//import cn.estsh.impp.framework.boot.util.ResultBean;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.*;
//
//@RestController
//@RequestMapping("/cloud")
//@Api(description="分布式服务测试")
//public class DemoCloudController {
//
// private static final Logger LOGGER = LoggerFactory.getLogger(DemoCloudController.class);
//
// @Autowired
// DemoCoreCloudInterface demoCloudInterface;
//
// @GetMapping(value="/test")
// @ApiOperation(value="测试",notes = "测试")
// public ResultBean simpleTest(String test) {
// LOGGER.info("【接受数据】{}",test);
//
// try {
// demoCloudInterface.testGet("get = " + test);
// }catch (Exception e){
// LOGGER.error("XXXX --> get调用出错" + e.getMessage(),e);
// }
// try {
// demoCloudInterface.testPost("post = " + test);
// }catch (Exception e){
// LOGGER.error("XXXX --> post调用出错" + e.getMessage(),e);
// }
// try {
// demoCloudInterface.testPut("testPut = " + test);
// }catch (Exception e){
// LOGGER.error("XXXX --> testPut调用出错" + e.getMessage(),e);
// }
// try {
// demoCloudInterface.testDelete("delete = " + test);
// }catch (Exception e){
// LOGGER.error("XXXX --> delete调用出错" + e.getMessage(),e);
// }
//
// test += "cloud return = ";
// return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }
//
// @GetMapping(value="/test-get")
// @ApiOperation(value="测试get",notes = "测试get")
// public ResultBean testFeignGet(String test) {
// LOGGER.info("【get接受数据】{}" ,test);
// return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }
//
// @PostMapping(value="/test-post")
// @ApiOperation(value="测试post",notes = "测试post")
// public ResultBean testFeignPost(String test) {
// LOGGER.info("【post接受数据】{}" ,test);
// return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }
//
// @PostMapping(value="/test-put")
// @ApiOperation(value="put接受数据",notes = "put接受数据")
// public ResultBean testPut(String test) {
// LOGGER.info("【put接受数据】{}", test);
// return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }
//
// @DeleteMapping(value="/test-delete")
// @ApiOperation(value="delete接受数据",notes = "delete接受数据")
// public ResultBean testDelete(String test) {
// LOGGER.info("【delete接受数据】{}",test);
// return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }
//
// @PutMapping(value="/test-cloud-put")
// @ApiOperation(value="测试cloudput",notes = "测试cloudput")
// public ResultBean putTestCloud(String test) {
// LOGGER.info("【put--->{}",test);
// return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
// }
//}
package cn.estsh.i3plus.core.apiservice.controller;
import cn.estsh.i3plus.icloud.core.sdk.ICoreDemoCloud;
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
import cn.estsh.impp.framework.boot.util.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/cloud")
@Api(description="分布式服务测试")
public class DemoCloudController {
private static final Logger LOGGER = LoggerFactory.getLogger(DemoCloudController.class);
@Autowired
ICoreDemoCloud iCoreDemoCloud;
@GetMapping(value="/test")
@ApiOperation(value="测试",notes = "测试")
public ResultBean simpleTest(String test) {
LOGGER.info("【接受数据】{}",test);
try {
iCoreDemoCloud.testGet("get = " + test);
}catch (Exception e){
LOGGER.error("XXXX --> get调用出错" + e.getMessage(),e);
}
try {
iCoreDemoCloud.testPost("post = " + test);
}catch (Exception e){
LOGGER.error("XXXX --> post调用出错" + e.getMessage(),e);
}
try {
iCoreDemoCloud.testPut("testPut = " + test);
}catch (Exception e){
LOGGER.error("XXXX --> testPut调用出错" + e.getMessage(),e);
}
try {
iCoreDemoCloud.testDelete("delete = " + test);
}catch (Exception e){
LOGGER.error("XXXX --> delete调用出错" + e.getMessage(),e);
}
test += "cloud return = ";
return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
@GetMapping(value="/test-get")
@ApiOperation(value="测试get",notes = "测试get")
public ResultBean testFeignGet(String test) {
LOGGER.info("【get接受数据】{}" ,test);
return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
@PostMapping(value="/test-post")
@ApiOperation(value="测试post",notes = "测试post")
public ResultBean testFeignPost(String test) {
LOGGER.info("【post接受数据】{}" ,test);
return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
@PostMapping(value="/test-put")
@ApiOperation(value="put接受数据",notes = "put接受数据")
public ResultBean testPut(String test) {
LOGGER.info("【put接受数据】{}", test);
return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
@DeleteMapping(value="/test-delete")
@ApiOperation(value="delete接受数据",notes = "delete接受数据")
public ResultBean testDelete(String test) {
LOGGER.info("【delete接受数据】{}",test);
return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
@PutMapping(value="/test-cloud-put")
@ApiOperation(value="测试cloudput",notes = "测试cloudput")
public ResultBean putTestCloud(String test) {
LOGGER.info("【put--->{}",test);
return ResultBean.success("返回:" + test).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}
}

@ -0,0 +1,77 @@
package cn.estsh.i3plus.core.apiservice.controller;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.util.ResultBean;
import com.netflix.appinfo.ApplicationInfoManager;
import com.netflix.appinfo.EurekaInstanceConfig;
import com.netflix.discovery.DiscoveryClient;
import com.netflix.discovery.DiscoveryManager;
import com.netflix.discovery.EurekaClient;
import com.netflix.discovery.EurekaClientConfig;
import com.netflix.discovery.shared.Applications;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : Alwaysfrin
* @CreateDate : 2018-11-19 19:56
* @Modify:
**/
@RestController
@Api(description="微服功能demo")
@RequestMapping("/demo-eureka-service")
public class DemoEurekaController {
private static final Logger LOGGER = LoggerFactory.getLogger(DemoEurekaController.class);
@Autowired
private EurekaClient eurekaClient;
@Autowired
private ApplicationInfoManager applicationInfoManager;
/**
*
* @return
*/
@GetMapping(value="/stop")
@ApiOperation(value="停止微服",notes = "停止当前微服")
public ResultBean stopServer() {
LOGGER.info("请求停止微服。。。");
eurekaClient.shutdown();
return new ResultBean(true);
}
/**
*
* @return
*/
@GetMapping(value="/show")
@ApiOperation(value="显示微服",notes = "显示微服")
public ResultBean show() {
LOGGER.info("【加载微服配置】");
LOGGER.info("applicationInfoManager:{}",applicationInfoManager);
LOGGER.info("getEurekaInstanceConfig:{}",applicationInfoManager.getEurekaInstanceConfig());
EurekaInstanceConfig config = applicationInfoManager.getEurekaInstanceConfig();
LOGGER.info(config.getAppname());
Applications app = eurekaClient.getApplications();
LOGGER.info("spring dc : "+eurekaClient + ",app" + app);
EurekaClientConfig eurekaClientConfig = eurekaClient.getEurekaClientConfig();
LOGGER.info("eurekaClientConfig:{}",eurekaClientConfig);
return new ResultBean(true);
}
}

@ -1,6 +1,7 @@
package cn.estsh.i3plus.core.apiservice.listener;
import cn.estsh.i3plus.core.api.iservice.busi.ISystemResourceService;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage;
import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource;
import cn.estsh.impp.framework.boot.util.ImppRedis;
@ -22,7 +23,7 @@ import java.util.List;
* @Modify:
**/
public class SysResourceBindleListener implements ApplicationListener<ContextRefreshedEvent> {
private static final Logger LOGGER = LoggerFactory.getLogger(SysResourceBindleListener.class);
private static final Logger LOGGER = LoggerFactory.getLogger(CommonConstWords.SYSTEM_LOG);
@Autowired
public ISystemResourceService systemResourceService;
@ -65,7 +66,7 @@ public class SysResourceBindleListener implements ApplicationListener<ContextRef
redisRes.putHashMap(key,resMap.get(key),0);
}
LOGGER.info("【资源配置文件已全部加载:{}】",resMap.size());
LOGGER.info("【资源配置文件已全部加载:{}】",resMap.size());
/*
//资源集合

@ -23,25 +23,33 @@ impp.web.cross = true
#impp.web.cross.hosts = http://localhost
################ 云配置 以projectName作为应用名 ################
#若无法连接注册中心,是否需要一直检测加入
impp.cluster.fetch=false
#是否开启微服
eureka.client.enabled=true
#ribbon.eureka.enable=true
#默认微服主机
eureka.client.serviceUrl.defaultZone:http://192.168.1.20:8000/eureka/
#本服务主机ip
eureka.instance.ip-address=192.168.1.25
#(参数配置)注册中心地址 -》 i3plus-ics多个用逗号分隔
eureka.client.service-url.defaultZone:http://192.168.1.20:8000/eureka/,http://192.168.1.20:8001/eureka/
#区域源码中包含defaultZone所以默认使用defaultZone
#eureka.client.region=estsh
#eureka.client.service-url.estsh:http://192.168.1.20:8000/eureka/,http://192.168.1.20:8001/eureka/
#### 本机微服配置 ####
#本服务主机ip若多个网卡则需要设置本服务ip
#eureka.instance.ip-address=192.168.1.25
#本服务实例ID
eureka.instance.instance-id=${eureka.instance.ip-address}:${server.port}
#eureka.instance.instance-id=${eureka.instance.ip-address}:${server.port}
#本服务主机名
eureka.instance.hostname=${eureka.instance.ip-address}
#eureka.instance.hostname=${eureka.instance.ip-address}
#本服务状态页面
eureka.instance.status-page-url=http://${eureka.instance.ip-address}:${server.port}/swagger-ui.html
#显示本服务ip
eureka.instance.status-page-url=http://192.168.1.25:${server.port}/swagger-ui.html
#将自己的IP注册到Eureka Server。若不配置或设置为false表示注册微服务所在操作系统的hostname到Eureka Server
eureka.instance.prefer-ip-address=true
#### 检测机制 ####
#心跳间隔周期宕机限制90秒没反应视为宕机
eureka.instance.lease-expiration-duration-in-seconds=90
eureka.instance.lease-expiration-duration-in-seconds=30
#心跳周期
eureka.instance.lease-renewal-interval-in-seconds=60
eureka.instance.lease-renewal-interval-in-seconds=20
################ 日志据源 ################
spring.data.mongodb.database=mongoDBSource

@ -3,15 +3,21 @@
<!--全局参数-->
<Properties>
<!-- %d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n -->
<Property name="pattern">[%-5p] %d{yyyy-MM-dd HH:mm:ss-SSS} %l:%m%n</Property>
<Property name="pattern">[%p] %d{yyyy-MM-dd HH:mm:ss-SSS} %l:%m%n</Property>
<Property name="info_pattern">[%p] %d{HH:mm:ss-SSS} (%c:%L)%M ==》 %m%n</Property>
<Property name="system_log_pattern">[SYS-%p] %m (%F:%M:%L %d{HH:mm:ss-SSS})%n</Property>
</Properties>
<Loggers>
<Root level="${log4j2.level}">
<AppenderRef ref="console"></AppenderRef>
<AppenderRef ref="rolling_file"></AppenderRef>
</Root>
<!--系统提示信息-->
<Logger name="system_log" level="${log4j2.level}" additivity="false">
<AppenderRef ref="system_log_console"></AppenderRef>
</Logger>
<!--只将com.package.demo.controller写到文件-->
<Logger name="controller" level="${log4j2.level}">
<Logger name="controller" level="${log4j2.level}" additivity="false">
<AppenderRef ref="package_file"></AppenderRef>
</Logger>
</Loggers>
@ -20,7 +26,13 @@
<!--控制台只输出level及以上级别的信息-->
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<Pattern>${pattern}</Pattern>
<Pattern>${info_pattern}</Pattern>
</PatternLayout>
</Console>
<Console name="system_log_console" target="SYSTEM_OUT" follow="true">
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<Pattern>${system_log_pattern}</Pattern>
</PatternLayout>
</Console>
<!-- 同一来源的Appender可以定义多个RollingFile定义按天存储日志 -->

Loading…
Cancel
Save