SpringCloud让微服务实现指定程序调用
我们在做微服务时,有时候需要将微服务做一些限制,比如只能我们自己的服务调用,不能通过浏览器直接调用等。
我们可以使用spring cloud sleuth,在应用调用微服务时通过Tracer产生一个traceId,并通过request设置到header里面,
然后sleuth会将该traceId在整个链路传递,我们在微服务中定义一个拦截器,取到header里面的traceId并和链路中的traceId比较,
如果相等,则表明是我们自己的应用调用,拦截器通过,否则这次请求被拦截
代码详见github
https://github.com/devinzhang0209/interview_springcloud.git
一. 应用调用微服务,产生traceId
1. feign调用微服务,指定配置
2. FeignReqeustConfig中实例化拦截器用于生成traceId
3. 拦截器生成traceId并放到header里面
二 . 拦截器拦截到traceId并和链路中比较
1. 拦截器判断traceId
2. 拦截器生效,只拦截微服务的请求(定义时定义微服务都是cloud开头)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之
上一篇:关于集合和字符串的互转实现方法
栏 目:JAVA代码
下一篇:Java使用自动化部署工具Gradle中的任务设定教程
本文地址:http://www.codeinn.net/misctech/14540.html
阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机