SpringCloud父工程版本说明Hoxton.SR8
<?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">
<modelVersion>4.0.0</modelVersion>
<groupId>org.sec.zhoukun</groupId>
<artifactId>springcloud2</artifactId>
<version>1.0-SNAPSHOT</version>
<modules>
</modules>
<packaging>pom</packaging>
<!--统一jar包管理-->
<!--统一管理jar包版本-->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.cloud.version>Hoxton.SR8</spring.cloud.version>
<spring.boot.version>2.3.3.RELEASE</spring.boot.version>
<spring.cloud.alibaba>2.2.1.RELEASE</spring.cloud.alibaba>
<junit.version>4.11</junit.version>
<lombok.version>1.18.12</lombok.version>
<log4j.version>1.2.17</log4j.version>
<mysql.version>8.0.21</mysql.version>
<druid.version>1.2.1</druid.version>
<mybatisplus.version>3.1.0</mybatisplus.version>
<api.public.version>1.0-SNAPSHOT</api.public.version>
</properties>
<!--子模块继承之后,提供作用:锁定版本+子module不用谢groupId和version-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.sec.zhoukun</groupId>
<artifactId>springcloud-api-commons</artifactId>
<version>${api.public.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.3.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatisplus.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
zookeeper
服务提供者
zookeeper常用命令
- 服务器安装zookeeper
1.下载
docker pull zookeeper
2.运行
docker run -d --name zookeeper -p 2181:2181 zookeeper:latest
3.查看
docker ps
- pom
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
<exclusions>
<!--移除原版本-->
<exclusion>
<artifactId>zookeeper</artifactId>
<groupId>org.apache.zookeeper</groupId>
</exclusion>
</exclusions>
</dependency>
<!--zk工具包-->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.6.2</version>
<!--排除这个slf4j-log4j12-->
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
- yml
server:
port: 8001
spring:
application:
name: springcloud-payment-server
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/springcloudpayment?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
username: root
password: 123456
#zookeeper配置
cloud:
zookeeper:
connect-string: 106.55.168.234:2181
#info配置(完善监控信息)actuator
info:
app.name: "springcloud-payment-server-zookeeper-8001"
auth.name: "zhoukun"
mybatis-plus:
mapper-locations: classpath:mapper/*.xml
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 控制台输出日志
type-aliases-package: com.sec.zhoukun.pojo #所有实体类包
- 启动类
@MapperScan("com.zhoukun.cloud.mapper")
@SpringBootApplication
@EnableDiscoveryClient
public class zookeeperproviderPayment8001 {
public static void main(String[] args) {
SpringApplication.run(zookeeperproviderPayment8001.class,args);
}
}
服务消费者
pom
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
<exclusions>
<!--移除原版本-->
<exclusion>
<artifactId>zookeeper</artifactId>
<groupId>org.apache.zookeeper</groupId>
</exclusion>
</exclusions>
</dependency>
<!--zk工具包-->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.6.2</version>
<!--排除这个slf4j-log4j12-->
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
yml
server:
port: 80
spring:
application:
name: springcloud-payment-consument
#zookeeper配置
cloud:
zookeeper:
connect-string: 106.55.168.234:2181
启动类
/**
* @author zhoukun 86547462@qq.com
* @version 1.0
* @date 2020/10/24 21:00
*/
@SpringBootApplication
@EnableDiscoveryClient
public class zookeeperconsumersPayment80 {
public static void main(String[] args) {
SpringApplication.run(zookeeperconsumersPayment80.class,args);
}
}
config
@Configuration
public class ApplicationConfig {
//LoadBalanced配置负载均衡
@Bean
@LoadBalanced
public RestTemplate getrestTemplate(){
return new RestTemplate();
}
}
controller
/**
* @author zhoukun 86547462@qq.com
* @version 1.0
* @date 2020/10/24 21:06
*/
@RestController
@Log4j2
public class PaymentController {
@Autowired
RestTemplate template;
private static final String PAYMENT_URL="http://springcloud-payment-server";
//查询
@GetMapping("/con/query")
public String query()
{
return template.getForObject(PAYMENT_URL+"/payment/query", String.class);
}
//查询单个
@GetMapping("/con/queryById/{Id}")
public String queryById(@PathVariable String Id)
{
return template.getForObject(PAYMENT_URL+"/payment/queryById/"+Id, String.class);
}
//修改余额
@GetMapping("/con/banUP/{Id}/{money}")
public String banUP(@PathVariable String Id,
@PathVariable BigDecimal money)
{
return template.getForObject(PAYMENT_URL+"/payment/banUP/"+Id+"/"+money, String.class);
}
}
consul
下载运行
docker pull consul
docker run \
--name consul \
-p 8500:8500 \
-v /data/consul/conf/:/consul/conf/ \
-v /data/consul/data/:/consul/data/ \
-d consul
测试
服务提供者
pom
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
yml
server:
port: 8001
spring:
application:
name: springcloud-payment-server
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/springcloudpayment?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
username: root
password: 123456
#consul配置
#info配置(完善监控信息)actuator
cloud:
consul:
host: consulIP地址
port: 8500
discovery:
service-name: ${spring.application.name} #服务名
heartbeat:
enabled: true #心跳协议
info:
app.name: "springcloud-payment-server-8001"
auth.name: "zhoukun"
mybatis-plus:
mapper-locations: classpath:mapper/*.xml
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 控制台输出日志
type-aliases-package: com.sec.zhoukun.pojo #所有实体类包
controller
//查询
@GetMapping("/payment/query")
public CommentRest query()
{
return new CommentRest()
.setCode(200)
.setMessage("success")
.setData(service.list());
}
启动类
@MapperScan("com.zhoukun.cloud.mapper")
@SpringBootApplication
@EnableDiscoveryClient
public class consulproviderPayment8001 {
public static void main(String[] args) {
SpringApplication.run(consulproviderPayment8001.class,args);
}
}
测试
服务消费者
pom
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
controller
@Autowired
RestTemplate template;
private static final String PAYMENT_URL="http://springcloud-payment-server";
//查询
@GetMapping("/con/query")
public String query()
{
return template.getForObject(PAYMENT_URL+"/payment/query", String.class);
}
config
@Configuration
public class ApplicationConfig {
@Bean
@LoadBalanced
public RestTemplate getrestTemplate(){
return new RestTemplate();
}
}
启动类
@SpringBootApplication
@EnableDiscoveryClient
public class consulconsumersPayment80 {
public static void main(String[] args) {
SpringApplication.run(consulconsumersPayment80.class,args);
}
}
yml
server:
port: 80
spring:
application:
name: springcloud-payment-consument
#consul配置
cloud:
consul:
host: 106.55.168.234
port: 8500
discovery:
service-name: ${spring.application.name} #服务名
heartbeat:
enabled: true #心跳协议