consul搭建注册中心

一、环境搭建

搭建consul环境,请查看我的相关博客https://blog.csdn.net/huangbaokang/article/details/108057911
windows版的,直接cmd到目录,启动consul命令即可。

consul agent -dev -ui -node=cy

-dev开发服务器模式启动,-node结点名为cy,-ui可以用界面访问,默认能访问。

测试访问地址:http://localhost:8500

二、会员项目

pom.xml


		org.springframework.boot
		spring-boot-starter-parent
		2.0.1.RELEASE
	
	
	
		
			
				org.springframework.cloud
				spring-cloud-dependencies
				Finchley.M7
				pom
				import
			
		
	
	
		
		
			org.springframework.boot
			spring-boot-starter-web
		
		
		
			org.springframework.cloud
			spring-cloud-starter-consul-discovery
		
		
		
			org.springframework.boot
			spring-boot-starter-actuator
		
	
	
	
		
			spring-milestones
			Spring Milestones
			https://repo.spring.io/libs-milestone
			
				false
			
		
	

启动类,增加@EnableDiscoveryClient注解

@RestController
@SpringBootApplication
@EnableDiscoveryClient
public class ConsulMemberController {
	@Value("${server.port}")
	private String serverPort;

	@RequestMapping("/member")
	public String member() {
		return "我是会员服务,订单调用会员服务接口,端口号:" + serverPort;
	}

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

}

application.yml文件

server:
  port: 8508
spring:
  application:
    name: consulMember
####consul注册中心地址
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        hostname: 127.0.0.1

三、订单项目

pom文件一样,配置文件也一样(端口改改,应用名称改改)
启动类,使用restTemplate进行调用

@RestController
@SpringBootApplication
@EnableDiscoveryClient
public class ConsulOrderController {
	@Autowired
	private RestTemplate restTemplate;

	@RequestMapping("/orderToMember")
	public String orderToMember() {
		String memberUrl = "http://consulMember/member";
		return restTemplate.getForObject(memberUrl, String.class);
	}

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

	@Bean
	@LoadBalanced
	RestTemplate restTemplate() {
		return new RestTemplate();
	}
}

启动多个会员服务,可以看到负载均衡的效果。

你可能感兴趣的:(分布式,springcloud)