您现在的位置是:主页 > 数据库技术 > 数据库技术
Spring Cloud集群怎么使用Zuul
IDCBT2021-12-25【服务器技术】人已围观
简介这篇文章给大家分享的是有关Spring Cloud集群怎么使用Zuul的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 Spring Cloud集群使用Zuul 在前面小节的例子中,
这篇文章给大家分享的是有关Spring Cloud集群怎么使用Zuul的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
Spring Cloud集群使用Zuul在前面小节的例子中,Zuul将请求转发到一个Web项目进行处理,如果实际处理请求的不是一个Web项目,而是整个微服务集群,那么Zuul将成为整个集群的网关。在加入Zuul前,Spring Cloud集群的结构请见图7-3。
图7-3 原来的Spring Cloud集群结构
为微服务集群加入Zuul网关后,结构如图7-4所示。
图7-4 加入Zuul后集群结构
在深入学习Zuul前,先按图7-4的搭建本章的测试项目。
集群搭建假设当前需要实现一个书本销售业务,在销售模块中需要调用书本模块的服务,用来查找书本,本小节案例以此为基础,建立以下项目:
zuul-eureka-server:Eureka服务器,应用端口为8761,读者可以到以下目录取得源代码:codes\07\03\zuul-eureka-server。
zuul-book-service:书本模块,属于服务提供者,提供“/book/{bookId}”服务,用于查找图书,最后返回Book的JSON字符串,应用端口为9000,代码目录codes\07\03\zuul-book-service。
zuul-sale-service:销售模块,属于服务调用者,对外发布销售服务“/sale-book/{bookId}”,该服务中会调用zuul-book-service来查找Book,应用端口为9100,代码目录codes\07\03\zuul-sale-service。
书本模块“zuul-book-service”发布的服务,仅返回一个简单的Book对象,控制器代码如下:
@RequestMapping(value = "/book/{bookId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) public Book findBook(@PathVariable Integer bookId) { Book book = new Book(); book.setId(bookId); book.setName("Workflow讲义"); book.setAuthor("杨恩雄"); return book; }
销售模块“zuul-sale-service”发布的服务,相关代码如下:
@FeignClient("zuul-book-service") // 声明调用书本服务 public interface BookService { /** * 调用书本服务的接口,获取一个Book实例 */ @RequestMapping(method = RequestMethod.GET, value = "/book/{bookId}") Book getBook(@PathVariable("bookId") Integer bookId); } @RestController public class SaleController { @Autowired private BookService bookService; @RequestMapping(value = "/sale-book/{bookId}", method = RequestMethod.GET) public String saleBook(@PathVariable Integer bookId) { // 调用book服务查找 Book book = bookService.getBook(bookId); // 控制台输入,模拟进行销售 System.out.println("销售模块处理销售,要销售的图书id: " + book.getId() + ", 书名:" + book.getName()); // 销售成功 return "SUCCESS"; } }标签:很赞哦! ()