springcloud學習-10 consul【周陽springcloud2020學習筆記】

linux下安裝

1.下載
wget https://releases.hashicorp.com/consul/1.7.3/consul_1.7.3_linux_amd64.zip
2.解壓
unzip consul_1.7.3_linux_amd64.zip
3.移動到全局變量
mv consul /usr/local/bin/consul
4.查看
consul --version
5.啓動(使用開發模式啓動)
1)consul agent -dev //localhost訪問
2)consul agent -dev -client 0.0.0.0 -ui //IP訪問
6.訪問
netstat -nptl //查看端口8500
ps -ef|grep consul //查看進程編號
kill -15 進程號 //殺死進程

windows下
下載完解壓就可以看到consul.exe了
雙擊運行。進入命令行窗口
查看版本 consul --version
開發者模式啓動 consul agent -dev
訪問 http;//localhost:8500


提供者 cs-provider-payment8004

1.pom修改

 <dependencies>
        <!-- consul -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
        </dependency>

        <!--公共模塊:通用工具包-->
        <dependency>
            <groupId>cn.chen.demo</groupId>
            <artifactId>api-common</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>

        <!-- lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- test -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

    </dependencies>

2.yml

    server:
      port: 8004

    spring:
      application:
        name: consul-provider-payment
      cloud:
        consul:
          host: localhost
          port: 8500
          discovery:
            service-name: ${spring.application.name}

3.主啓動

    package cn.chen;

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

    /**
     * @version demo2020-1.0
     * @Title: CsPaymentApplication
     * @Description:
     * @Company:
     * @package: cn.chen
     * @author: chenlf
     * @date: 2020/6/2
     */
    @SpringBootApplication
    @EnableDiscoveryClient
    public class CsPaymentApplication {
    	public static void main(String[] args) {
    		SpringApplication.run(CsPaymentApplication.class,args);
    	}
    }

4.業務類

    package cn.chen.web;

    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;

    import java.util.UUID;

    /**
     * @version demo2020-1.0
     * @Title: PaymentController
     * @Description:
     * @Company:
     * @package: cn.chen.web
     * @author: chenlf
     * @date: 2020/6/2
     */
    @RestController
    @RequestMapping("/payment")
    public class PaymentController {

    	@Value("${server.port}")
    	private String serverPort;

    	@GetMapping(value = "/consul")
    	public String paymentConsul(){
    		return "consul port: "+serverPort+"\t"+ UUID.randomUUID().toString();
    	}

    }

消費者

1.新建module:cs-consumer-order80
2.pom.xml修改

    <dependencies>

            <!-- consul -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-consul-discovery</artifactId>
            </dependency>

            <!--公共模塊:通用工具包-->
            <dependency>
                <groupId>cn.chen.demo</groupId>
                <artifactId>api-common</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <scope>runtime</scope>
                <optional>true</optional>
            </dependency>

            <!-- lombok -->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>

            <!-- test -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>

        </dependencies>

3.yml

    server:
      port: 80

    spring:
      application:
        name: consul-consumer-order

      cloud:
        consul:
          host: localhost
          port: 8500
          discovery:
            service-name: ${spring.application.name}

    cs:
      server:
        url: http://consul-provider-payment

4.主啓動

    package cn.chen;

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

    /**
     * @version demo2020-1.0
     * @Title: CsOrderApplication
     * @Description:
     * @Company:
     * @package: cn.chen
     * @author: chenlf
     * @date: 2020/6/2
     */
    @SpringBootApplication
    @EnableDiscoveryClient
    public class CsOrderApplication {

    	public static void main(String[] args) {
    		SpringApplication.run(CsOrderApplication.class,args);
    	}

    }

5.業務類

    package cn.chen.web;

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.client.RestTemplate;

    import javax.annotation.Resource;

    /**
     * @version demo2020-1.0
     * @Title: OrderController
     * @Description:
     * @Company:
     * @package: cn.chen.web
     * @author: chenlf
     * @date: 2020/6/2
     */
    @RestController
    public class OrderController {

    	@Value("${cs.server.url}")
    	private String csUrl;

    	@Resource
    	private RestTemplate restTemplate;

    	@GetMapping("/consumer/payment/consul")
    	public String payment() {
    		String result = restTemplate.getForObject(csUrl + "/payment/consul", String.class);
    		return result;

    	}
    }

springcloud學習系列目錄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章