1、在Linux中配置zookeeper
1)解压到安装到 /opt/module 下
2)进入zookeeper
3)进入conf
4)执行:
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
修改
5)改成自己的目录
6)之后修改 /etc/profile中的信息
2、运行
进入到 zookeeper/bin目录下
zkServer.sh start
zkServer.sh status 查看状态
3、配置springcloud-zookeeper-provider-9003
父类的pom.xml
<properties>
<spring.cloud.version>Hoxton.SR12</spring.cloud.version>
<spring.boot.version>2.3.12.RELEASE</spring.boot.version>
<mysql.version>8.0.26</mysql.version>
<mybatis.version>2.2.0</mybatis.version>
<druid.version>1.2.3</druid.version>
</properties>
<dependencyManagement>
<dependencies>
<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>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
子类的pom.xml
<dependencies>
<dependency>
<groupId>org.example</groupId>
<artifactId>springcloud-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.11</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
</dependencies>
application.yaml
实体类:
/**
* (Movie)实体类
*
* @author makejava
* @since 2021-12-17 09:12:14
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "movie")
public class Movie implements Serializable {
private static final long serialVersionUID = -30737887108345962L;
@Id
private Integer id;
private String movieName;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date movieData;
}
mapper:
import com.ycz.springCloud.entity.Movie;
import org.apache.ibatis.annotations.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;
/**
* (Movie)表数据库访问层
*
* @author makejava
* @since 2021-12-17 09:12:13
*/
@Mapper
public interface MovieMapper extends tk.mybatis.mapper.common.Mapper<Movie>,MySqlMapper<Movie> {
}
service:
package com.ycz.springCloud.service;
/**
* (Movie)表服务接口
*
* @author makejava
* @since 2021-12-17 09:12:14
*/
public interface MovieService {
Object getAll();
Object getOne(Integer id);
}
serviceImpl:
import com.ycz.springCloud.mapper.MovieMapper;
import com.ycz.springCloud.service.MovieService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* (Movie)表服务实现类
*
* @author makejava
* @since 2021-12-17 09:12:15
*/
@Service("movieService")
public class MovieServiceImpl implements MovieService {
@Autowired
private MovieMapper movieMapper;
public Object getAll() {
return movieMapper.selectAll();
}
public Object getOne(Integer id) {
return movieMapper.selectByPrimaryKey(id);
}
}
import com.ycz.springCloud.service.MovieService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* (Movie)表控制层
*
* @author makejava
* @since 2021-12-17 09:12:12
*/
@RestController
@RequestMapping("movie")
public class MovieController {
/**
* 服务对象
*/
@Autowired
private MovieService movieService;
@RequestMapping("getAll")
public Object getAll(){
return movieService.getAll();
}
@RequestMapping("/getOne/{id}")
public Object getOne(@PathVariable Integer id){
return movieService.getOne(id);
}
}
启动类:
@SpringBootApplication
@EnableDiscoveryClient
public class Zookeeper9003 {
public static void main(String[] args) {
SpringApplication.run(Zookeeper9003.class,args);
}
}
4、配置consumer中的zookeeper
pom.xml文件:
<dependencies>
<dependency>
<groupId>org.example</groupId>
<artifactId>springcloud-api</artifactId>
<version>1.0-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.11</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
配置:
server:
port: 9004
spring:
application:
name: zookeeper-consumer-9004
cloud:
zookeeper:
connect-string: ip:port #配置zookeeper的端口号与ip
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;
@Configuration
public class ApplicationConfig {
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}
UserController
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private RestTemplate restTemplate;
private static final String REST_URL="http://springcloud-zookeeper-provider-9003";
@RequestMapping("/getAll")
public Object getAll(){
ResponseEntity<Object> forEntity = restTemplate.getForEntity(REST_URL + "/movie/getAll", Object.class);
return forEntity;
}
@RequestMapping("/get/{id}")
public Object getOne(@PathVariable("id") Integer id){
ResponseEntity<Object> forEntity = restTemplate.getForEntity(REST_URL + "/movie/getOne/"+id, Object.class);
return forEntity;
}
}
启动类:
@SpringBootApplication
@EnableDiscoveryClient
public class Zookeeper9004 {
public static void main(String[] args) {
SpringApplication.run(Zookeeper9004.class,args);
}
}
5、启动
正常!!!