springcloud+zookeeper架构搭建
zookeeper安装配置自行百度。
zookeeper可视化工具zkui配置自行百度。
springcloud微服务架构最大的特点就是restful,他让微服务之间的通信通过restful实现,编写微服务就像编写普通的controller一样简单。当你想要向外界提供一个为服务时,只不过是简单的暴露一个restful接口,和传统的SpringMVC开发基本没有区别,大大降低了学习成本,让这套架构更容易理解。同时现在的springcloud支持feign,当需要消费为服务时只需要在本地编写一个接口,用注解标明需要访问的微服务提供者,然后就像普通地访问一个restful接口一样访问一个微服务。
配置:
在你需要启动微服务的模块下面,和application.yml平级目录建立bootstrap.yml,可以说application.yml是springboot项目的专用配置,而bootstrap.yml是springcloud+zookeeper的专用配置,bootstrap.yml的启动优先级是优于application.yml的。
spring:
application:
name: goods-service #微服务名
cloud:
zookeeper:
connect-string: 192.168.2.157:2181 #zookeeper服务器地址,改成你自己的
discovery:
enabled: true #是否启用zookeeper
register: true #是否注册微服务
这些就是bootstrap.yml中的内容。
微服务提供者配置:
在启动类加上@EnableDiscoveryClient就行了,没别的东西
@RestController
public class HelloMS {
@GetMapping("/ms/hello/{id}")
public String hello(@PathVariable long id){
return String.valueOf(id);
}
}
@FeignClient(value = "hello-ms")
public interface HelloFeign {
@GetMapping("/ms/hello/{id}")
String getHello(@PathVariable long id);
}
定义好消费者类之后,需要使用的时候只需要@Autowired一下即可使用
@EnableFeignClients("com.yongbang.b2b.server")
@EnableDiscoveryClient
@SpringBootApplication
public class Bootstrap {
public static void main(String[] args) {
SpringApplication.run(Bootstrap.class, args);
}
}