From 7b37a3a3b8064484a35da5471083220b26a43955 Mon Sep 17 00:00:00 2001
From: lcry <173590787@qq.com>
Date: Sat, 14 Mar 2020 16:55:09 +0800
Subject: [PATCH] =?UTF-8?q?P16-P30:=E5=AE=8C=E6=88=90=E6=9C=8D=E5=8A=A1?=
=?UTF-8?q?=E6=B3=A8=E5=86=8C=E5=88=B0Eureka=E5=92=8CZk=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 10 ++-
cloud-consumer-order80/pom.xml | 5 ++
.../com/lcry/springcloud/OrderMain80.java | 6 +-
.../config/ApplicationContextConfig.java | 2 +
.../controller/OrderController.java | 4 +-
.../src/main/resources/application.yml | 12 ++-
cloud-consumer-zk-order80/pom.xml | 56 ++++++++++++++
.../com/lcry/springcloud/ZkOrderMain80.java | 20 +++++
.../config/ApplicationContextConfig.java | 22 ++++++
.../controller/OrderController.java | 29 ++++++++
.../src/main/resources/application.yml | 11 +++
cloud-eureka-server7001/pom.xml | 51 +++++++++++++
.../com/lcry/springcloud/EurekaMain7001.java | 20 +++++
.../src/main/resources/application.yml | 19 +++++
cloud-eureka-server7002/pom.xml | 52 +++++++++++++
.../com/lcry/springcloud/EurekaMain7002.java | 19 +++++
.../src/main/resources/application.yml | 19 +++++
cloud-provider-payment8001/pom.xml | 5 ++
.../com/lcry/springcloud/PaymentMain8001.java | 4 +
.../controller/PaymentController.java | 24 ++++++
.../src/main/resources/application.yml | 17 +++++
cloud-provider-payment8002/pom.xml | 73 +++++++++++++++++++
.../com/lcry/springcloud/PaymentMain8002.java | 21 ++++++
.../controller/PaymentController.java | 70 ++++++++++++++++++
.../com/lcry/springcloud/dao/PaymentDao.java | 19 +++++
.../springcloud/service/PaymentService.java | 16 ++++
.../service/impl/PaymentServiceImpl.java | 31 ++++++++
.../src/main/resources/application.yml | 33 +++++++++
.../src/main/resources/db/payment.sql | 37 ++++++++++
.../main/resources/mapper/PaymentMapper.xml | 21 ++++++
cloud-provider-zk-payment8004/pom.xml | 60 +++++++++++++++
.../lcry/springcloud/ZkPaymentMain8004.java | 20 +++++
.../controller/PaymentController.java | 30 ++++++++
.../src/main/resources/application.yml | 11 +++
pom.xml | 5 ++
35 files changed, 850 insertions(+), 4 deletions(-)
create mode 100644 cloud-consumer-zk-order80/pom.xml
create mode 100644 cloud-consumer-zk-order80/src/main/java/com/lcry/springcloud/ZkOrderMain80.java
create mode 100644 cloud-consumer-zk-order80/src/main/java/com/lcry/springcloud/config/ApplicationContextConfig.java
create mode 100644 cloud-consumer-zk-order80/src/main/java/com/lcry/springcloud/controller/OrderController.java
create mode 100644 cloud-consumer-zk-order80/src/main/resources/application.yml
create mode 100644 cloud-eureka-server7001/pom.xml
create mode 100644 cloud-eureka-server7001/src/main/java/com/lcry/springcloud/EurekaMain7001.java
create mode 100644 cloud-eureka-server7001/src/main/resources/application.yml
create mode 100644 cloud-eureka-server7002/pom.xml
create mode 100644 cloud-eureka-server7002/src/main/java/com/lcry/springcloud/EurekaMain7002.java
create mode 100644 cloud-eureka-server7002/src/main/resources/application.yml
create mode 100644 cloud-provider-payment8002/pom.xml
create mode 100644 cloud-provider-payment8002/src/main/java/com/lcry/springcloud/PaymentMain8002.java
create mode 100644 cloud-provider-payment8002/src/main/java/com/lcry/springcloud/controller/PaymentController.java
create mode 100644 cloud-provider-payment8002/src/main/java/com/lcry/springcloud/dao/PaymentDao.java
create mode 100644 cloud-provider-payment8002/src/main/java/com/lcry/springcloud/service/PaymentService.java
create mode 100644 cloud-provider-payment8002/src/main/java/com/lcry/springcloud/service/impl/PaymentServiceImpl.java
create mode 100644 cloud-provider-payment8002/src/main/resources/application.yml
create mode 100644 cloud-provider-payment8002/src/main/resources/db/payment.sql
create mode 100644 cloud-provider-payment8002/src/main/resources/mapper/PaymentMapper.xml
create mode 100644 cloud-provider-zk-payment8004/pom.xml
create mode 100644 cloud-provider-zk-payment8004/src/main/java/com/lcry/springcloud/ZkPaymentMain8004.java
create mode 100644 cloud-provider-zk-payment8004/src/main/java/com/lcry/springcloud/controller/PaymentController.java
create mode 100644 cloud-provider-zk-payment8004/src/main/resources/application.yml
diff --git a/.gitignore b/.gitignore
index 8e02a3f..087c813 100644
--- a/.gitignore
+++ b/.gitignore
@@ -104,4 +104,12 @@ cloud-consumer-order80/cloud-consumer-order80.iml
cloud-consumer-order80/src/test/
cloud-api-commons/cloud-api-commons.iml
cloud-api-commons/target/
-cloud-api-commons/src/test/
\ No newline at end of file
+cloud-api-commons/src/test/
+cloud-eureka-server7001/src/test/
+cloud-eureka-server7001/target/
+cloud-eureka-server7002/src/test/
+cloud-eureka-server7002/target/
+cloud-provider-payment8002/src/test/
+cloud-provider-payment8002/target/
+cloud-consumer-zk-order80/target/
+cloud-provider-zk-payment8004/target/
diff --git a/cloud-consumer-order80/pom.xml b/cloud-consumer-order80/pom.xml
index 83a83b5..696a5c7 100644
--- a/cloud-consumer-order80/pom.xml
+++ b/cloud-consumer-order80/pom.xml
@@ -13,6 +13,11 @@
cloud-consumer-order80
+
+
+ org.springframework.cloud
+ spring-cloud-starter-netflix-eureka-client
+
com.lcry
diff --git a/cloud-consumer-order80/src/main/java/com/lcry/springcloud/OrderMain80.java b/cloud-consumer-order80/src/main/java/com/lcry/springcloud/OrderMain80.java
index a21ae99..9182220 100644
--- a/cloud-consumer-order80/src/main/java/com/lcry/springcloud/OrderMain80.java
+++ b/cloud-consumer-order80/src/main/java/com/lcry/springcloud/OrderMain80.java
@@ -2,6 +2,8 @@ package com.lcry.springcloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
/**
* OrderMain80
@@ -10,8 +12,10 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
* @date 2020/03/14 11:59
*/
@SpringBootApplication
+@EnableEurekaClient
+@EnableDiscoveryClient
public class OrderMain80 {
public static void main(String[] args) {
SpringApplication.run(OrderMain80.class, args);
}
-}
+}
\ No newline at end of file
diff --git a/cloud-consumer-order80/src/main/java/com/lcry/springcloud/config/ApplicationContextConfig.java b/cloud-consumer-order80/src/main/java/com/lcry/springcloud/config/ApplicationContextConfig.java
index 0e30588..6d61e18 100644
--- a/cloud-consumer-order80/src/main/java/com/lcry/springcloud/config/ApplicationContextConfig.java
+++ b/cloud-consumer-order80/src/main/java/com/lcry/springcloud/config/ApplicationContextConfig.java
@@ -1,5 +1,6 @@
package com.lcry.springcloud.config;
+import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
@@ -14,6 +15,7 @@ import org.springframework.web.client.RestTemplate;
@Configuration
public class ApplicationContextConfig {
@Bean //相当于Spring中applicationContext.xml中
+ @LoadBalanced //使用此注解赋予RestTemplate负载均衡的能力
public RestTemplate getRestTemplate() {
return new RestTemplate();
}
diff --git a/cloud-consumer-order80/src/main/java/com/lcry/springcloud/controller/OrderController.java b/cloud-consumer-order80/src/main/java/com/lcry/springcloud/controller/OrderController.java
index 489e3fe..7bdf688 100644
--- a/cloud-consumer-order80/src/main/java/com/lcry/springcloud/controller/OrderController.java
+++ b/cloud-consumer-order80/src/main/java/com/lcry/springcloud/controller/OrderController.java
@@ -19,7 +19,9 @@ import javax.annotation.Resource;
@RestController
@Slf4j
public class OrderController {
- public static final String PAYMENT_URL = "http://localhost:8001";
+// public static final String PAYMENT_URL = "http://localhost:8001";
+ //集群应用通过服务名调用,注意配置需要加上@LoadBalanced注解启用负载均衡
+ public static final String PAYMENT_URL = "http://CLOUD-PAYMENT-SERVICE";
@Resource
private RestTemplate restTemplate;
diff --git a/cloud-consumer-order80/src/main/resources/application.yml b/cloud-consumer-order80/src/main/resources/application.yml
index ff04e0d..eeb6709 100644
--- a/cloud-consumer-order80/src/main/resources/application.yml
+++ b/cloud-consumer-order80/src/main/resources/application.yml
@@ -3,4 +3,14 @@ server:
spring:
application:
- name: cloud-order-service
\ No newline at end of file
+ name: cloud-order-service
+
+eureka:
+ client:
+ #表示是否将自己注册进EurekaServer,默认为true
+ register-with-eureka: true
+ #是否从EurekaServer中抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
+ fetchRegistry: true
+ service-url:
+ #defaultZone: http://localhost:7001/eureka #单机版
+ defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka #集群版
\ No newline at end of file
diff --git a/cloud-consumer-zk-order80/pom.xml b/cloud-consumer-zk-order80/pom.xml
new file mode 100644
index 0000000..2d10287
--- /dev/null
+++ b/cloud-consumer-zk-order80/pom.xml
@@ -0,0 +1,56 @@
+
+
+
+ 2020SpringCloud
+ com.lcry
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+
+ cloud-consumer-zk-order80
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-zookeeper-discovery
+
+
+
+ org.apache.zookeeper
+ zookeeper
+
+
+
+
+
+ org.apache.zookeeper
+ zookeeper
+ 3.4.14
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ runtime
+ true
+
+
+ org.projectlombok
+ lombok
+ true
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
\ No newline at end of file
diff --git a/cloud-consumer-zk-order80/src/main/java/com/lcry/springcloud/ZkOrderMain80.java b/cloud-consumer-zk-order80/src/main/java/com/lcry/springcloud/ZkOrderMain80.java
new file mode 100644
index 0000000..e9be31d
--- /dev/null
+++ b/cloud-consumer-zk-order80/src/main/java/com/lcry/springcloud/ZkOrderMain80.java
@@ -0,0 +1,20 @@
+package com.lcry.springcloud;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+
+/**
+ * ZkOrderMain80
+ *
+ * @author lcry
+ * @date 2020/03/14 16:19
+ * ZK版本消费方:只是测试,不写任何具体业务
+ */
+@SpringBootApplication
+@EnableDiscoveryClient
+public class ZkOrderMain80 {
+ public static void main(String[] args) {
+ SpringApplication.run(ZkOrderMain80.class, args);
+ }
+}
diff --git a/cloud-consumer-zk-order80/src/main/java/com/lcry/springcloud/config/ApplicationContextConfig.java b/cloud-consumer-zk-order80/src/main/java/com/lcry/springcloud/config/ApplicationContextConfig.java
new file mode 100644
index 0000000..73893a3
--- /dev/null
+++ b/cloud-consumer-zk-order80/src/main/java/com/lcry/springcloud/config/ApplicationContextConfig.java
@@ -0,0 +1,22 @@
+package com.lcry.springcloud.config;
+
+import org.springframework.cloud.client.loadbalancer.LoadBalanced;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.client.RestTemplate;
+
+/**
+ * ApplicationContextConfig
+ *
+ * @author lcry
+ * @date 2020/03/14 16:21
+ * 配置类
+ */
+@Configuration
+public class ApplicationContextConfig {
+ @Bean
+ @LoadBalanced
+ public RestTemplate restTemplate() {
+ return new RestTemplate();
+ }
+}
diff --git a/cloud-consumer-zk-order80/src/main/java/com/lcry/springcloud/controller/OrderController.java b/cloud-consumer-zk-order80/src/main/java/com/lcry/springcloud/controller/OrderController.java
new file mode 100644
index 0000000..88c146d
--- /dev/null
+++ b/cloud-consumer-zk-order80/src/main/java/com/lcry/springcloud/controller/OrderController.java
@@ -0,0 +1,29 @@
+package com.lcry.springcloud.controller;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
+
+import javax.annotation.Resource;
+
+/**
+ * OrderZkController
+ *
+ * @author lcry
+ * @date 2020/03/14 16:21
+ */
+@RestController
+@Slf4j
+public class OrderController {
+ public static final String INVOKE_URL = "http://cloud-provider-payment";
+
+ @Resource
+ private RestTemplate restTemplate;
+
+ @GetMapping(value = "/consumer/payment/zk")
+ public String paymentInfo() {
+ String result = restTemplate.getForObject(INVOKE_URL + "/payment/zk", String.class);
+ return result;
+ }
+}
diff --git a/cloud-consumer-zk-order80/src/main/resources/application.yml b/cloud-consumer-zk-order80/src/main/resources/application.yml
new file mode 100644
index 0000000..1953058
--- /dev/null
+++ b/cloud-consumer-zk-order80/src/main/resources/application.yml
@@ -0,0 +1,11 @@
+#80表示注册到zookeeper服务器的支付服务提供者端口号
+server:
+ port: 80
+
+#服务别名——注册到zookeeper注册中心的名称
+spring:
+ application:
+ name: cloud-consumer-order
+ cloud:
+ zookeeper:
+ connect-string: 127.0.0.1:2181
\ No newline at end of file
diff --git a/cloud-eureka-server7001/pom.xml b/cloud-eureka-server7001/pom.xml
new file mode 100644
index 0000000..1d2a52a
--- /dev/null
+++ b/cloud-eureka-server7001/pom.xml
@@ -0,0 +1,51 @@
+
+
+
+ 2020SpringCloud
+ com.lcry
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+
+ cloud-eureka-server7001
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-netflix-eureka-server
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ runtime
+ true
+
+
+ org.projectlombok
+ lombok
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ junit
+ junit
+
+
+
+
\ No newline at end of file
diff --git a/cloud-eureka-server7001/src/main/java/com/lcry/springcloud/EurekaMain7001.java b/cloud-eureka-server7001/src/main/java/com/lcry/springcloud/EurekaMain7001.java
new file mode 100644
index 0000000..41b3369
--- /dev/null
+++ b/cloud-eureka-server7001/src/main/java/com/lcry/springcloud/EurekaMain7001.java
@@ -0,0 +1,20 @@
+package com.lcry.springcloud;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
+
+/**
+ * EurekaMain7001
+ *
+ * @author lcry
+ * @date 2020/03/14 13:02
+ */
+@SpringBootApplication
+@EnableEurekaServer
+public class EurekaMain7001 {
+ public static void main(String[] args) {
+ SpringApplication.run(EurekaMain7001.class, args);
+ }
+}
diff --git a/cloud-eureka-server7001/src/main/resources/application.yml b/cloud-eureka-server7001/src/main/resources/application.yml
new file mode 100644
index 0000000..17f8186
--- /dev/null
+++ b/cloud-eureka-server7001/src/main/resources/application.yml
@@ -0,0 +1,19 @@
+server:
+ port: 7001
+
+eureka:
+ instance:
+ hostname: eureka7001.com #Eureka服务端的实例名称
+ client:
+ #false表示不向注册中心中注册自己
+ register-with-eureka: false
+ #false表示自己就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
+ fetch-registry: false
+ service-url:
+ #设置与Eureka Server之间交互的地址,查询服务和注册服务都需要依赖这个地址
+ #defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #单机版,指向自己
+ defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka #集群版
+ server:
+ #关闭Eureka自我保护机制,保证不可用服务被及时剔除
+ enable-self-preservation: false
+ eviction-interval-timer-in-ms: 2000
\ No newline at end of file
diff --git a/cloud-eureka-server7002/pom.xml b/cloud-eureka-server7002/pom.xml
new file mode 100644
index 0000000..060fc0d
--- /dev/null
+++ b/cloud-eureka-server7002/pom.xml
@@ -0,0 +1,52 @@
+
+
+
+ 2020SpringCloud
+ com.lcry
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+
+ cloud-eureka-server7002
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-netflix-eureka-server
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ runtime
+ true
+
+
+ org.projectlombok
+ lombok
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ junit
+ junit
+
+
+
+
+
\ No newline at end of file
diff --git a/cloud-eureka-server7002/src/main/java/com/lcry/springcloud/EurekaMain7002.java b/cloud-eureka-server7002/src/main/java/com/lcry/springcloud/EurekaMain7002.java
new file mode 100644
index 0000000..1d8c27b
--- /dev/null
+++ b/cloud-eureka-server7002/src/main/java/com/lcry/springcloud/EurekaMain7002.java
@@ -0,0 +1,19 @@
+package com.lcry.springcloud;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
+
+/**
+ * EurekaMain7002
+ *
+ * @author lcry
+ * @date 2020/03/14 13:42
+ */
+@SpringBootApplication
+@EnableEurekaServer
+public class EurekaMain7002 {
+ public static void main(String[] args) {
+ SpringApplication.run(EurekaMain7002.class, args);
+ }
+}
diff --git a/cloud-eureka-server7002/src/main/resources/application.yml b/cloud-eureka-server7002/src/main/resources/application.yml
new file mode 100644
index 0000000..5c192fd
--- /dev/null
+++ b/cloud-eureka-server7002/src/main/resources/application.yml
@@ -0,0 +1,19 @@
+server:
+ port: 7002
+
+eureka:
+ instance:
+ hostname: eureka7002.com #Eureka服务端的实例名称
+ client:
+ #false表示不向注册中心中注册自己
+ register-with-eureka: false
+ #false表示自己就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
+ fetch-registry: false
+ service-url:
+ #设置与Eureka Server之间交互的地址,查询服务和注册服务都需要依赖这个地址
+ #defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #单机版,指向自己
+ defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka #集群版
+ server:
+ #关闭Eureka自我保护机制,保证不可用服务被及时剔除
+ enable-self-preservation: false
+ eviction-interval-timer-in-ms: 2000
\ No newline at end of file
diff --git a/cloud-provider-payment8001/pom.xml b/cloud-provider-payment8001/pom.xml
index 9a6965a..50dd9d6 100644
--- a/cloud-provider-payment8001/pom.xml
+++ b/cloud-provider-payment8001/pom.xml
@@ -13,6 +13,11 @@
cloud-provider-payment8001
+
+
+ org.springframework.cloud
+ spring-cloud-starter-netflix-eureka-client
+
com.lcry
diff --git a/cloud-provider-payment8001/src/main/java/com/lcry/springcloud/PaymentMain8001.java b/cloud-provider-payment8001/src/main/java/com/lcry/springcloud/PaymentMain8001.java
index c07dd1f..7171137 100644
--- a/cloud-provider-payment8001/src/main/java/com/lcry/springcloud/PaymentMain8001.java
+++ b/cloud-provider-payment8001/src/main/java/com/lcry/springcloud/PaymentMain8001.java
@@ -2,6 +2,8 @@ package com.lcry.springcloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
/**
* PaymentMain8001
@@ -10,6 +12,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
* @date 2020/03/13 20:54
*/
@SpringBootApplication
+@EnableEurekaClient
+@EnableDiscoveryClient //Discovery服务发现
public class PaymentMain8001 {
public static void main(String[] args) {
SpringApplication.run(PaymentMain8001.class, args);
diff --git a/cloud-provider-payment8001/src/main/java/com/lcry/springcloud/controller/PaymentController.java b/cloud-provider-payment8001/src/main/java/com/lcry/springcloud/controller/PaymentController.java
index 3bbeb2f..c6d7885 100644
--- a/cloud-provider-payment8001/src/main/java/com/lcry/springcloud/controller/PaymentController.java
+++ b/cloud-provider-payment8001/src/main/java/com/lcry/springcloud/controller/PaymentController.java
@@ -4,9 +4,12 @@ import com.lcry.springcloud.entities.CommonResult;
import com.lcry.springcloud.entities.Payment;
import com.lcry.springcloud.service.PaymentService;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.cloud.client.ServiceInstance;
+import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
+import java.util.List;
/**
* PaymentController
@@ -21,6 +24,9 @@ public class PaymentController {
@Resource
private PaymentService paymentService;
+ @Resource
+ private DiscoveryClient discoveryClient;
+
@PostMapping(value = "/payment/create")
public CommonResult create(@RequestBody Payment payment) {
int result = paymentService.create(payment);
@@ -44,4 +50,22 @@ public class PaymentController {
return new CommonResult(444, "没有对应记录,查询ID:" + id, null);
}
}
+
+
+ @GetMapping(value = "/payment/discovery")
+ public Object discovery() {
+ //查询Eureka上面注册了几个服务
+ List services = discoveryClient.getServices();
+ for (String service : services) {
+ log.info("service:" + service);
+ }
+
+ //查询对应名字下面有几个示例
+ List instances = discoveryClient.getInstances("CLOUD-PAYMENT-SERVICE");
+ for (ServiceInstance instance : instances) {
+ log.info(instance.getServiceId() + "\t" + instance.getHost()
+ + "\t" + instance.getPort() + "\t" + instance.getUri());
+ }
+ return this.discoveryClient;
+ }
}
diff --git a/cloud-provider-payment8001/src/main/resources/application.yml b/cloud-provider-payment8001/src/main/resources/application.yml
index 66c447b..6d44780 100644
--- a/cloud-provider-payment8001/src/main/resources/application.yml
+++ b/cloud-provider-payment8001/src/main/resources/application.yml
@@ -11,6 +11,23 @@ spring:
username: root
password: lcry
+eureka:
+ client:
+ #表示是否将自己注册进EurekaServer,默认为true
+ register-with-eureka: true
+ #是否从EurekaServer中抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
+ fetchRegistry: true
+ service-url:
+ #defaultZone: http://localhost:7001/eureka #单机版
+ defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka #集群版
+ instance:
+ instance-id: payment8001 #修改Status名称
+ prefer-ip-address: true
+ #Eureka客户端向服务端发送心跳的时间间隔,单位为秒(默认30)
+ lease-renewal-interval-in-seconds: 10
+ #Eureka服务端在收到最后一次心跳后等待的时间上限,单位为秒(默认90),超时剔除服务
+ lease-expiration-duration-in-seconds: 60
+
mybatis:
mapperLocations: classpath:mapper/*.xml
type-aliases-package: com.lcry.springcloud.entities # 所有Entity别名类所在包
\ No newline at end of file
diff --git a/cloud-provider-payment8002/pom.xml b/cloud-provider-payment8002/pom.xml
new file mode 100644
index 0000000..fa94a61
--- /dev/null
+++ b/cloud-provider-payment8002/pom.xml
@@ -0,0 +1,73 @@
+
+
+
+ 2020SpringCloud
+ com.lcry
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+
+ cloud-provider-payment8002
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-netflix-eureka-client
+
+
+
+ com.lcry
+ cloud-api-commons
+ ${project.version}
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+
+
+ com.alibaba
+ druid-spring-boot-starter
+ 1.1.10
+
+
+
+ mysql
+ mysql-connector-java
+
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ runtime
+ true
+
+
+ org.projectlombok
+ lombok
+ true
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
\ No newline at end of file
diff --git a/cloud-provider-payment8002/src/main/java/com/lcry/springcloud/PaymentMain8002.java b/cloud-provider-payment8002/src/main/java/com/lcry/springcloud/PaymentMain8002.java
new file mode 100644
index 0000000..c958854
--- /dev/null
+++ b/cloud-provider-payment8002/src/main/java/com/lcry/springcloud/PaymentMain8002.java
@@ -0,0 +1,21 @@
+package com.lcry.springcloud;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+
+/**
+ * PaymentMain8001
+ *
+ * @author lcry
+ * @date 2020/03/13 20:54
+ */
+@SpringBootApplication
+@EnableEurekaClient
+@EnableDiscoveryClient //Discovery服务发现
+public class PaymentMain8002 {
+ public static void main(String[] args) {
+ SpringApplication.run(PaymentMain8002.class, args);
+ }
+}
diff --git a/cloud-provider-payment8002/src/main/java/com/lcry/springcloud/controller/PaymentController.java b/cloud-provider-payment8002/src/main/java/com/lcry/springcloud/controller/PaymentController.java
new file mode 100644
index 0000000..12dd001
--- /dev/null
+++ b/cloud-provider-payment8002/src/main/java/com/lcry/springcloud/controller/PaymentController.java
@@ -0,0 +1,70 @@
+package com.lcry.springcloud.controller;
+
+import com.lcry.springcloud.entities.CommonResult;
+import com.lcry.springcloud.entities.Payment;
+import com.lcry.springcloud.service.PaymentService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.cloud.client.ServiceInstance;
+import org.springframework.cloud.client.discovery.DiscoveryClient;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * PaymentController
+ *
+ * @author lcry
+ * @date 2020/03/13 21:39
+ * 控制器
+ */
+@RestController
+@Slf4j
+public class PaymentController {
+ @Resource
+ private PaymentService paymentService;
+
+ @Resource
+ private DiscoveryClient discoveryClient;
+
+ @PostMapping(value = "/payment/create")
+ public CommonResult create(@RequestBody Payment payment) {
+ int result = paymentService.create(payment);
+ log.info("插入结果:" + result);
+
+ if (result > 0) {
+ return new CommonResult(200, "插入数据成功", result);
+ } else {
+ return new CommonResult(444, "插入数据失败", null);
+ }
+ }
+
+ @GetMapping(value = "/payment/get/{id}")
+ public CommonResult getPaymentById(@PathVariable("id") Long id) {
+ Payment payment = paymentService.getPaymentById(id);
+ log.info("查询结果:" + payment);
+
+ if (payment != null) {
+ return new CommonResult(200, "查询成功", payment);
+ } else {
+ return new CommonResult(444, "没有对应记录,查询ID:" + id, null);
+ }
+ }
+
+ @GetMapping(value = "/payment/discovery")
+ public Object discovery() {
+ //查询Eureka上面注册了几个服务
+ List services = discoveryClient.getServices();
+ for (String service : services) {
+ log.info("service:" + service);
+ }
+
+ //查询对应名字下面有几个示例
+ List instances = discoveryClient.getInstances("CLOUD-PAYMENT-SERVICE");
+ for (ServiceInstance instance : instances) {
+ log.info(instance.getServiceId() + "\t" + instance.getHost()
+ + "\t" + instance.getPort() + "\t" + instance.getUri());
+ }
+ return this.discoveryClient;
+ }
+}
diff --git a/cloud-provider-payment8002/src/main/java/com/lcry/springcloud/dao/PaymentDao.java b/cloud-provider-payment8002/src/main/java/com/lcry/springcloud/dao/PaymentDao.java
new file mode 100644
index 0000000..04e9531
--- /dev/null
+++ b/cloud-provider-payment8002/src/main/java/com/lcry/springcloud/dao/PaymentDao.java
@@ -0,0 +1,19 @@
+package com.lcry.springcloud.dao;
+
+import com.lcry.springcloud.entities.Payment;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * PaymentDao
+ *
+ * @author lcry
+ * @date 2020/03/13 21:30
+ * Dao层
+ */
+@Mapper
+public interface PaymentDao {
+ int create(Payment payment); //增
+
+ Payment getPaymentById(@Param("id") Long id); //根据id查询
+}
diff --git a/cloud-provider-payment8002/src/main/java/com/lcry/springcloud/service/PaymentService.java b/cloud-provider-payment8002/src/main/java/com/lcry/springcloud/service/PaymentService.java
new file mode 100644
index 0000000..c30d8e7
--- /dev/null
+++ b/cloud-provider-payment8002/src/main/java/com/lcry/springcloud/service/PaymentService.java
@@ -0,0 +1,16 @@
+package com.lcry.springcloud.service;
+
+import com.lcry.springcloud.entities.Payment;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * PaymentService
+ *
+ * @author lcry
+ * @date 2020/03/13 21:28
+ */
+public interface PaymentService {
+ int create(Payment payment); //增
+
+ Payment getPaymentById(@Param("id") Long id); //根据id查询
+}
diff --git a/cloud-provider-payment8002/src/main/java/com/lcry/springcloud/service/impl/PaymentServiceImpl.java b/cloud-provider-payment8002/src/main/java/com/lcry/springcloud/service/impl/PaymentServiceImpl.java
new file mode 100644
index 0000000..c76ee35
--- /dev/null
+++ b/cloud-provider-payment8002/src/main/java/com/lcry/springcloud/service/impl/PaymentServiceImpl.java
@@ -0,0 +1,31 @@
+package com.lcry.springcloud.service.impl;
+
+import com.lcry.springcloud.dao.PaymentDao;
+import com.lcry.springcloud.entities.Payment;
+import com.lcry.springcloud.service.PaymentService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * PaymentServiceImpl
+ *
+ * @author lcry
+ * @date 2020/03/13 21:29
+ * service实现类
+ */
+@Service
+public class PaymentServiceImpl implements PaymentService {
+ @Resource
+ private PaymentDao paymentDao;
+
+ @Override
+ public int create(Payment payment) {
+ return paymentDao.create(payment);
+ }
+
+ @Override
+ public Payment getPaymentById(Long id) {
+ return paymentDao.getPaymentById(id);
+ }
+}
diff --git a/cloud-provider-payment8002/src/main/resources/application.yml b/cloud-provider-payment8002/src/main/resources/application.yml
new file mode 100644
index 0000000..3f598a0
--- /dev/null
+++ b/cloud-provider-payment8002/src/main/resources/application.yml
@@ -0,0 +1,33 @@
+server:
+ port: 8002
+
+spring:
+ application:
+ name: cloud-payment-service
+ datasource:
+ type: com.alibaba.druid.pool.DruidDataSource # 当前数据源操作类型
+ driver-class-name: org.gjt.mm.mysql.Driver # mysql驱动包
+ url: jdbc:mysql://localhost:3306/db2020?useUnicode=true&characterEncoding=utf-8&useSSL=false
+ username: root
+ password: lcry
+
+eureka:
+ client:
+ #表示是否将自己注册进EurekaServer,默认为true
+ register-with-eureka: true
+ #是否从EurekaServer中抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
+ fetchRegistry: true
+ service-url:
+ #defaultZone: http://localhost:7001/eureka #单机版
+ defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka #集群版
+ instance:
+ instance-id: payment8002 #修改Status名称
+ prefer-ip-address: true
+ #Eureka客户端向服务端发送心跳的时间间隔,单位为秒(默认30)
+ lease-renewal-interval-in-seconds: 10
+ #Eureka服务端在收到最后一次心跳后等待的时间上限,单位为秒(默认90),超时剔除服务
+ lease-expiration-duration-in-seconds: 60
+
+mybatis:
+ mapperLocations: classpath:mapper/*.xml
+ type-aliases-package: com.lcry.springcloud.entities # 所有Entity别名类所在包
\ No newline at end of file
diff --git a/cloud-provider-payment8002/src/main/resources/db/payment.sql b/cloud-provider-payment8002/src/main/resources/db/payment.sql
new file mode 100644
index 0000000..2ea110e
--- /dev/null
+++ b/cloud-provider-payment8002/src/main/resources/db/payment.sql
@@ -0,0 +1,37 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server : 本地mysql
+ Source Server Type : MySQL
+ Source Server Version : 50717
+ Source Host : localhost:3306
+ Source Schema : db2020
+
+ Target Server Type : MySQL
+ Target Server Version : 50717
+ File Encoding : 65001
+
+ Date: 13/03/2020 22:40:33
+*/
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for payment
+-- ----------------------------
+DROP TABLE IF EXISTS `payment`;
+CREATE TABLE `payment` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
+ `serial` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 25 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of payment
+-- ----------------------------
+INSERT INTO `payment` VALUES (1, 'aaa');
+INSERT INTO `payment` VALUES (22, 'bbbb');
+INSERT INTO `payment` VALUES (24, '123');
+
+SET FOREIGN_KEY_CHECKS = 1;
diff --git a/cloud-provider-payment8002/src/main/resources/mapper/PaymentMapper.xml b/cloud-provider-payment8002/src/main/resources/mapper/PaymentMapper.xml
new file mode 100644
index 0000000..dbfa242
--- /dev/null
+++ b/cloud-provider-payment8002/src/main/resources/mapper/PaymentMapper.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+ insert into payment(serial) values(#{serial});
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cloud-provider-zk-payment8004/pom.xml b/cloud-provider-zk-payment8004/pom.xml
new file mode 100644
index 0000000..342d0fc
--- /dev/null
+++ b/cloud-provider-zk-payment8004/pom.xml
@@ -0,0 +1,60 @@
+
+
+
+ 2020SpringCloud
+ com.lcry
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+
+ cloud-provider-zk-payment8004
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-zookeeper-discovery
+
+
+
+ org.apache.zookeeper
+ zookeeper
+
+
+
+
+
+ org.apache.zookeeper
+ zookeeper
+ 3.4.14
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ runtime
+ true
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.projectlombok
+ lombok
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/cloud-provider-zk-payment8004/src/main/java/com/lcry/springcloud/ZkPaymentMain8004.java b/cloud-provider-zk-payment8004/src/main/java/com/lcry/springcloud/ZkPaymentMain8004.java
new file mode 100644
index 0000000..5199bac
--- /dev/null
+++ b/cloud-provider-zk-payment8004/src/main/java/com/lcry/springcloud/ZkPaymentMain8004.java
@@ -0,0 +1,20 @@
+package com.lcry.springcloud;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+
+/**
+ * ZkPaymentMain8004
+ *
+ * @author lcry
+ * @date 2020/03/14 16:08
+ * ZK版本服务方:只是测试,不写任何具体业务
+ */
+@SpringBootApplication
+@EnableDiscoveryClient //该注解用于向使用consul或者zookeeper作为注册中心时注册服务
+public class ZkPaymentMain8004 {
+ public static void main(String[] args) {
+ SpringApplication.run(ZkPaymentMain8004.class, args);
+ }
+}
diff --git a/cloud-provider-zk-payment8004/src/main/java/com/lcry/springcloud/controller/PaymentController.java b/cloud-provider-zk-payment8004/src/main/java/com/lcry/springcloud/controller/PaymentController.java
new file mode 100644
index 0000000..4296174
--- /dev/null
+++ b/cloud-provider-zk-payment8004/src/main/java/com/lcry/springcloud/controller/PaymentController.java
@@ -0,0 +1,30 @@
+package com.lcry.springcloud.controller;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.UUID;
+
+/**
+ * PaymentController
+ *
+ * @author lcry
+ * @date 2020/03/14 16:11
+ */
+@RestController
+@Slf4j
+public class PaymentController {
+ @Value("${server.port}")
+ private String serverPort;
+
+ /*
+ 测试注册服务到zk
+ */
+ @RequestMapping(value = "/payment/zk")
+ public String paymentzk() {
+ return "SpringCloud with zookeeper:" + serverPort + "\t" +
+ UUID.randomUUID().toString();
+ }
+}
diff --git a/cloud-provider-zk-payment8004/src/main/resources/application.yml b/cloud-provider-zk-payment8004/src/main/resources/application.yml
new file mode 100644
index 0000000..1c51637
--- /dev/null
+++ b/cloud-provider-zk-payment8004/src/main/resources/application.yml
@@ -0,0 +1,11 @@
+#8004表示注册到zookeeper服务器的支付服务提供者端口号
+server:
+ port: 8004
+
+#服务别名——注册到zookeeper注册中心的名称
+spring:
+ application:
+ name: cloud-provider-payment
+ cloud:
+ zookeeper:
+ connect-string: 127.0.0.1:2181
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 21f46db..fbcc242 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,8 +9,13 @@
1.0-SNAPSHOT
cloud-provider-payment8001
+ cloud-provider-payment8002
cloud-consumer-order80
cloud-api-commons
+ cloud-eureka-server7001
+ cloud-eureka-server7002
+ cloud-provider-zk-payment8004
+ cloud-consumer-zk-order80
pom
--
GitLab