- 博客(284)
- 资源 (4)
- 收藏
- 关注
原创 ZPL Viewer工具网站
在工作中,我们经常需要设计和预览ZPL(Zebra Programming Language)文件。以前,我一直使用ZPL Design这类工具,但后来我觉得有一个线上工具会更方便。所以,抽空我开发了一个线上ZPL预览工具,希望能帮助到有同样需求的朋友们。希望大家能试用并反馈意见,帮助我们不断改进这个工具。如果你有任何问题或建议,请随时联系我。
2024-07-18 20:58:03
1275
原创 微服务拆分时机与原则
微服务拆分微服务拆分时机为了快速迭代高并发场景可重用提交代码经常冲突小功能要积累到大版本才能上线服务拆分原则原则一:高内聚和低耦合。原则二:服务拆分正交性原则原则三:服务粒度适中、演进式拆分原则四:服务接口的定义要保证可扩展性与幂等性。微服务拆分时机微服务拆分绝非一个大跃进运动,由高层发起,把一个应用拆分的七零八落的,最终大大增加运维成本,但是并不会带来收益。微服务拆分的过程,应该是一个由痛点驱动的,是业务真正遇到了快速迭代和高并发的问题,如果不拆分,将对于业务的发展带来影响,只有这个时候,微服务的拆分
2021-06-06 11:19:41
2214
1
原创 springboot加载本地配置中文乱码
https://blog.youkuaiyun.com/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
236
原创 博客计划迁移到微信公众号:service_mesh,欢迎关注
各位新年好,我的博客已经整体迁移到微信公众号上,欢迎大家关注。可以搜索微信公众号service_mesh并关注。
2021-01-12 13:57:13
203
原创 springcloud gateway高级功能之监控metric中tag修改
springcloud gateway高级功能之监控metric中tag修改
2021-01-04 20:53:28
2394
原创 springcloud gateway高级功能之集成apollo后动态刷新路由
springcloud gateway高级功能之集成apollo后动态刷新路由
2021-01-04 19:49:18
1815
原创 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
8226
8
原创 微服务三大利器之限流
背景限流算法限流框架guavasentinel限流实战nginx限流zuul限流springcloud gateway限流服务限流
2020-11-22 16:59:39
1241
原创 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
5717
6
原创 jcsv导入导出动态扩展思路
我整理的jcsv工具类库简介:[csv导入导出组件jcsv](https://blog.youkuaiyun.com/lp19861126/article/details/99769509)jcsv可以支持导入校验规则动态扩展,以及导出规则动态扩展。下面来介绍下扩展思路
2020-07-19 22:13:41
452
原创 面试必问之jvm
问题1 说一下jvm内存模型问题1.1 jvm内存模型栈区:栈分为java虚拟机栈和本地方法栈重点是Java虚拟机栈,它是线程私有的,生命周期与线程相同。每个方法执行都会创建一个栈帧,用于存放局部变量表,操作栈,动态链接,方法出口等。每个方法从被调用,直到被执行完。对应着一个栈帧在虚拟机中从入栈到出栈的过程。通常说的栈就是指局部变量表部分,存放编译期间可知的8种基本数据类型,及对象引用和指令地址。局部变量表是在编译期间完成分配,当进入一个方法时,这个栈中的局部变量分配内存大小是确定的。会有两
2020-06-27 10:12:44
363
原创 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
8206
原创 面试必问之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
266
原创 上传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
3583
原创 面试必问之redis
这里是我作为10年面试经验总结的面试中必问问题问题一 简单介绍下redisedis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI c语言编写的key-value存储系统(区别于MySQL的二维表格的形式存储。)。和Memcache类似,但很大程度补偿了Memcache的不足。和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以Memcache的应用场景适用.
2020-06-07 23:23:31
323
原创 springboot如何集成Prometheus如何暴露Histogram来获取P99等监控指标
背景springboot如何集成Prometheus我这里不做详细描述,要想了解集成过程,可以参考一下博客:https://blog.youkuaiyun.com/aixiaoyang168/article/details/100866159,这里我讲一下如果我们j需要获取到某些监控指标的p99、p90等度量数据,比如说http请求的响应时长p99等,Micrometer根据指标监控的对象个数、监视目的和含义的不同,Micrometer指标类型大体可以分为Gauge、Counter、DistributionSu
2020-05-24 02:33:53
8729
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
761
原创 微服务全链路跟踪: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
1745
原创 springcloud线上发布超时方案之终极杀招:预热(测试用例)
springcloud线上发布超时系列文章:springcloud线上发布超时方案之feign优化(ribbon饥饿加载)springcloud线上发布超时方案之grpc优化前言经过上面两章的优化,超时报错有所减少,但是只是得到了缓解但是当流量切换时还是会有大量超时。方案这里又增加了一个启动后预热,即在程序启动后执行测试用例n次,让hystrix、web容器线程池等资源初始化。在测...
2020-05-01 17:03:18
1387
原创 微服务全链路跟踪:jaeger集成hystrix
https://github.com/alibaba/transmittable-thread-localhttps://blog.youkuaiyun.com/songhaifengshuaige/article/details/80345012https://github.com/opentracing-contrib/java-concurrent/tree/master/src/main/java...
2020-04-28 22:58:33
559
原创 springcloud线上发布超时之grpc优化
上一章我们说到了springcloud高并发坑之ribbon饥饿加载在本章我们说说grpc的饥饿加载,grpc连接也是一样的问题,发布后,如果超时时间设置的比较短,第一次请求一般会报超时,当高并发情况下发布系统时,会出现一段时间的超时。问题分析问题原因与上一章描述的差不多,就是容器初始化后grpc连接没有初始化,在第一次调用时才会去初始化连接以及相关拦截器等上下文,而grpc暂时没有...
2020-04-19 21:56:19
1457
原创 springcloud线上发布超时方案之feign优化(ribbon饥饿加载)
在高并发情况下发布应用时,经常会发现监控中有很多超时报错或者断路器打开,下图中可以看到监控情况,测试时也会偶现第一次feign调用出错,第二次就会恢复正常。问题分析大家都知道,这里feign底层是集成的ribbon,这里ribbon也会有http连接池,这里的连接池是长连接,定时初始化一批并销毁旧连接,这里还包括一些上下文需要初始化,但是在容器初始化好时,ribbon底层的client是...
2020-04-19 21:41:53
2475
原创 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
2905
原创 微服务全链路跟踪: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
871
原创 grpc断路器之hystrix
上一章介绍了grpc断路器sentinel,grpc断路器之sentinel但是由于公司线上系统用的告警与监控组件是prometheus,而sentinel暂时还没有集成prometheus,所以这里就在部分线上系统还是用hystrix步骤1、pom依赖<dependency> <groupId>org.springframework.cl...
2020-03-26 22:11:18
718
原创 grpc断路器之sentinel
背景为了防止下游服务雪崩,这里考虑使用断路器技术选型由于是springboot服务且集成了istio,这里考虑三种方案istiohystrixsentinel这里分别有这几种方案的对比微服务断路器模式实现:Istio vs HystrixSentinel 与 Hystrix 的对比首先考虑的是istio,但是在使用istio进行熔断、分流时,流量不稳定,并且返回状态以及数据...
2020-03-23 19:25:45
2363
原创 quartz监控日志(四)自定义QuartzJobBean来实现监控
quartz监控日志(一)quartz监控日志(二)添加监听器quartz监控日志(三)查看卡死线程堆栈上面几章介绍了quartz监控的几种方式,下面再介绍一种监听方式:自定义QuartzJobBean一、自定义QuartzJobBean/** * 定时任务处理 * * @author lipeng * */@DisallowConcurrentExecutionpubl...
2020-03-16 22:40:45
1934
原创 kubernetes中集成istio出现拉取配置中心数据失败导致服务启动失败
由于在k8s使用了grpc,所以这里我们集成istio来实现http2的自动发现以及负载均衡,但是随着节点增加,istio之前同步配置时间边长导致第一次启动时,服务启动拉取配置时istio却还没初始化好相关配置,而导致第一次启动失败,错误如下这里有几种方案让服务启动时先暂停5s,再加载配置信息加载配置失败一直重试知道成功修改istio与业务pod启动时间间隔修改dockerfile ...
2020-03-15 19:06:40
755
原创 springboot之banner.txt
在springboot启动过程中,我们经常可以看到控制台打印下面图文:实际上这个打印图文,是可以自定义的,可以在springboot的resource中创建一个banner.txt文件,在启动时就会替换springboot默认的输出,比如说我们创建一个banner.txtApplication Version: ${info.version}Spring Boot Version: ${s...
2020-03-08 18:10:13
4282
jaeger-all-in-one.zip
2020-04-16
MongoDB集群部署文档.docx
2020-03-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人