自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(283)
  • 资源 (4)
  • 收藏
  • 关注

原创 数据一致性场景实战(一)

数据一致性场景实战

2021-06-20 22:29:26 523

原创 微服务预热那些事

常见预热场景

2021-06-06 21:57:19 1074 4

原创 微服务拆分时机与原则

微服务拆分微服务拆分时机为了快速迭代高并发场景可重用提交代码经常冲突小功能要积累到大版本才能上线服务拆分原则原则一:高内聚和低耦合。原则二:服务拆分正交性原则原则三:服务粒度适中、演进式拆分原则四:服务接口的定义要保证可扩展性与幂等性。微服务拆分时机微服务拆分绝非一个大跃进运动,由高层发起,把一个应用拆分的七零八落的,最终大大增加运维成本,但是并不会带来收益。微服务拆分的过程,应该是一个由痛点驱动的,是业务真正遇到了快速迭代和高并发的问题,如果不拆分,将对于业务的发展带来影响,只有这个时候,微服务的拆分

2021-06-06 11:19:41 1907 1

原创 springboot加载本地配置中文乱码

https://blog.csdn.net/u013916933/article/details/81171108https://www.zhihu.com/question/55612484https://ttv5.github.io/2018/03/31/java/spring-boot/problem-001/

2021-05-19 22:55:32 194

原创 分布式事务解决方案

面试必问之dubbo

2021-05-16 22:44:13 113

原创 博客计划迁移到微信公众号:service_mesh,欢迎关注

各位新年好,我的博客已经整体迁移到微信公众号上,欢迎大家关注。可以搜索微信公众号service_mesh并关注。

2021-01-12 13:57:13 163

原创 springcloud gateway高级功能之监控metric中tag修改

springcloud gateway高级功能之监控metric中tag修改

2021-01-04 20:53:28 2129

原创 springcloud gateway高级功能之集成apollo后动态刷新路由

springcloud gateway高级功能之集成apollo后动态刷新路由

2021-01-04 19:49:18 1692

原创 springcloud gateway高级功能之根据参数自定义路由Predicate

背景我们使用了springcloud gateway作为也给路由转发功能,由于历史遗留问题,不仅仅需要根据path转发,还需要根据get或者post中的参数进行转发解决方案这里我们使用自定义的Predicate进行转发简介这里简单介绍下相关术语(1)Filter(过滤器):和Zuul的过滤器在概念上类似,可以使用它拦截和修改请求,并且对上游的响应,进行二次处理。过滤器为org.springframework.cloud.gateway.filter.GatewayFilter类的实例。(2)

2021-01-03 22:54:54 7299 8

原创 redis读写分离之lettuce

背景集群读写分离设置读或者写主从节点均衡随机分配集群扩容从节点信息更新

2020-11-22 23:19:50 3152 6

原创 微服务三大利器之限流

背景限流算法限流框架guavasentinel限流实战nginx限流zuul限流springcloud gateway限流服务限流

2020-11-22 16:59:39 1116

原创 Feign请求响应结果被截取com.fasterxml.jackson.core.io.JsonEOFException

在生产环境使用feign调用外部接口时,偶尔会出现下面错误2020-10-15 11:00:18,535 [] ERROR com.shein.abc.rmp.controller.RecExplainConfigController - rec_explain_query.failffeign.codec.DecodeException: Error while extracting response for type [class com.alibaba.fastjson.JSONObject]

2020-10-18 15:02:18 5256 5

原创 面试必问之mysql优化

大表优化分表分库跨库查询sql优化查看执行计划增加索引sql关键字优化使用临时表字段冗余减少关联

2020-08-16 18:19:06 304

原创 jcsv导入导出动态扩展思路

