导航菜单
路很长,又很短
博主信息
昵   称:Cocodroid ->关于我
Q     Q:2531075716
博文数:317
阅读量:923920
访问量:92746
至今:
×
博文->>首页 博文列表>>
Tags : Eureka,源码剖析 发表时间:2020-01-16 21:26:13
Eureka启动的过程有client端和server端, Eureka client端入口是DiscoveryClient类, Eureka server端入口是EurekaBootStrap类, 接下来我们就从源码看下它们做了什么吧! 〓Eureka Client端启动1)看下DiscoveryClient类图:  由此看出DiscoveryClient实现了EurekaClient、LookupService接口,并且定义了内部类:DiscoverClientOptionalArgs,可选参数类,源码里实现为空,是默认实
类别:源码 | 阅读(15)| 回复(0)| (0) 阅读全文>>
Tags : 线上问题,TimerTask 发表时间:2020-01-09 00:09:52
最近有版本特性要上线,但是在上线的过程中遇到了“阻碍”,使得上线过程不是很顺利,想必你也曾经遇到过吧! 1 问题背景 说说大概的场景吧。由于系统里面增加了权限的限制,不同用户拥有不同的数据权限。当前的方案是查询用户uid和对应的数据列表存放在本地内存里,并且需要定时捞取对应的关系数据存储在本地缓存LocalCacheMap中,key为uid,value为List。 接着其它接口则根据LocalCacheMap获取对应的数据权限进行相关的判
类别:线上问题 | 阅读(74)| 回复(0)| (0) 阅读全文>>
Tags : 实战Arthas,排查问题,生产问题 发表时间:2019-12-30 20:45:39
点击上方蓝色字关注我们~ 有时系统上线之后出现bug,有些bug是非常难出现或者存在特定的用户上,假如我们在开发环境或者测试环境,有时是很难重现出来的,所以对于现场保留或者重现很重要。 此时如果能在生产系统上直接进行“debug”,那得多好,解决问题就更加容易和方便了。 本文是使用阿里开源的技术框架-Java诊断利器:阿尔萨斯Arthas,来解决生产上的问题,当前最新版本是3.1.7。 github地址 https://github.com/alibaba/arthas/,目前star已有18.5K,也说明这个框架多么成功和受欢迎
类别:线上问题 | 阅读(171)| 回复(0)| (0) 阅读全文>>
Tags : 分布式、数据结构、一致性 发表时间:2019-12-24 00:00:25
点击上方蓝色字关注我们~ 分布式知识是我们每个开发人员都是应该掌握的,即使你已经有几年的开发经验,但是对于分布式系统接触却寥寥无几,是时候学习一下技能了。 分布式系统应具有以下四个特征:  (1)分布性。分布式系统由多台计算机组成,它们在地域上是分散的,可以散布在一个单位、一个城市、一个国家,甚至全球范围内。整个系统的功能是分散在各个节点上实现的,因而分布式系统具有数据处理的分布性。   (2)自治性。分布式系统中的各个节点都包含自己的处理机和内存,各自具有独立的处理数据的功能。通常,彼此在地位上是平等
类别:架构 | 阅读(60)| 回复(0)| (0) 阅读全文>>
Tags : 电脑,升级,重装,备份,清单 发表时间:2019-12-19 01:49:42
电脑升级/重装-备份清单 QQ:表情包 Xshell:ssh连接配置,快捷按钮集。 https://jingyan.baidu.com/article/5d368d1ef9c0d83f60c057e9.html Chrome:浏览记录,标签等,gcb备份工具 Notepad++:草稿/笔记,记录 Navicat:数据库连接配置 idea:习惯配置
类别:苏说 | 阅读(70)| 回复(0)| (1) 阅读全文>>
Tags : IDEA 发表时间:2017-12-15 01:29:55
    强大的IDE开发工具,使用idea准没错!这里有一些激活的方法,希望帮助那些个人学习者能更好的使用此强大工具,支持正版!     3、idea激活码(直至2020年6月) T3ACKYHDVF-eyJsaWNlbnNlSWQiOiJUM0FDS1lIRFZGIiwibGljZW5zZWVOYW1lIjoi5bCP6bifIOeoi+W6j+WRmCIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNl
类别:Other | 阅读(929)| 回复(1)| (0) 阅读全文>>
Tags : 我,Java,工作,经历 发表时间:2017-08-06 05:56:03
Cocodroid 2531075716At企鹅.com  Java高级工程师 【个人简述】:     5年Java后端开发经验,有互联网O2O、电商系统、车联网IoT、互联网金融等项目开发经验。当前在基础架构组负责开发和维护基础组件和服务,参与Code Review、方案评审及设计,丰富的互联网项目开发经验。关注分布式、微服务、系统架构、开源技术等。 【经历简述】:     1、个人网站和博客网站:权限、备份/还原
类别:苏说 | 阅读(1346)| 回复(2)| (7) 阅读全文>>
Tags : SecureRandom,生产事故 发表时间:2019-11-30 01:24:32
写在前面--每个人都是在不断碰壁中获得成长,bug的逼格越高, 成长速度越快。         本人上周亲手写下了一个牛逼的bug,直接导致的结果是,晚上12点升级后台接口以后,第二天早上7点多开始,所有的app页面出现卡顿,白屏。公司研发老总,迅速召集公司运维大佬,产品大佬,研发大佬奔赴公司解决bug。所有人,开始手忙脚乱,查看线上日志,抓包,阿尔萨斯监听 接口耗时。各个大神,各种手段,各显才能。。。经过三个小时的排查,最终用jstack 命令查看线程数,发现整个服务,线程不断攀升至400多,且绝大多数空闲线程一直处于等待状态,没有执行任何任务。
类别:Java | 阅读(102)| 回复(0)| (0) 阅读全文>>
Tags : 设计原则,软件设计,可伸缩系统 发表时间:2019-11-08 00:41:38
01简单 ◆隐藏复杂与构建抽象随着系统的发展,会发现越来越复杂,可能没法了解整个系统的全部,每个人的大脑处理能力有限,不可能了解系统的每个细节。 所以,保持软件简单可以帮助你更好的了解系统。随着系统的逐渐壮大,我们只能做到的是保持局部简单,无法保持整体简单。 开发系统服务时,要创建暴露更高层次的抽象,实现抽象允诺的功能,从而隐藏其复杂性。 ◆避免过度设计我们工程师一般更喜欢挑战高难度的问题,可能一个简单的问题会使其复杂化,使得可能开发出难以维护的代码。早期可以构建合理的抽象层次,可以给以后迭代增加新特性,这样比一开始就设计开发复杂的系统更有好处。 开
类别:架构 | 阅读(90)| 回复(0)| (0) 阅读全文>>
Tags : 消息队列,消息轨迹,RocketMQ 发表时间:2019-10-01 07:47:30
一、消息轨迹数据结构 二、发送消息轨迹流程 三、消息轨迹存储 四、消费消息轨迹流程 五、总结 消息轨迹在不少情况是很重要的,比如消息到底有没有发送出去,消息存储在哪个Broker,消息被哪些消费者消费、消费时间、消费耗时等等。对于我们排查消息问题还是非常重要的。 RocketMQ 4.4.0版本开始支持消息轨迹,目前(2019-09-08)最新release版本是4.5.2。 下图是使用RocketMQ-console查看消息轨迹的数据:
类别:消息队列 | 阅读(196)| 回复(0)| (0) 阅读全文>>