springcloud学习-10 consul【周阳springcloud2020学习笔记】

    技术2022-07-11  117

    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学习系列目录

    Processed: 0.011, SQL: 9