目录
一、支付服务注册进入zookeeper
一、Linux下安装zookeeper3.4.9
二、创建module
三、修改pom
四、编写yml
五、编写主启动类
六、编写逻辑代码
七、启动测试
二、订单服务注册进入zookeeper
1、创建模块
2、修改pom
3、编写yml
4、编写主启动类
5、编写逻辑代码
(1)config包下
(2)controller包下
6、运行测试
eureka官方已经宣布不再更新了,今天我们使用zookeeper来代替eureka。
一、支付服务注册进入zookeeper
一、Linux下安装zookeeper3.4.9
这个网上有十分详细的教程,不再赘述。
可参考在 CentOS7 上安装 zookeeper-3.4.9 服务_程序员记事本-CSDN博客
二、创建module
创建一个普通maven工程,命名为cloud-provider-payment8004。
三、修改pom
cloud
com.shang.cloud
1.0-SNAPSHOT
4.0.0
cloud-provider-payment8004
org.springframework.boot
spring-boot-starter-web
com.shang.cloud
cloud-api-commons
${project.version}
org.springframework.cloud
spring-cloud-starter-zookeeper-discovery
org.apache.zookeeper
zookeeper
org.apache.zookeeper
zookeeper
3.4.9
org.springframework.boot
spring-boot-devtools
runtime
true
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
四、编写yml
#8004表示注册到zookeeper服务器的支付服务提供者端口号
server:
port: 8004
#服务别名----注册zookeeper到注册中心名称
spring:
application:
name: cloud-provider-payment
cloud:
zookeeper:
connect-string: xx.xx.xx.xx:2181 #自己的Linux的ip地址:2181
五、编写主启动类
@SpringBootApplication
@EnableDiscoveryClient //用于向使用consul或者zookeeper作为注册中心时注册服务
public class PaymentMain8004 {
public static void main(String[] args) {
SpringApplication.run(PaymentMain8004.class, args);
}
}
六、编写逻辑代码
controller:
@RestController
@Slf4j
public class PaymentController {
@Value("${server.port}")
private String serverPort;
@RequestMapping(value = "/payment/zk")
public String payment(){
return "springcloud with zookeeper: "+ serverPort+"t"+ UUID.randomUUID().toString();
}
}
七、启动测试
启动8004服务。
1、在浏览器地址栏中输入
http://localhost:8004/payment/zk
2、在Linux的zookeeper客户端中
说明注册成功。
二、订单服务注册进入zookeeper
1、创建模块
创建cloud-consumerzk-order80
2、修改pom
pom文件与8004一致
3、编写yml
yml文件可以直接复制8004的,然后将端口号改为80(因为不想和Nginx抢80端口,我改成了90)
4、编写主启动类
@SpringBootApplication
@EnableDiscoveryClient
public class OrderZKMain80 {
public static void main(String[] args) {
SpringApplication.run(OrderZKMain80.class, args);
}
}
5、编写逻辑代码
(1)config包下
@Configuration
public class ApplicationContextConfig {
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}
(2)controller包下
@RestController
@Slf4j
public class OrderZKController {
public static final String INVOKE_URL = "http://cloud-provider-payment";
@Autowired
private RestTemplate restTemplate;
@GetMapping(value = "/consumer/payment/zk")
public String paymentInfo(){
String result = restTemplate.getForObject(INVOKE_URL+"/payment/zk",String.class);
return result;
}
}
@Configuration
public class ApplicationContextConfig {
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}
(2)controller包下
@RestController
@Slf4j
public class OrderZKController {
public static final String INVOKE_URL = "http://cloud-provider-payment";
@Autowired
private RestTemplate restTemplate;
@GetMapping(value = "/consumer/payment/zk")
public String paymentInfo(){
String result = restTemplate.getForObject(INVOKE_URL+"/payment/zk",String.class);
return result;
}
}
6、运行测试
先打开8004服务,再打开80服务
在浏览器地址栏中输入
http://localhost:90/consumer/payment/zk



