阿古达芝麻开门 - 博客园

06 2021 档案

摘要:开始之前了解一下:Linux事件驱动模型 IO Server启动流程大概如下: 创建ServerSocket并监听端口 不断监听Socket,如果有Socket进来则创建一个线程去处理这个Socket. NIO Server启动流程大概如下: ServerSocketChannel监听端口并注册到S 阅读全文 »
posted @ 2021-06-14 16:48 阿古达芝麻开门 阅读(50) 评论(0) 推荐(0) 编辑
摘要:Netty是一个NIO框架,它将IO通道的建立、可读、可写等状态变化,抽象成事件,以责任链的方式进行传递,可以在处理链上插入自定义的Handler,对感兴趣的事件进行监听和处理 首先来一段Netty Server的sample: ServerBootstrap是一个启动辅助类; group(boss 阅读全文 »
posted @ 2021-06-14 16:46 阿古达芝麻开门 阅读(93) 评论(0) 推荐(0) 编辑
摘要:我们主要了解 Client端的消息发送流程 服务端消息接收以及处理流程 如何理解Reactor反应堆(没有看懂boss是如何给worker分配任务的) 从上一章节中,我们知道Server启动后,会不断轮询是否有IO事件,如果有则会调用NioEventLoop#processSelectedKeys( 阅读全文 »
posted @ 2021-06-14 16:43 阿古达芝麻开门 阅读(390) 评论(0) 推荐(0) 编辑
摘要:在服务启动的时候,Spring启动完成刷新的动作后(finishRefresh)会发布一个ContextRefreshedEvent事件 在dubbo的OneTimeExecutionApplicationContextEventListener监听了这个时间并启动Dubbo启动的相关流程,并在Du 阅读全文 »
posted @ 2021-06-14 16:41 阿古达芝麻开门 阅读(81) 评论(0) 推荐(0) 编辑
摘要:服务调用端: 当我们调用服务的时候Dubbo会生成一个代理对象,然后调用InvokerInvocationHandler#invoke方法 AbstractClusterInvoker#invoke:设置负载均衡器 FailoverClusterInvoker#doInvoke:处理集群容错,负载均 阅读全文 »
posted @ 2021-06-14 16:39 阿古达芝麻开门 阅读(355) 评论(0) 推荐(0) 编辑
摘要:最近花了两个周末,完成了IT Manager重构,由SpringBoot单机版改成了SpringCloud版本,服务没有拆分的很细(只是为了上SpringCloud),只是把desktop api和mobile api单独抽了出来,前端页面放到了网关层,同时新增了单点登陆模块并采用Redis存储to 阅读全文 »
posted @ 2021-06-14 16:35 阿古达芝麻开门 阅读(223) 评论(0) 推荐(0) 编辑
摘要:分布式有可能会带来很多额外的技术问题,如分布式事务,分布式锁,全局唯一ID等问题,假如从设计层面可以避免这些问题,建议还是从设计层面避免。 安装: 首先下载https://github.com/seata/seata/releases/ 1.4.2的版本,修改file.conf和registry.c 阅读全文 »
posted @ 2021-06-14 16:30 阿古达芝麻开门 阅读(176) 评论(0) 推荐(0) 编辑
摘要:在Java中,同一个JVM里面可以用synchronized关键字和ReentrantLock可重入锁解决多线程对同一资源的并发访问控制,但是随着分布式的快速发展,本地的加锁往往不能满足我们的需要,在我们的分布式环境中上面加锁的方法就会失去作用。 现在Spring Boot 分布式锁开箱即用,支持主 阅读全文 »
posted @ 2021-06-14 16:27 阿古达芝麻开门 阅读(80) 评论(0) 推荐(0) 编辑
摘要:其实,这个全局唯一ID的问题,我并没有觉得很特别,甚至我觉得,如果生成全局唯一ID的时候,能把用户ID+时间戳也基本可以满足大部分业务的“全局唯一”的需求了。确实,生成全局ID的方法有很多,适应不同的场景、需求以及性能要求,所以即便是同一个系统,你也根据不同的业务场景设计不同的ID生成策略。 UUI 阅读全文 »
posted @ 2021-06-14 16:25 阿古达芝麻开门 阅读(231) 评论(0) 推荐(0) 编辑
摘要:Arthas是强大的Java应用在线诊断工具,先来浏览一下常用命令及用途: dashboard:查看当前进程的信息概览 thread:打印线程的栈 jad:反编译class vmtool:从jvm里查询对象,执行forceGc monitor:方法执行监控 watch:方法执行数据观测,如方法入参及 阅读全文 »
posted @ 2021-06-14 16:23 阿古达芝麻开门 阅读(59) 评论(0) 推荐(0) 编辑
摘要:CPU 负载特别高的问题 show-busy-java-threads.sh# 从 所有的 Java进程中找出最消耗CPU的线程(缺省5个),打印出其线程栈。show-busy-java-threads.sh -c <要显示的线程栈数>show-busy-java-threads.sh -c <要显 阅读全文 »
posted @ 2021-06-14 16:21 阿古达芝麻开门 阅读(210) 评论(0) 推荐(0) 编辑
摘要:编码规范:是否遵守了团队编码规范,降低维护代码的成本。 可读性:每个方法都必须有注释,改动的时候最好说明因为什么问题改动,改动的关键代码加上注释,加上改动者和相关Jira ID ,避免很多时候时间久了自己都看不懂自己的代码 ; 另外,检测可读性的另一个办法就是让别人review你的代码,如果别人能看 阅读全文 »
posted @ 2021-06-14 16:17 阿古达芝麻开门 阅读(708) 评论(0) 推荐(0) 编辑
摘要:下载apache-jmeter-5.2.zip/apache-jmeter-5.2.tgz:https://downloads.apache.org/jmeter/binaries/ ​ Jmeter5.2 Window安装与使用 首先要安装JDK8+, 下载apache-jmeter-5.2.zi 阅读全文 »
posted @ 2021-06-14 16:11 阿古达芝麻开门 阅读(103) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示