From 54c7b6962653d2c9711cf3ce79281df54627941d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A1=B9=E5=8D=87?= <xiangsheng.gh@alibaba-inc.com> Date: Mon, 6 May 2019 10:26:16 +0800 Subject: [PATCH] Add more docs and modules --- README.MD | 8 +++ bootstrap/pom.xml | 35 +++++++++++++ .../java/com/aliware/tianchi/GatewayApp.java | 16 ++++++ .../java/com/aliware/tianchi/ProviderApp.java | 17 +++++++ internal-dubbo/pom.xml | 8 +++ internal-gateway/pom.xml | 6 +++ {service => internal-service}/pom.xml | 0 .../service-api/pom.xml | 0 .../com/aliware/tianchi/HashInterface.java | 0 internal-service/service-consumer/pom.xml | 26 ++++++++++ .../java/com/aliware/tianchi/MyConsumer.java | 19 +++++++ .../src/main/resources/dubbo-consumer.xml | 18 +++++++ .../service-provider/pom.xml | 2 +- .../com/aliware/tianchi/HashServiceImpl.java | 2 +- .../src/main/resources/dubbo-provider.xml | 21 ++++++++ pom.xml | 51 ++++++++++++++++++- .../com/aliware/tianchi/HashInterface.java | 10 ---- src/main/java/com/aliware/GatewayApp.java | 10 ---- src/main/java/com/aliware/ProviderApp.java | 10 ---- workspace/README.md | 3 ++ workspace/pom.xml | 20 ++++++++ .../workspace-gateway}/pom.xml | 4 +- workspace/workspace-provider/pom.xml | 14 +++++ 23 files changed, 265 insertions(+), 35 deletions(-) create mode 100644 bootstrap/pom.xml create mode 100644 bootstrap/src/main/java/com/aliware/tianchi/GatewayApp.java create mode 100644 bootstrap/src/main/java/com/aliware/tianchi/ProviderApp.java rename {service => internal-service}/pom.xml (100%) rename {service => internal-service}/service-api/pom.xml (100%) rename {service => internal-service}/service-api/src/main/java/com/aliware/tianchi/HashInterface.java (100%) create mode 100644 internal-service/service-consumer/pom.xml create mode 100644 internal-service/service-consumer/src/main/java/com/aliware/tianchi/MyConsumer.java create mode 100644 internal-service/service-consumer/src/main/resources/dubbo-consumer.xml rename {service => internal-service}/service-provider/pom.xml (93%) rename {service => internal-service}/service-provider/src/main/java/com/aliware/tianchi/HashServiceImpl.java (94%) create mode 100644 internal-service/service-provider/src/main/resources/dubbo-provider.xml delete mode 100644 service/src/main/java/com/aliware/tianchi/HashInterface.java delete mode 100644 src/main/java/com/aliware/GatewayApp.java delete mode 100644 src/main/java/com/aliware/ProviderApp.java create mode 100644 workspace/README.md create mode 100644 workspace/pom.xml rename {service/service-consumer => workspace/workspace-gateway}/pom.xml (82%) create mode 100644 workspace/workspace-provider/pom.xml diff --git a/README.MD b/README.MD index 5214bd2..7fdce7b 100644 --- a/README.MD +++ b/README.MD @@ -44,6 +44,14 @@ TBD TBD +### 项目结构 + +- bootstrap 程åºå¯åЍ入å£ï¼Œä¸å…许修改,评测时ä¸ä¾èµ–选手编译的 jar 包; +- internal-dubbo dubbo ä¾èµ–,ä¸å…许修改,评测时ä¸ä¾èµ–选手编译的 jar 包; +- internal-gateway gateway ä¾èµ–,ä¸å…许修改,评测时ä¸ä¾èµ–选手编译的 jar 包; +- internal-service æœåŠ¡çš„æŽ¥å£å®šä¹‰å’Œå®žçŽ°ï¼Œä¸å…许修改,评测时ä¸ä¾èµ–选手编译的 jar 包; +- workspace 选手进行开å‘çš„æ¨¡å— + ### å¼€å‘æŽ¥å£ TBD diff --git a/bootstrap/pom.xml b/bootstrap/pom.xml new file mode 100644 index 0000000..7311cef --- /dev/null +++ b/bootstrap/pom.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<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"> + <parent> + <artifactId>adaptive-loadbalance</artifactId> + <groupId>com.aliware.tianchi</groupId> + <version>1.0.0</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <artifactId>bootstrap</artifactId> + <dependencies> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + </dependency> + <dependency> + <groupId>com.aliware.tianchi</groupId> + <artifactId>workspace-gateway</artifactId> + <version>1.0.0</version> + </dependency> + <dependency> + <groupId>com.aliware.tianchi</groupId> + <artifactId>workspace-provider</artifactId> + <version>1.0.0</version> + </dependency> + <dependency> + <groupId>com.aliware.tianchi</groupId> + <artifactId>service-provider</artifactId> + </dependency> + </dependencies> + + +</project> \ No newline at end of file diff --git a/bootstrap/src/main/java/com/aliware/tianchi/GatewayApp.java b/bootstrap/src/main/java/com/aliware/tianchi/GatewayApp.java new file mode 100644 index 0000000..f3d1dec --- /dev/null +++ b/bootstrap/src/main/java/com/aliware/tianchi/GatewayApp.java @@ -0,0 +1,16 @@ +package com.aliware.tianchi; + +import java.io.IOException; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +/** + * @author guohaoice@gmail.com + */ +public class GatewayApp { + public static void main(String[] args) throws IOException { + ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"dubbo-provider.xml"}); + context.start(); + + System.in.read(); // press any key to exit + } +} diff --git a/bootstrap/src/main/java/com/aliware/tianchi/ProviderApp.java b/bootstrap/src/main/java/com/aliware/tianchi/ProviderApp.java new file mode 100644 index 0000000..a8a203a --- /dev/null +++ b/bootstrap/src/main/java/com/aliware/tianchi/ProviderApp.java @@ -0,0 +1,17 @@ +package com.aliware.tianchi; + +import java.io.IOException; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +/** + * @author guohaoice@gmail.com + */ +public class ProviderApp { + + public static void main(String[] args) throws IOException { + ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"classpath:dubbo-provider.xml"}); + context.start(); + System.in.read(); // press any key to exit + } + +} diff --git a/internal-dubbo/pom.xml b/internal-dubbo/pom.xml index a4be6d0..9c4730d 100644 --- a/internal-dubbo/pom.xml +++ b/internal-dubbo/pom.xml @@ -10,4 +10,12 @@ <modelVersion>4.0.0</modelVersion> <artifactId>internal-dubbo</artifactId> + + <dependencies> + <dependency> + <groupId>org.apache.dubbo</groupId> + <artifactId>dubbo</artifactId> + <version>3.0.0-SNAPSHOT</version> + </dependency> + </dependencies> </project> \ No newline at end of file diff --git a/internal-gateway/pom.xml b/internal-gateway/pom.xml index cc5ce9a..dfdbf98 100644 --- a/internal-gateway/pom.xml +++ b/internal-gateway/pom.xml @@ -11,5 +11,11 @@ <artifactId>internal-gateway</artifactId> + <dependencies> + <dependency> + <groupId>com.aliware.tianchi</groupId> + <artifactId>internal-dubbo</artifactId> + </dependency> + </dependencies> </project> \ No newline at end of file diff --git a/service/pom.xml b/internal-service/pom.xml similarity index 100% rename from service/pom.xml rename to internal-service/pom.xml diff --git a/service/service-api/pom.xml b/internal-service/service-api/pom.xml similarity index 100% rename from service/service-api/pom.xml rename to internal-service/service-api/pom.xml diff --git a/service/service-api/src/main/java/com/aliware/tianchi/HashInterface.java b/internal-service/service-api/src/main/java/com/aliware/tianchi/HashInterface.java similarity index 100% rename from service/service-api/src/main/java/com/aliware/tianchi/HashInterface.java rename to internal-service/service-api/src/main/java/com/aliware/tianchi/HashInterface.java diff --git a/internal-service/service-consumer/pom.xml b/internal-service/service-consumer/pom.xml new file mode 100644 index 0000000..81633ad --- /dev/null +++ b/internal-service/service-consumer/pom.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<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"> + <parent> + <artifactId>service</artifactId> + <groupId>com.aliware.tianchi</groupId> + <version>1.0.0</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <artifactId>service-consumer</artifactId> + + <dependencies> + <dependency> + <groupId>com.aliware.tianchi</groupId> + <artifactId>service-api</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + </dependency> + </dependencies> + + +</project> \ No newline at end of file diff --git a/internal-service/service-consumer/src/main/java/com/aliware/tianchi/MyConsumer.java b/internal-service/service-consumer/src/main/java/com/aliware/tianchi/MyConsumer.java new file mode 100644 index 0000000..162e5b3 --- /dev/null +++ b/internal-service/service-consumer/src/main/java/com/aliware/tianchi/MyConsumer.java @@ -0,0 +1,19 @@ +package com.aliware.tianchi; + +import java.io.IOException; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +/** + * @author guohaoice@gmail.com + */ +public class MyConsumer { + public static void main(String[] args) throws IOException { + ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"classpath:dubbo-consumer.xml"}); + context.start(); + HashInterface bean = context.getBean(HashInterface.class); + for (int i = 0; i < 10; i++) { + System.out.println(bean.hash("hahaha")); + } + System.in.read(); // press any key to exit + } +} diff --git a/internal-service/service-consumer/src/main/resources/dubbo-consumer.xml b/internal-service/service-consumer/src/main/resources/dubbo-consumer.xml new file mode 100644 index 0000000..f25a6e9 --- /dev/null +++ b/internal-service/service-consumer/src/main/resources/dubbo-consumer.xml @@ -0,0 +1,18 @@ +<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" + xmlns="http://www.springframework.org/schema/beans" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd + http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd"> + + <!-- consumer's application name, used for tracing dependency relationship (not a matching criterion), + don't set it same as provider --> + <dubbo:application name="demo-consumer"/> + + <!-- use multicast registry center to discover service --> + <!--<dubbo:registry address="zookeeper://127.0.0.1:2181"/>--> + + <!-- generate proxy for the remote service, then demoService can be used in the same way as the + local regular interface --> + <dubbo:reference id="directService" check="false" interface="com.aliware.tianchi.HashInterface" url="localhost:20880"/> + +</beans> \ No newline at end of file diff --git a/service/service-provider/pom.xml b/internal-service/service-provider/pom.xml similarity index 93% rename from service/service-provider/pom.xml rename to internal-service/service-provider/pom.xml index 53c8fab..5e390fb 100644 --- a/service/service-provider/pom.xml +++ b/internal-service/service-provider/pom.xml @@ -15,8 +15,8 @@ <dependency> <groupId>com.aliware.tianchi</groupId> <artifactId>service-api</artifactId> - <version>${project.version}</version> </dependency> + </dependencies> diff --git a/service/service-provider/src/main/java/com/aliware/tianchi/HashServiceImpl.java b/internal-service/service-provider/src/main/java/com/aliware/tianchi/HashServiceImpl.java similarity index 94% rename from service/service-provider/src/main/java/com/aliware/tianchi/HashServiceImpl.java rename to internal-service/service-provider/src/main/java/com/aliware/tianchi/HashServiceImpl.java index 4df1288..35bd7d0 100644 --- a/service/service-provider/src/main/java/com/aliware/tianchi/HashServiceImpl.java +++ b/internal-service/service-provider/src/main/java/com/aliware/tianchi/HashServiceImpl.java @@ -36,7 +36,7 @@ public class HashServiceImpl implements HashInterface { double cdf = 0; while (u >= cdf) { x++; - cdf = 1 - Math.exp(-1.0 * 1 / averageRTT * x); + cdf = 1 - Math.exp(-1.0D * 1 / averageRTT * x); } return x; } diff --git a/internal-service/service-provider/src/main/resources/dubbo-provider.xml b/internal-service/service-provider/src/main/resources/dubbo-provider.xml new file mode 100644 index 0000000..fb14e69 --- /dev/null +++ b/internal-service/service-provider/src/main/resources/dubbo-provider.xml @@ -0,0 +1,21 @@ +<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" + xmlns="http://www.springframework.org/schema/beans" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd + http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd"> + + <!-- provider's application name, used for tracing dependency relationship --> + <dubbo:application name="demo-provider"/> + <!-- use multicast registry center to export service --> + <dubbo:registry address="multicast://224.5.6.7:1234"/> + <!-- use dubbo protocol to export service on port 20880 --> + <dubbo:protocol name="dubbo" port="20880"/> + <!-- service implementation, as same as regular local bean --> + <bean id="demoService" class="com.aliware.tianchi.HashServiceImpl"> + <constructor-arg index="0" value="10"/> + <constructor-arg index="1" value="10000000"/> + <constructor-arg index="2" value="salt-value"/> + </bean> + <!-- declare the service interface to be exported --> + <dubbo:service interface="com.aliware.tianchi.HashInterface" ref="demoService"/> +</beans> \ No newline at end of file diff --git a/pom.xml b/pom.xml index 3055949..9382524 100644 --- a/pom.xml +++ b/pom.xml @@ -9,6 +9,53 @@ <packaging>pom</packaging> <version>1.0.0</version> + <dependencyManagement> + <dependencies> + <!--internal start--> + <dependency> + <groupId>com.aliware.tianchi</groupId> + <artifactId>internal-dubbo</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.aliware.tianchi</groupId> + <artifactId>internal-gateway</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.aliware.tianchi</groupId> + <artifactId>service-api</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.aliware.tianchi</groupId> + <artifactId>service-consumer</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.aliware.tianchi</groupId> + <artifactId>service-provider</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.aliware.tianchi</groupId> + <artifactId>workspace-provider</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>com.aliware.tianchi</groupId> + <artifactId>workspace-gateway</artifactId> + <version>${project.version}</version> + </dependency> + <!--internal end--> + + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + <version>4.3.20.RELEASE</version> + </dependency> + </dependencies> + </dependencyManagement> <build> <plugins> <plugin> @@ -26,6 +73,8 @@ <modules> <module>internal-dubbo</module> <module>internal-gateway</module> - <module>service</module> + <module>internal-service</module> + <module>bootstrap</module> + <module>workspace</module> </modules> </project> \ No newline at end of file diff --git a/service/src/main/java/com/aliware/tianchi/HashInterface.java b/service/src/main/java/com/aliware/tianchi/HashInterface.java deleted file mode 100644 index 5665174..0000000 --- a/service/src/main/java/com/aliware/tianchi/HashInterface.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.aliware.tianchi; - -/** - * @author guohaoice@gmail.com - */ -public interface HashInterface { - - int hash(String input); - -} diff --git a/src/main/java/com/aliware/GatewayApp.java b/src/main/java/com/aliware/GatewayApp.java deleted file mode 100644 index f00f00d..0000000 --- a/src/main/java/com/aliware/GatewayApp.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.aliware; - -/** - * @author guohaoice@gmail.com - */ -public class GatewayApp { - public static void main(String[] args) { - // - } -} diff --git a/src/main/java/com/aliware/ProviderApp.java b/src/main/java/com/aliware/ProviderApp.java deleted file mode 100644 index bd5778a..0000000 --- a/src/main/java/com/aliware/ProviderApp.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.aliware; - -/** - * @author guohaoice@gmail.com - */ -public class ProviderApp { - public static void main(String[] args) { - // - } -} diff --git a/workspace/README.md b/workspace/README.md new file mode 100644 index 0000000..b89adcf --- /dev/null +++ b/workspace/README.md @@ -0,0 +1,3 @@ +# Workspace + +选手在这个 module 下开å‘,其他 module ä¸å…许修改。 \ No newline at end of file diff --git a/workspace/pom.xml b/workspace/pom.xml new file mode 100644 index 0000000..5230c79 --- /dev/null +++ b/workspace/pom.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<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"> + <parent> + <artifactId>adaptive-loadbalance</artifactId> + <groupId>com.aliware.tianchi</groupId> + <version>1.0.0</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <artifactId>workspace</artifactId> + <packaging>pom</packaging> + <modules> + <module>workspace-gateway</module> + <module>workspace-provider</module> + </modules> + + +</project> \ No newline at end of file diff --git a/service/service-consumer/pom.xml b/workspace/workspace-gateway/pom.xml similarity index 82% rename from service/service-consumer/pom.xml rename to workspace/workspace-gateway/pom.xml index ba938d8..9a1c6a7 100644 --- a/service/service-consumer/pom.xml +++ b/workspace/workspace-gateway/pom.xml @@ -3,13 +3,13 @@ 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"> <parent> - <artifactId>service</artifactId> + <artifactId>workspace</artifactId> <groupId>com.aliware.tianchi</groupId> <version>1.0.0</version> </parent> <modelVersion>4.0.0</modelVersion> - <artifactId>service-consumer</artifactId> + <artifactId>workspace-gateway</artifactId> </project> \ No newline at end of file diff --git a/workspace/workspace-provider/pom.xml b/workspace/workspace-provider/pom.xml new file mode 100644 index 0000000..7d0f8a3 --- /dev/null +++ b/workspace/workspace-provider/pom.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<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"> + <parent> + <artifactId>workspace</artifactId> + <groupId>com.aliware.tianchi</groupId> + <version>1.0.0</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <artifactId>workspace-provider</artifactId> + +</project> \ No newline at end of file -- GitLab