微服务
惑边
每一分努力都会在合适的时机得到回报...
展开
-
[SpringCloud-Feign] Feign转发请求头,(防止session失效)
Feign转发请求头,(防止session失效)微服务开发中经常有这样的需求,公司自定义了通用的请求头,需要在微服务的调用链中转发,比如在请求头中加入了token,或者某个自定义的信息uniqueId,总之就是自定义的一个键值对的东东,A服务调用B服务,B服务调用C服务,这样通用的东西如何让他在一个调用链中不断地传递下去呢?以A服务为例:方案1 最傻的办法,在程序中获取,调用...原创 2018-07-05 10:14:22 · 15084 阅读 · 8 评论 -
[SpringBoot] 利用spring.factories机制加载Bean
通常我们需要注册一个bean会使用注解的形式,比如@Component注解,但是在阅读源码的时候我们发现一些bean上面并没有 该注解或者其他注册为bean的注解,甚至没有任何注解,这就纳闷了,仔细发现它用到了spring.factories机制。 在zuul的源码阅读中,找到了org.springframework.cloud.netflix.zuul.filters包下有很多已经实现好的过滤器...原创 2018-11-02 16:08:25 · 10908 阅读 · 0 评论 -
[SpringBoot] Spring的事件机制
直接上代码:一.定义事件public class MyEvent extends ApplicationEvent { private String msg; public MyEvent(Object source, String msg) { super(source); this.msg = msg; } publ...原创 2018-11-04 11:31:52 · 176 阅读 · 0 评论 -
[SpringCloud-Eureka] zookeeper和Eureka使用IP注册
在使用Eureka和Zookeeper作为注册中心的时候,均是默认注册主机名称,但是很多时候主机名称解析会有问题,通过配置使用IP注册: Eureka: eureka.instance.prefer-ip-address = true Zookeeper zookeeper中的配置很隐蔽,查了很久,配置形式如下: spring.cloud.zookeeper.dis...原创 2018-08-29 18:16:02 · 3734 阅读 · 2 评论 -
[SpringBoot] 通过spring.factory文件来加载第三方的bean
1.在springboot的开发过程中,我们经常需要加载一些bean,如果bean使我们自己写的类,那很好办,加个@Component注解就搞定了,然后过程启动会扫描启动类所在的包及其子包,如果我们需要的bean不在自己的包里面,在第三方包怎么办?通过注解可以import进来,这个当然可以,这里介绍一个使用spring.factories文件的方法 2.加入我们只做了一个包,...原创 2018-08-21 20:00:04 · 8634 阅读 · 3 评论 -
[SpringBoot] 通过EnvironmentPostProcessor接口隐式修改配置 -- 修改日志级别
EnvironmentPostProcessor接口继承该接口,可以在项目启动初期对配置做一些修改,根据最近的一个使用场景做了一个小结;1.场景简述如下,在之前的一篇博客中有简单介绍,通过spring.factories来切换注册中心,遇到了一个问题,当使用 Eureka作为注册中心的时候,配置中没有填写zookeeper的地址,此时可以正常注册到Eureka,但是zooke...原创 2018-08-21 17:29:47 · 3400 阅读 · 0 评论 -
[SpringCloud-Zookeeper] 通过Zookeeper的API注册微服务到Zookeeper -- 第一篇 初探
一.springboot工程通过引入zk的依赖,通过注解注册到zk,这个网上资料很多,就不多啰嗦了,这里主要给出,通过api注册到zk,什么场景会用到呢?比如环境中有一些分springboot工程,也有springboot工程,那么对于springboot工程直接通过注解注册,通过Feign调用其他微服务,非springboot工程通过api注解,其他服务通过服务名称调用即可;二.spri...原创 2018-08-20 21:11:13 · 4289 阅读 · 3 评论 -
[SpringCloud-SpringCloudStream] 简单通过Spring-cloud-stream组件使用kafka
一.pom依赖 <dependency> <groupId>org.springframework.cloud</groupId>原创 2018-08-23 16:37:37 · 5804 阅读 · 4 评论 -
[SpringCloud-Eureka] 使用spring.factories机制来实现注册中心兼容Eureka和Zookeeper
使用SpringBoot开发微服务时,需要通过注册自信来实现服务之间的发现机制,Eureka和Zookeeper都是常有的注册中心框架,我们可以选择其中之一,现在面临一个特殊的需求,我们同时存在Eureka和ZK,但是有时候会使用Eureka,有时候使用ZK,怎么办?首先一点需要明确的是,不管使用哪一个,肯定只能选择其一,不存在说同事使用2个,但是情况是我两者都有可能使用,怎么办?比如环境A使用E...原创 2018-08-18 15:41:46 · 4296 阅读 · 1 评论 -
[SpringCloud-Zipkin] Zipkin搭建分布式链路跟踪平台 -- 第四篇
常见问题 1.spring.zipkin.enabled的作用和spring.sleuth.enabled的作用 这两个配置默认都是true,对client端而言,只要pom添加了依赖,默认就是开启了链路跟踪功能,但是两者是互斥的,也就是说任意情况下只有一个会生效:在使用http发送时,spring.zipkin.enabled=false则可以关闭跟踪功能;在使用...原创 2018-08-11 16:08:57 · 3079 阅读 · 1 评论 -
[SpringCloud-Zipkin] Zipkin搭建分布式链路跟踪平台 -- 第三篇
这一篇,我们搭建 Kafka + ES 模式 Kafka + Elasticsearch 在kafka+ Mysql 的基础上,修改server端的存储依赖和配置即可 依赖:<!--ZipKin组件依赖--> <dependency> <groupId>io.zipkin....原创 2018-08-11 15:30:03 · 587 阅读 · 0 评论 -
[SpringCloud-Zipkin] Zipkin搭建分布式链路跟踪平台 -- 第二篇
这一篇,我们搭建Http + Mysql 和Kafka + mysql两种模式 Http + Mysql Http + Mysql 模式,在第一篇的基础上,client端不需要做修改,只需要修改server端即可,server端添加mysql的相关配置和依赖即可,添加下面的依赖: 依赖:<!--ZipKin组件持久化依赖--> ...原创 2018-08-11 15:26:38 · 842 阅读 · 1 评论 -
[SpringCloud-Zipkin] Zipkin搭建分布式链路跟踪平台 -- 第一篇
zipkin搭建分布式微服务跟踪平台zipkin用于跟踪微服务之间的调用过程 ,具体概念不介绍了,给出搭建过程 被跟踪的微服务简称为zipkin client ,收集跟踪信息的简称为zipkin server,client和server之间支持几种通信方式,同步的HTTP,异步的Kafka或者rabbitmq,server端的存储有几种方式,不用数据库直接存在内存,存在mysql...原创 2018-08-11 15:12:16 · 1468 阅读 · 0 评论 -
[SpringCloud-Hystrix] Hystrix开启熔断器时并发请求数目设置
开启熔断器的情况下,默认Hytrix是Thread模式,使用线程池接收请求,如果性能测试时并发数目过高,可能出现部分请求直接走熔断器的情况,日志又看不出什么异常,并发数目低就可以,启用下面的设置: hystrix.threadpool.default.coreSize=500 默认是10...原创 2018-07-25 21:06:13 · 2359 阅读 · 0 评论 -
[SpringBoot] 通过注解加载自定义的Bean
1.在springboot工程中,默认会扫描启动类所在包路径下面的所有bean,比如启动类下面还有很多的包路径,里面定义了一些类,通过@Componount’注解指定的类会被加载到bean容器,但是如果自己有一个类,达成了jar包不在启动类下面,怎么加载呢? 2.可以使用注解的形式,比如 @Autwire ClassName classname; 但是如果有多个的话,这样就不...原创 2018-06-13 14:28:59 · 4667 阅读 · 0 评论