zoukankan      html  css  js  c++  java
  • springcloud

    上一个使用了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节点或者 直接在黑窗口查看,多次调用接口查看是否成功

  • 相关阅读:
    [置顶] app后端设计--总目录
    Centos6.5 nginx+nginx-rtmp配置流媒体服务器
    利用nginx搭建RTMP视频点播、直播、HLS服务器
    如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源
    使用pngquant命令近乎无损压缩PNG图片大小减少70%左右
    字符型图片验证码识别完整过程及Python实现
    python PIL Image模块
    app后端设计(12)--图片的处理
    linux 下如何抓取HTTP流量包(httpry)
    EHcache缓存框架详解
  • 原文地址:https://www.cnblogs.com/alomsc/p/13259704.html
Copyright © 2011-2022 走看看