特别详细的Spring Cloud 系列教程2:微服务网关gateway的启动

04-09 7801阅读 0评论

继上一篇:特别详细的Spring Cloud 系列教程1:服务注册中心Eureka的启动

在比较多的教程和书籍里,spring cloud的微服务网关用的Zuul。然而,zuul已经不被官方提倡,现在提倡用的是spring cloud gateway。因为gateway的整体性能表现比zuul要好。

旧版本zuul用的是servelt容器的阻塞式IO,gateway用的是webflux的响应式编程框架,从性能的角度来说,zuul不如gateway。zuul 2.0版本也换成了响应式编程框架,但是spring cloud官方版本中并没有集成zuul2.0,而是使用了spring cloud gateway。

server:
  port: 8888
spring:
  application:
    name: api-gateway
  cloud:
    gateway:
      discovery:
        locator:
          lower-case-service-id: true
      routes:
        - id: url-proxy-1 #我们自定义的路由 ID,保持唯一
          uri: lb://producer #目标服务地址,(lb代表从注册中心获取服务),后面接的就是你需要转发到的服务名称
          predicates:
#  符合这个断言的路径会转发到uri的地址  path:匹配类型是url地址匹配  /buy,匹配值,
#  当访问地址http://localhost:8080/buy/1.jsp时,会路由到上游地址lb://producer/1.jsp。
            - Path=/buy/**

gateway同时也作为一个服务注册到eureka server中。

eureka:
  client:
    registerWithEureka: true #服务注册开关
    fetchRegistry: true #服务发现开关
    serviceUrl: #Eureka服务端进行交互的地址,多个中间用逗号分隔,EUREKA_SERVER是我们设置的属性名,冒号:代表如果找不到属性,则后面的内容为默认值
      defaultZone: ${EUREKA_SERVER:http://localhost:8761/eureka/}
  instance:
    prefer-ip-address:  true  #将自己的ip地址注册到Eureka服务中
    ip-address: ${IP_ADDRESS:127.0.0.1}
    instance-id: ${spring.application.name}:${server.port} #指定实例id

启动gateway

特别详细的Spring Cloud 系列教程2:微服务网关gateway的启动 第1张

 网关服务已经在服务注册中心出现了。

还记得前面那个producer服务,现在我们请求一下网关试试,看看请求能不能够转发到producer服务上去。

特别详细的Spring Cloud 系列教程2:微服务网关gateway的启动 第2张

浏览器访问:http://localhost:8888/buy/goods

特别详细的Spring Cloud 系列教程2:微服务网关gateway的启动 第3张

producer的业务代码:

	@GetMapping("goods")
	public String generate(){
		return "goods from { producer }";
	}

如果同一个服务名有多个服务注册,gateway默认会用轮询算法实现负载均衡,实际上是因为eureka client就引入了ribbon。


免责声明
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明。
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所
提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何
损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在
转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并白负版权等法律责任。

手机扫描二维码访问

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,7801人围观)

还没有评论,来说两句吧...

目录[+]