美团的动态线程池,不依赖中间件可以实现么?(二)

Handpc
发布于 2022-6-21 16:27
浏览
0收藏

 

04

如何运行 Demo?

 

目前动态线程池功能已经完成,可以直接把代码拉到本地运行。项目中数据库是作者 ECS Docker 搭建,大家直接使用即可

  1. 启动 dynamic-threadpool-server 模块下 ServerApplication 应用类
  2. 启动 dynamic-threadpool-example 模块下 ExampleApplication 应用类
    通过接口修改线程池中的配置。HTTP POST 路径:http://localhost:6691/v1/cs/configs,Body 请求体如下:
{
    "ignore": "tenantId、itemId、tpId 代表唯一线程池,请不要修改",
    "tenantId": "common",
    "itemId": "message-center",
    "tpId": "message-produce",
    "coreSize": 10,
    "maxSize": 15,
    "queueType": 9,
    "capacity": 100,
    "keepAliveTime": 10,
    "rejectedType": 7,
    "isAlarm": 0,
    "capacityAlarm": 81,
    "livenessAlarm": 82
}

接口调用成功后,观察 dynamic-threadpool-example 控制台日志输出,日志输出包括不限于此信息即为成功

[🔥 MESSAGE-PRODUCE] Changed thread pool. coreSize :: [11=>10], maxSize :: [15=>15], queueType :: [9=>9]
capacity :: [100=>100], keepAliveTime :: [10000=>10000], rejectedType :: [7=>7]

现阶段已集成钉钉消息推送,后续会持续接入企业微信、邮箱、飞书、短信等通知渠道。可以通过添加钉钉群体验消息推送,群号:31764717

美团的动态线程池,不依赖中间件可以实现么?(二)-鸿蒙开发者社区
项目代码功能还在持续开发,初定发布 1.0.0 RELEASE 完成以下功能。部署了 Server 服务,只需要引入 Starter 组件到业务系统中,即可完成动态修改、监控、报警等特性

 

05

查看源码能收获什么?

 

目前还没有发布 Release 版本,小伙伴可以阅读框架源码,查看框架中好的设计理念或者编码技巧

 

在项目开发过程中,借鉴了 Nacos、Eureka、Seata、ShardingSphere 等中间件项目的优雅设计

美团的动态线程池,不依赖中间件可以实现么?(二)-鸿蒙开发者社区

06

总结回顾

 

小编是个有代码洁癖的程序员,项目中的代码开发完全遵守阿里巴巴代码规约,也推荐大家使用,培养好的编码习惯

屏幕前的小伙伴,如果觉得项目功能规划、代码设计还不错的话,辛苦点个 🚀 Star ,方便后续查看

对于这个项目,是否有什么不一样看法,欢迎在评论区一起沟通交流~

参考资料
[1]美团线程池文章: https://tech.meituan.com/2020/04/02/java-pooling-pratice-in-meituan.html

 

文章转自公众号:龙台的技术笔记

标签
已于2022-6-21 16:27:26修改
收藏
回复
举报
回复
    相关推荐