Commit 61761ba6 authored by xiandafu's avatar xiandafu
Browse files

remove zookeeper

parent 8b0c6535
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ibeetl</groupId>
<artifactId>admin-cloud</artifactId>
<version>1.1.1</version>
</parent>
<artifactId>admin-cloud-eureka-server</artifactId>
<name>admin-cloud-eureka-server</name>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
</project>
\ No newline at end of file
server.port=8761
spring.application.name=eureka-service
#eureka-server
eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
/application.properties
/banner.txt
/beetl.properties
/btsql-ext.properties
/com/
/excelTemplates/
/sql/
/static/
/templates/
......@@ -3,19 +3,12 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>admin-console</artifactId>
<packaging>jar</packaging>
<!-- <parent> -->
<!-- <groupId>com.ibeetl</groupId> -->
<!-- <artifactId>admin</artifactId> -->
<!-- <version>1.1.1</version> -->
<!-- </parent> -->
<parent>
<groupId>com.ibeetl</groupId>
<artifactId>admin-cloud</artifactId>
<version>1.1.1</version>
</parent>
<dependencies>
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>admin-core</artifactId>
......
......@@ -11,8 +11,8 @@ spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 1,1 是管理员密码,相当于启动后就登录,方便测试,系统需要取消这俩个配置
#user.id=1
#user.orgId=1
user.id=1
user.orgId=1
#打开审计功能,开发模式应该关闭
audit.enable=false
spring.session.store-type=HASH_MAP
......
......@@ -40,15 +40,9 @@
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl-framework-starter</artifactId>
<version>1.1.45.RELEASE</version>
<version>1.1.46.RELEASE</version>
</dependency>
<dependency>
<groupId>com.trigersoft</groupId>
<artifactId>jaque</artifactId>
<version>2.1.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
......@@ -64,28 +58,7 @@
<artifactId>ojdbc6</artifactId>
<version>11.2.0</version>
</dependency> -->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>2.12.0</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-x-discovery</artifactId>
<version>2.12.0</version>
</dependency>
<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls-reader</artifactId>
<version>2.0.3</version>
......
package com.ibeetl.admin.core.conf;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.Random;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.x.discovery.ServiceDiscovery;
import org.apache.curator.x.discovery.ServiceDiscoveryBuilder;
import org.apache.curator.x.discovery.ServiceInstance;
import org.apache.curator.x.discovery.ServiceInstanceBuilder;
import org.apache.curator.x.discovery.details.JsonInstanceSerializer;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import com.ibeetl.admin.core.service.CoreServiceLocator;
import com.ibeetl.admin.core.util.PlatformException;
@Configuration
public class RemoteServiceLocatorConfig {
Log log = LogFactory.getLog(this.getClass());
@Configuration
@ConditionalOnProperty(name = "zookeeper.enabled", havingValue = "true")
class ZkConfig{
@Bean
public CoreServiceLocator zkServiceLocator(Environment env,CuratorFramework client){
RemoteServiceLocator loc = new RemoteServiceLocator(client);
log.info("地服务注册和发现:"+client.getZookeeperClient().getCurrentConnectionString());
return loc;
}
}
@Configuration
@ConditionalOnProperty(name = "zookeeper.enabled", havingValue = "false",matchIfMissing=true)
class LocalConfig{
@Bean
public CoreServiceLocator localServiceLocator(Environment env){
LocalServiceLocator loc = new LocalServiceLocator();
log.info("没有配置zookeeper.*,使用模拟本地服务注册和发现:"+loc.configFile);
return loc;
}
}
}
/**
* zookeeper 服务注册中心
* @author lijiazhi
*
*/
class RemoteServiceLocator implements CoreServiceLocator{
CuratorFramework client;
Log log = LogFactory.getLog(this.getClass());
public RemoteServiceLocator(CuratorFramework client){
this.client = client;
}
@Override
public void addServiceURI(String path, String url) {
try{
ServiceInstanceBuilder<Map> service = ServiceInstance.builder();
service.address("");
service.port(0);
service.name(path);
Map config = new HashMap();
config.put("url", url);
service.payload(config);
ServiceInstance<Map> instance = service.build();
ServiceDiscovery<Map> serviceDiscovery = ServiceDiscoveryBuilder.builder(Map.class).client(client)
.serializer(new JsonInstanceSerializer<Map>(Map.class)).basePath("/service").build();
// 服务注册
serviceDiscovery.registerService(instance);
serviceDiscovery.start();
}catch(Exception ex){
log.warn(ex.getMessage(), ex);
throw new PlatformException("服务注册中心 出错",ex);
}
}
@Override
public String getServiceURI(String path) {
ServiceDiscovery<Map> serviceDiscovery = ServiceDiscoveryBuilder.builder(Map.class).client(client)
.serializer(new JsonInstanceSerializer<Map>(Map.class)).basePath("/service").build();
try {
serviceDiscovery.start();
} catch (Exception e) {
throw new PlatformException("未发现服务注册中心 ");
}
Collection<ServiceInstance<Map>> all;
try {
all = serviceDiscovery.queryForInstances(path);
} catch (Exception e) {
log.warn("未发现服务注服务 "+path);
throw new PlatformException("未发现服务注服务 "+path);
}
if (all.size() == 0) {
log.warn("未发现服务注服务 "+path);
throw new PlatformException("未发现服务注服务 "+path);
} else {
//todo 优化:能缓存,官方有缓存方法,以后补上
// 随机选一个
int size = all.size();
int one = new Random().nextInt(size);
ServiceInstance<Map> service = new ArrayList<ServiceInstance<Map>>(all).get(one);
return (String)service.getPayload().get("url");
}
}
}
/**
* 开发环境下,本地俩个系统注册服务,发现服务的方式。通过starter.service.properties文件完成
* @author lijiazhi
*
*/
class LocalServiceLocator implements CoreServiceLocator{
String home = System.getProperty("user.home");
//单机用一个配置文件完成,多机情况得使用zookeeper
String configFile = null;
public LocalServiceLocator(){
configFile = home+File.separator+"starter.service.properties";
}
@Override
public void addServiceURI(String path, String url) {
check();
Properties ps = new Properties();
try {
ps.load(new FileReader(new File(configFile)));
ps.setProperty(path, url);
ps.store(new FileWriter(new File(configFile)), "");
} catch (IOException e) {
throw new PlatformException("未发现服务注册中心 "+e.getMessage());
}
}
@Override
public String getServiceURI(String path) {
check();
Properties ps = new Properties();
try {
ps.load(new FileReader(new File(configFile)));
String url = ps.getProperty(path);
if(StringUtils.isEmpty(url)){
throw new PlatformException("未发现服务注服务 ");
}
return url;
} catch (IOException e) {
throw new PlatformException("未发现服务注册中心 "+e.getMessage());
}
}
protected void check(){
File file = new File(configFile);
if(file.exists()){
return;
}
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
throw new PlatformException("未发现服务注册中心 "+e.getMessage(),e);
}
}
}
package com.ibeetl.admin.core.conf;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.curator.RetryPolicy;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
@Configuration
@ConditionalOnClass(CuratorFramework.class)
@ConditionalOnProperty(name = "zookeeper.enabled", havingValue = "true")
public class ZookeeperConfig {
Log log = LogFactory.getLog(this.getClass());
@Autowired Environment env;
@Bean
public CuratorFramework getCuratorFramework() throws Exception {
String zkUrl = env.getProperty("zookeeper.url");
RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
CuratorFramework client = CuratorFrameworkFactory.newClient(zkUrl, retryPolicy);
client.start();
return client;
}
}
package com.ibeetl.admin.core.service;
/**
* 服务注册和发现,单机情况,注册在本地系统,多机情况,用zookeeper完成注册,计划改成Spring cloud
* @author lijiazhi
*
*/
public interface CoreServiceLocator {
public void addServiceURI(String path,String url);
public String getServiceURI(String path);
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ibeetl</groupId>
<artifactId>admin-workflow</artifactId>
<version>1.1.1</version>
<packaging>jar</packaging>
<name>workflow</name>
<url>http://maven.apache.org</url>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<commons-lang3.version>3.3.2</commons-lang3.version>
</properties>
<parent>
<groupId>com.ibeetl</groupId>
<artifactId>admin-cloud</artifactId>
<version>1.1.1</version>
</parent>
<dependencies>
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-spring-boot-starter</artifactId>
<version>6.3.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.45</version>
</dependency>
<!-- <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.5</version>
</dependency> -->
</dependencies>
</project>
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment