spring
h_sn999
这个作者很懒,什么都没留下…
展开
-
Sharding-JDBC:垂直拆分怎么做?
经过读写分离的优化后,小王可算是轻松了一段时间,读写分离具体的方案请查看这篇文章:Sharding-JDBC:查询量大如何优化?可是好景不长,业务发展是在太快了。数据库中的数据量猛增,由于所有表都在一个数据库中,导致服务器本地存储快满了。从上图我们可以看的出来,由于表的数量较多,每个表的数据量也较大,但是还没到水平拆分的地步。目前遇到的问题是服务器的存储不够了,短期内还不用水平拆分,那么方案呼之欲出了:垂直拆分。解释下什么是垂直拆分?我们都知道,一个数据库它是由N张表构成,每个表存储的数转载 2020-06-27 01:50:05 · 196 阅读 · 0 评论 -
SpringCloud微服务间参数的传递( threadLocal+Feign的RequestInterceptor方式)
我们在开发过程中,常有这样的需求,要将当前的微服务参数传递到下一个微服务,比如userId或者token之类,如果我们使用SpringCloud,把参数放到Header里就可以轻松实现了参数的传递。下面是一个利用Feign的RequestInterceptor实现的例子这里使用ThreadLocal来保持参数,这样在当前的环境中就可以随时使用了package app.gatew...原创 2019-11-19 22:07:01 · 5541 阅读 · 1 评论 -
SpringBoot logback 的 MDC
Logback的设计目标就是审计、调试复杂的分布式应用。在分布式应用中,为了区分不同客户端的日志输出,往往为每个客户端实例化一个单独的logger。但是这样将导致大量日志的产生,而且增加了日志管理的负担。为此,Logback采用了更轻量级的技术,为一个客户端的每一个日志请求打上唯一识别的时间戳,而这是通过SLF4J的MDC实现的。为了给每个日志请求打上唯一识别的时间戳,必须利用请求的上下文...原创 2020-01-13 21:02:17 · 977 阅读 · 1 评论 -
SpringCloud 自定义ribbon路由实现灰度发布
整合nacos(Euraka 类似)实现灰度发布在一般情况下,升级服务器端应用,需要将应用源码或程序包上传到服务器,然后停止掉老版本服务,再启动新版本。但是这种简单的发布方式存在两个问题,一方面,在新版本升级过程中,服务是暂时中断的,另一方面,如果新版本有BUG,升级失败,回滚起来也非常麻烦,容易造成更长时间的服务不可用。什么是灰度发布呢?要想了解这个问题就要先明白什么是灰度。灰度从字面意...原创 2019-12-03 20:34:41 · 2850 阅读 · 1 评论 -
cloud server ribbon 自定义策略配置
虽然ribbon默认为我们提供了多钟负载均衡策略,但有时候我们仍然需要自定义符合自身业务逻辑的规则使用配置文件的方式:我们只需要在配置文件中添加配置serviceId.ribbon.NFLoadBalancerRuleClassName=自定义的负载均衡策略类其中 serviceId 为具体服务名这样在调用对应服务时候,就会使用我们自定义的负载策略,很方便对于该配置...转载 2019-12-01 14:22:57 · 170 阅读 · 0 评论 -
【SpringCloud】Ribbon如何自定义客户端配置和全局配置
起因事情的起因是这样的,公司内部要实现基于Zuul网关的灰度路由,在上线时进行灰度测试,故需要配置业务微服务向Eureka注册的metadata元数据,和自定义Ribbon的负载规则达到只访问灰度服务的目的。这样就需要自定义Ribbon的IRule,实现灰度请求只会负载到带有灰度标签元数据的业务微服务上,当自定义IRule规则开发好后,问题是如何将这个IRule规则配置给某个Ribbon Cl...转载 2019-12-01 12:35:19 · 358 阅读 · 0 评论 -
nacos 使用简介
什么是 Nacos? 服务发现和服务健康监测 Nacos 支持基于 DNS 和基于 RPC 的服务发现。服务提供者使用原生SDK、OpenAPI、或一个独立的Agent TODO注册 Service 后,服务消费者可以使用DNS TODO或HTTP&API查找和发现服务。 Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。Nacos 支持...原创 2019-11-27 22:59:51 · 655 阅读 · 0 评论 -
springcloud 自定义元数据
如果你的注册中心是基于eureka# Eureka config for discoveryeureka.instance.metadataMap.group=a-service-groupeureka.instance.metadataMap.version=1.0eureka.instance.metadataMap.region=deveureka: instance:...原创 2019-11-24 23:40:12 · 3019 阅读 · 2 评论 -
10个Spring&SpringBoot 高阶用法,相信你看完会有新的认识
10个Spring&SpringBoot 高阶用法,相信你看完会有新的认识目录10个Spring&SpringBoot 高阶用法,相信你看完会有新的认识 *1、获取Spring IOC容器(Aware) *2、动态注册bean信息(BeanFactoryPostProcessor) *3、动态修改bean信息(BeanFactoryPostProcesso...转载 2019-11-24 12:17:30 · 1339 阅读 · 0 评论