博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(五)java spring cloud版b2b2c社交电商spring cloud分布式微服务-路由网关(zuul)
阅读量:5978 次
发布时间:2019-06-20

本文共 3735 字,大约阅读时间需要 12 分钟。

spring cloud版b2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六。在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现、服务消费、负载均衡、断路器、智能路由、配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统。一个简答的微服务系统如下图:

注意:A服务和B服务是可以相互调用的,作图的时候忘记了。并且配置服务也是注册到服务注册中心的。

在Spring Cloud微服务系统中,一种常见的负载均衡方式是,客户端的请求首先经过负载均衡(zuul、Ngnix),再到达服务网关(zuul集群),然后再到具体的服。,服务统一注册到高可用的服务注册中心集群,服务的所有的配置文件由配置服务管理(下一篇文章讲述),配置服务的配置文件放在git仓库,方便开发人员随时改配置。

一、Zuul简介

Zuul的主要功能是路由转发和过滤器。路由功能是微服务的一部分,比如/api/user转发到到user服务,/api/shop转发到到shop服务。zuul默认和Ribbon结合实现了负载均衡的功能。

zuul有以下功能:

  • Authentication
  • Insights
  • Stress Testing
  • Canary Testing
  • Dynamic Routing
  • Service Migration
  • Load Shedding
  • Security
  • Static Response handling
  • Active/Active traffic management

二、准备工作

继续使用上一节的工程。在原有的工程上,创建一个新的工程。

三、创建service-zuul工程

其pom.xml文件如下:

4.0.0
com.forezp
service-zuul
0.0.1-SNAPSHOT
jar
service-zuul
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
1.5.2.RELEASE
UTF-8
UTF-8
1.8
org.springframework.cloud
spring-cloud-starter-eureka
org.springframework.cloud
spring-cloud-starter-zuul
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework.cloud
spring-cloud-dependencies
Dalston.RC1
pom
import
org.springframework.boot
spring-boot-maven-plugin
spring-milestones
Spring Milestones
https://repo.spring.io/milestone
false
复制代码

在其入口applicaton类加上注解@EnableZuulProxy,开启zuul的功能:

@EnableZuulProxy@EnableEurekaClient@SpringBootApplicationpublic class ServiceZuulApplication {     public static void main(String[] args) {        SpringApplication.run(ServiceZuulApplication.class, args);    }}复制代码

加上配置文件application.yml加上以下的配置代码:

eureka:  client:    serviceUrl:      defaultZone: http://localhost:8761/eureka/server:  port: 8769spring:  application:    name: service-zuulzuul:  routes:    api-a:      path: /api-a/**      serviceId: service-ribbon    api-b:      path: /api-b/**      serviceId: service-feign复制代码

首先指定服务注册中心的地址为,服务的端口为8769,服务名为service-zuul;以/api-a/ 开头的请求都转发给service-ribbon服务;以/api-b/开头的请求都转发给service-feign服务;

依次运行这五个工程;打开浏览器访问: ;浏览器显示:

hi forezp,i am from port:8762复制代码

打开浏览器访问: ;浏览器显示:

hi forezp,i am from port:8762复制代码

这说明zuul起到了路由的作用

需要JAVASpring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码请加企鹅求求:一零三八七七四六二六 

转载于:https://juejin.im/post/5ce3c401f265da1b8d15f1d8

你可能感兴趣的文章
使用beetle简单地实现高效的http基础服务
查看>>
坚果云开发团队分享高效代码审查经验
查看>>
光棍节程序员闯关秀 segmentfault 网站的一个游戏
查看>>
不考虑线程安全的初级单例C++代码
查看>>
java this的使用(翻译自Java Tutorials)
查看>>
Python类型和对象
查看>>
C/C++运算符“优先级”与“结合性”的区别
查看>>
C#安全调用线程的步骤
查看>>
Scrum项目如何获得管理层的支持和合作
查看>>
Unix下c程序内存泄露检测工具
查看>>
struts2技巧与解惑——使用包(package)和拦截器(interceptor)分配和处理权限
查看>>
html
查看>>
EF架构~性能高效的批量操作(Update篇)
查看>>
10个方便的jQueryInstagram的插件
查看>>
读取XML并绑定至RadioButtonList
查看>>
CSS的类名交集复合选择器
查看>>
Practical Clojure - Functional Programming Techniques
查看>>
给DIV添加滚动条
查看>>
android程序的代码混淆打包
查看>>
柯乐义SQLServer访问类
查看>>