springcloud - zookeeper配置


上一個使用了Eureka作為注冊中心,基於Spring Cloud實現服務的發布與調用。而在18年7月份,Eureka2.0宣布閉源了

省略zookeeper安裝步驟

order模塊

application.yml

server:
  port: 10080
spring:
  application:
    name: study-edu-order # 名字隨便取一個
  profiles:
    active: dev

application-dev.yml

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/2pc?useSSL=false
    username: root
    password: 123
    type: com.alibaba.druid.pool.DruidDataSource
  application:
    name: study-edu-order
  cloud:
    zookeeper:
      connect-string: study.edu.server:2181 # 本地host文件配置的域名
mybatis:
  configuration:
    map-underscore-to-camel-case: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

pom文件

   <!--微服務相關-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
        </dependency>

java部分:

OrderController:
@RestController
@RequestMapping("v1/api/order")
@Slf4j
public class OrderController {
    @Autowired
    private DiscoveryClient discoveryClient;

    @Autowired
    private OrderService orderService;

    @PostMapping
    public CommonResult saveOrder(@RequestBody OrderVO vo) {
        boolean flag = orderService.saveOrder(vo);
        log.info("================================>server port is ");
        if(flag) {
            return CommonResult.OK();
        } else {
            return CommonResult.NO();
        }
    }
}

 

StockClient接口:
public interface StockClient {
    CommonResult reduceStock(@RequestBody OrderVO vo);
}
StockClientImpl實現接口:
@Service
public class StockClientImpl implements StockClient {
    @Autowired
    private RestTemplate restTemplate;

    @Override
    public CommonResult reduceStock(OrderVO vo) {
        // 構建調用api服務的路徑,stock yml文件取的名字  url為 controller 接口
        String uri = String.format("http://study-edu-stock/%s","v1/api/stock");
        return restTemplate.postForObject(uri,vo,CommonResult.class);
    }
}





stock模塊:

application.yml

server:
  port: 10090
spring:
  application:
    name: study-edu-stock
  profiles:
    active: dev

application-dev.yml

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/2pc?useSSL=false
    username: root
    password: 123
    type: com.alibaba.druid.pool.DruidDataSource
  cloud:
    zookeeper:
      connect-string: study.edu.server:2181
mybatis:
  configuration:
    map-underscore-to-camel-case: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

pom:

  <!--微服務相關-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
StockController:
@RestController
@RequestMapping("v1/api/stock")
public class StockController {
    @Autowired
    private StockService stockService;

    @PostMapping
    public CommonResult reduceStock(@RequestBody OrderVO vo) {
        boolean flag = stockService.reduceStock(vo);
        if(flag) {
            return CommonResult.OK();
        } else {
           return CommonResult.NO();
        }
    }
}

省略了service ,就是簡單的操作數據庫來查看負載均衡是否成功

 

 

啟動服務:可以通過  ZooInspector 插件查看zookeeper節點或者 直接在黑窗口查看,多次調用接口查看是否成功

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM