阿古达芝麻开门 - 博客园
摘要: 介绍 基于UI Automator进行二次开发,让你不懂开发也能编写自动化测试代码, 一边生成代码一边Debug,毫不费力写出完美的自动化测试代码 。该工具集成了Tomcat使得添加新的功能的时候使用HTML+API进行开发,降低了开发难度;集成了Derby数据库,测试用例持久化到数据库。 软件架构 阅读全文
posted @ 2024-11-14 22:46 阿古达芝麻开门 阅读(158) 评论(0) 推荐(0)
摘要: 为了解决项目管理的难点,过多纸质办公的问题,诞生了该系统。其中的价值点包括几大点: 公司组织架构管理;项目成员管理,项目分解,任务分配,时间进度,质量把控; 周报,月报,工时统计;查看项目成员工作饱和度;协助公司进行有效的项目成本控制 组织数据初始化 首先需要初始化公司组织架构的数据,职位信息录入, 阅读全文
posted @ 2024-11-12 23:54 阿古达芝麻开门 阅读(108) 评论(0) 推荐(0)
摘要: 我不排除微服务,但是我想说不要为微服务而微服务。曾经在一个公司做一个物流系统,每天的单都不到100 200单,直接上微服务,除了高大上和给公司带来更大的支出外,别无好处,这个量直接单体应用都撑得住。有时候简单就是最有效的,能让代码在单线程的环境中跑就不要搞多线程,单体应用能搞定也不一定要微服务。 单 阅读全文
posted @ 2025-11-04 23:35 阿古达芝麻开门 阅读(0) 评论(0) 推荐(0)
摘要: Spring Cloud 强调应用层解决方案,开发友好,适合 JVM 业务逻辑集中的团队;Kubernetes 原生(配合 Service/Ingress、Envoy/istio 等)倾向平台化、基础设施侧解决,适合容器化、跨语言、大规模生产环境。1. 核心理念Spring Cloud:库/框架级微 阅读全文
posted @ 2025-11-04 23:17 阿古达芝麻开门 阅读(3) 评论(0) 推荐(0)
摘要: 先监控与告警:暴露线程池/线程数、队列长度、请求并发、响应时间、GC/CPU 等指标(Micrometer/Prometheus/Grafana)。设置阈值告警(线程数、队列溢出、长时间 blocking)。采集运行时诊断信息(尽量在线收集,避免重启):常用命令:jstack -l <pid> > 阅读全文
posted @ 2025-11-04 22:35 阿古达芝麻开门 阅读(3) 评论(0) 推荐(0)
摘要: volatile关键字的主要作用是限制JVM进行指令重排,保证变量对其他线程的可见性,可以避免创建对象才完成了一半就被其他线程引用到这个对象,保证创建完成后才对其他线程可见。 static class Value { int x; // 默认 0 Value() { // 模拟耗时初始化(增加重排序 阅读全文
posted @ 2025-11-04 22:22 阿古达芝麻开门 阅读(3) 评论(0) 推荐(0)
摘要: 介绍 基于一些客户的需求,由IT Manager改造了一款各行业通用的项目管理平台,删减了一些IT项目管理专有的功能,并添加了一些通用项目管理的功能,增强了收支统计支出模块。系统主要包括组织管理,权限管理,项目管理,工时填写,周报,绩效考核,工时统计,成本管理, 员工价值分析 等以及相关的报表。下面 阅读全文
posted @ 2024-11-14 22:12 阿古达芝麻开门 阅读(79) 评论(0) 推荐(0)
摘要: 开始之前了解一下:Linux事件驱动模型 IO Server启动流程大概如下: 创建ServerSocket并监听端口 不断监听Socket,如果有Socket进来则创建一个线程去处理这个Socket. NIO Server启动流程大概如下: ServerSocketChannel监听端口并注册到S 阅读全文
posted @ 2021-06-14 16:48 阿古达芝麻开门 阅读(67) 评论(0) 推荐(0)
摘要: Netty是一个NIO框架,它将IO通道的建立、可读、可写等状态变化,抽象成事件,以责任链的方式进行传递,可以在处理链上插入自定义的Handler,对感兴趣的事件进行监听和处理 首先来一段Netty Server的sample: ServerBootstrap是一个启动辅助类; group(boss 阅读全文
posted @ 2021-06-14 16:46 阿古达芝麻开门 阅读(107) 评论(0) 推荐(0)
摘要: 我们主要了解 Client端的消息发送流程 服务端消息接收以及处理流程 如何理解Reactor反应堆(没有看懂boss是如何给worker分配任务的) 从上一章节中,我们知道Server启动后,会不断轮询是否有IO事件,如果有则会调用NioEventLoop#processSelectedKeys( 阅读全文
posted @ 2021-06-14 16:43 阿古达芝麻开门 阅读(412) 评论(0) 推荐(0)
摘要: 在服务启动的时候,Spring启动完成刷新的动作后(finishRefresh)会发布一个ContextRefreshedEvent事件 在dubbo的OneTimeExecutionApplicationContextEventListener监听了这个时间并启动Dubbo启动的相关流程,并在Du 阅读全文
posted @ 2021-06-14 16:41 阿古达芝麻开门 阅读(89) 评论(0) 推荐(0)
摘要: 服务调用端: 当我们调用服务的时候Dubbo会生成一个代理对象,然后调用InvokerInvocationHandler#invoke方法 AbstractClusterInvoker#invoke:设置负载均衡器 FailoverClusterInvoker#doInvoke:处理集群容错,负载均 阅读全文
posted @ 2021-06-14 16:39 阿古达芝麻开门 阅读(377) 评论(0) 推荐(0)
摘要: 最近花了两个周末,完成了IT Manager重构,由SpringBoot单机版改成了SpringCloud版本,服务没有拆分的很细(只是为了上SpringCloud),只是把desktop api和mobile api单独抽了出来,前端页面放到了网关层,同时新增了单点登陆模块并采用Redis存储to 阅读全文
posted @ 2021-06-14 16:35 阿古达芝麻开门 阅读(268) 评论(0) 推荐(0)
摘要: 分布式有可能会带来很多额外的技术问题,如分布式事务,分布式锁,全局唯一ID等问题,假如从设计层面可以避免这些问题,建议还是从设计层面避免。 安装: 首先下载https://github.com/seata/seata/releases/ 1.4.2的版本,修改file.conf和registry.c 阅读全文
posted @ 2021-06-14 16:30 阿古达芝麻开门 阅读(192) 评论(0) 推荐(0)
摘要: 在Java中,同一个JVM里面可以用synchronized关键字和ReentrantLock可重入锁解决多线程对同一资源的并发访问控制,但是随着分布式的快速发展,本地的加锁往往不能满足我们的需要,在我们的分布式环境中上面加锁的方法就会失去作用。 现在Spring Boot 分布式锁开箱即用,支持主 阅读全文
posted @ 2021-06-14 16:27 阿古达芝麻开门 阅读(89) 评论(0) 推荐(0)
摘要: 其实,这个全局唯一ID的问题,我并没有觉得很特别,甚至我觉得,如果生成全局唯一ID的时候,能把用户ID+时间戳也基本可以满足大部分业务的“全局唯一”的需求了。确实,生成全局ID的方法有很多,适应不同的场景、需求以及性能要求,所以即便是同一个系统,你也根据不同的业务场景设计不同的ID生成策略。 UUI 阅读全文
posted @ 2021-06-14 16:25 阿古达芝麻开门 阅读(242) 评论(0) 推荐(0)
摘要: Arthas是强大的Java应用在线诊断工具,先来浏览一下常用命令及用途: dashboard:查看当前进程的信息概览 thread:打印线程的栈 jad:反编译class vmtool:从jvm里查询对象,执行forceGc monitor:方法执行监控 watch:方法执行数据观测,如方法入参及 阅读全文
posted @ 2021-06-14 16:23 阿古达芝麻开门 阅读(78) 评论(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 阿古达芝麻开门 阅读(225) 评论(0) 推荐(0)
摘要: 编码规范:是否遵守了团队编码规范,降低维护代码的成本。 可读性:每个方法都必须有注释,改动的时候最好说明因为什么问题改动,改动的关键代码加上注释,加上改动者和相关Jira ID ,避免很多时候时间久了自己都看不懂自己的代码 ; 另外,检测可读性的另一个办法就是让别人review你的代码,如果别人能看 阅读全文
posted @ 2021-06-14 16:17 阿古达芝麻开门 阅读(745) 评论(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 阿古达芝麻开门 阅读(122) 评论(0) 推荐(0)