我整理的jcsv工具类库简介:[csv导入导出组件jcsv](https://blog.csdn.net/lp19861126/article/details/99769509)jcsv可以支持导入校验规则动态扩展,以及导出规则动态扩展。下面来介绍下扩展思路

2020-07-19 22:13:41 398

原创 面试必问之mysql基础

面试必问之mysql

2020-07-12 18:08:56 304

原创 面试必问之jvm

问题1 说一下jvm内存模型问题1.1 jvm内存模型栈区:栈分为java虚拟机栈和本地方法栈重点是Java虚拟机栈,它是线程私有的,生命周期与线程相同。每个方法执行都会创建一个栈帧,用于存放局部变量表,操作栈,动态链接,方法出口等。每个方法从被调用,直到被执行完。对应着一个栈帧在虚拟机中从入栈到出栈的过程。通常说的栈就是指局部变量表部分,存放编译期间可知的8种基本数据类型,及对象引用和指令地址。局部变量表是在编译期间完成分配,当进入一个方法时,这个栈中的局部变量分配内存大小是确定的。会有两

2020-06-27 10:12:44 320

原创 k8s中通过aws sdk访问s3遇到的坑

背景公司有一套基于k8s的paas系统,现在pod中安装了aws 命令行工具RUN apk add py-pip && pip install awscli可以使用命令直接get、put文件,如下:由于java使用命令行时可能会出现卡死现象,所以这里想使用aws提供的sdk来直接上传下载文件。默认有两种方式,一种是程序中配置key:BasicAWSCredentials awsCredentials = new BasicAWSCredentials(accessKey, a

2020-06-22 14:57:38 7899

原创 面试必问之HashMap

问题1 hashmap原理?问题1.1 hashmap底层数据结构是什么哈希表结构(链表散列:数组+链表)实现,结合数组和链表的优点。当链表长度超过 8 时,链表转换为红黑树。问题1.2 jdk1.8为啥要将链表转为红黑树呢?链表的用的是线性检索,时间复杂度是O(n),而红黑树的检索方式是二分查找,平均时间复杂度是O(logn),当达到一定阈值后,二分查找是由于先行检索的问题1.3 什么情况下会将链表转为红黑树当来链表长度达到8时会转为红黑树,当桶中链表元素个数小于等于6时,树结构还原成链表。

2020-06-21 17:06:24 223

原创 面试必问之kafka

面试必问之kafka

2020-06-14 16:51:44 251

原创 上传aws s3报错com.amazonaws.AmazonClientException: Unable to complete transfer: SERVICE_ID

背景在上传aws s3报下面错误引入的pom如下:<dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-s3</artifactId> <version>1.11.543</version> </dependency>经过排查是

2020-06-12 16:33:35 3221

原创 面试必问之redis

这里是我作为10年面试经验总结的面试中必问问题问题一 简单介绍下redisedis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI c语言编写的key-value存储系统(区别于MySQL的二维表格的形式存储。)。和Memcache类似,但很大程度补偿了Memcache的不足。和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以Memcache的应用场景适用.

2020-06-07 23:23:31 280

原创 springboot如何集成Prometheus如何暴露Histogram来获取P99等监控指标

背景springboot如何集成Prometheus我这里不做详细描述,要想了解集成过程,可以参考一下博客:https://blog.csdn.net/aixiaoyang168/article/details/100866159,这里我讲一下如果我们j需要获取到某些监控指标的p99、p90等度量数据,比如说http请求的响应时长p99等,Micrometer根据指标监控的对象个数、监视目的和含义的不同,Micrometer指标类型大体可以分为Gauge、Counter、DistributionSu

2020-05-24 02:33:53 7587 3

原创 微服务开发手册之GRPC

1、http22、grpc原理3、grpc四种模式4、序列化与反序列化5、应用场景6、集成springcloud7、grpc之拦截器8、grpc服务发现、负载均衡之springcloud9、grpc服务发现、负载均衡之istio10、grpc监控之全链路11、grpc监控之prometheus12、grpc监控之断路器13、grpc高并发优化之预热14、grpc高并发优化之超时...

2020-05-19 23:39:26 681

原创 grpc报错合集以及解决方案

grpc报错之io.grpc.StatusRuntimeException: UNIMPLEMENTED

2020-05-10 01:20:51 16393 6

原创 微服务全链路跟踪:jaeger增加tag参数

微服务全链路跟踪:grpc集成zipkin微服务全链路跟踪:grpc集成jaeger微服务全链路跟踪:springcloud集成jaeger微服务全链路跟踪:jaeger集成istio,并兼容uber-trace-id与b3微服务全链路跟踪:jaeger集成hystrix前言微服务全链路跟踪:grpc集成jaeger中介绍了springboot集成jaeger,在现实使用时很多情况下...

2020-05-04 22:18:19 1612

原创 springcloud线上发布超时方案之终极杀招:预热(测试用例)

springcloud线上发布超时系列文章:springcloud线上发布超时方案之feign优化(ribbon饥饿加载)springcloud线上发布超时方案之grpc优化前言经过上面两章的优化,超时报错有所减少,但是只是得到了缓解但是当流量切换时还是会有大量超时。方案这里又增加了一个启动后预热,即在程序启动后执行测试用例n次,让hystrix、web容器线程池等资源初始化。在测...

2020-05-01 17:03:18 1265

原创 微服务全链路跟踪:jaeger集成hystrix

https://github.com/alibaba/transmittable-thread-localhttps://blog.csdn.net/songhaifengshuaige/article/details/80345012https://github.com/opentracing-contrib/java-concurrent/tree/master/src/main/java...

2020-04-28 22:58:33 504

原创 微服务全链路跟踪:jaeger集成istio,并兼容uber-trace-id与b3

微服务全链路跟踪:jaeger集成istio

2020-04-26 15:27:46 4172

原创 springcloud线上发布超时之grpc优化

上一章我们说到了springcloud高并发坑之ribbon饥饿加载在本章我们说说grpc的饥饿加载,grpc连接也是一样的问题,发布后,如果超时时间设置的比较短,第一次请求一般会报超时,当高并发情况下发布系统时,会出现一段时间的超时。问题分析问题原因与上一章描述的差不多,就是容器初始化后grpc连接没有初始化,在第一次调用时才会去初始化连接以及相关拦截器等上下文,而grpc暂时没有...

2020-04-19 21:56:19 1294

原创 springcloud线上发布超时方案之feign优化(ribbon饥饿加载)

在高并发情况下发布应用时,经常会发现监控中有很多超时报错或者断路器打开,下图中可以看到监控情况,测试时也会偶现第一次feign调用出错,第二次就会恢复正常。问题分析大家都知道,这里feign底层是集成的ribbon,这里ribbon也会有http连接池,这里的连接池是长连接,定时初始化一批并销毁旧连接,这里还包括一些上下文需要初始化,但是在容器初始化好时,ribbon底层的client是...

2020-04-19 21:41:53 2332

原创 mybatis坑之数字字符串比对

在mybatis开发过程中有需要在sql中判断查询哪张表,如下sql:SELECT a.tag_name, a.tag_id, count( 0 ) AS base_total FROM mm_dd_body a <if test="tagType!=null and tagType == '0'...

2020-04-18 18:01:58 2691

原创 java如何保证一个方法只能执行一次

java如何保证一个方法只能执行一次

2020-04-06 22:41:39 11068

原创 常用设计模式类图

简单工厂单例模式策略模式模板方法模式桥接模式责任链模式

2020-03-31 10:54:40 201

原创 微服务全链路跟踪:jaeger坑之NoSuchMethodError: io.jaegertracing.agent.thrift.Agent$Client.sendBaseOneway

在jaeger使用过程中遇到了一个奇怪的问题,本来jaeger运行的好好的,jaeger配置与依赖都没动,就上了一个版本,结果jaeger就没上报监控数据了,由于生产上没打印info日志,后面在本地试着重现,查看到报下面错误Exception in thread "jaeger.RemoteReporter-QueueProcessor"java.lang.NoSuchMethodError:...

2020-03-30 15:34:30 810

原创 grpc断路器之hystrix

上一章介绍了grpc断路器sentinel,grpc断路器之sentinel但是由于公司线上系统用的告警与监控组件是prometheus,而sentinel暂时还没有集成prometheus,所以这里就在部分线上系统还是用hystrix步骤1、pom依赖<dependency> <groupId>org.springframework.cl...

2020-03-26 22:11:18 661

原创 grpc断路器之sentinel

背景为了防止下游服务雪崩,这里考虑使用断路器技术选型由于是springboot服务且集成了istio,这里考虑三种方案istiohystrixsentinel这里分别有这几种方案的对比微服务断路器模式实现:Istio vs HystrixSentinel 与 Hystrix 的对比首先考虑的是istio,但是在使用istio进行熔断、分流时,流量不稳定,并且返回状态以及数据...

2020-03-23 19:25:45 2240

原创 quartz监控日志(四)自定义QuartzJobBean来实现监控

quartz监控日志(一)quartz监控日志(二)添加监听器quartz监控日志(三)查看卡死线程堆栈上面几章介绍了quartz监控的几种方式,下面再介绍一种监听方式:自定义QuartzJobBean一、自定义QuartzJobBean/** * 定时任务处理 * * @author lipeng * */@DisallowConcurrentExecutionpubl...

2020-03-16 22:40:45 1806

原创 kubernetes中集成istio出现拉取配置中心数据失败导致服务启动失败

由于在k8s使用了grpc,所以这里我们集成istio来实现http2的自动发现以及负载均衡,但是随着节点增加,istio之前同步配置时间边长导致第一次启动时,服务启动拉取配置时istio却还没初始化好相关配置,而导致第一次启动失败,错误如下这里有几种方案让服务启动时先暂停5s,再加载配置信息加载配置失败一直重试知道成功修改istio与业务pod启动时间间隔修改dockerfile ...

2020-03-15 19:06:40 713

原创 springboot之banner.txt

在springboot启动过程中,我们经常可以看到控制台打印下面图文:实际上这个打印图文,是可以自定义的,可以在springboot的resource中创建一个banner.txt文件,在启动时就会替换springboot默认的输出,比如说我们创建一个banner.txtApplication Version: ${info.version}Spring Boot Version: ${s...

2020-03-08 18:10:13 4206

原创 grpc坑之Could not find TLS ALPN provider; no working netty-tcnative

在使用grpc过程中偶尔会遇到下面报错: Initialization of bean failed; nestedexception is java.lang.IllegalStateException: Could not find TLS ALPN provider; no working netty-tcnative, Conscrypt, or Jetty NPN/ALPN avail...

2020-03-07 20:55:13 3957

jaeger-all-in-one.zip

jaeger本地测试工具,jaeger agent、collector、admin都在一块,在windows系统可以直接打开,然后再浏览器中输入:http://localhost:16686/search 客户端配置如下: opentracing: jaeger: udp-sender: host: localhost port: 6831 remote-reporter: flush-interval: 1000 max-queue-size: 5000 log-spans: true probabilistic-sampler: sampling-rate: 1

2020-04-16

MongoDB集群部署文档.docx

MongoDB集群部署文档,这是一种可以水平扩展的模式,在数据量很大时特给力,实际大规模应用一般会采用这种架构去构建monodb系统。 要构建一个 MongoDB Sharding Cluster

2020-03-26

Flex超炫相册

有一个项目用到了Flex,于是抽时间用flex与java做了一个相册,并且添加了上传功能,不过暂时没有针对具体的用户进行存储

2014-06-18

javaWeb邮箱 jsp+servlet

主要是jsp+servlet 操作简单方便

2009-11-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除