首页
学习
活动
专区
工具
TVP
发布

伯约架构思维

专栏成员
13
文章
5806
阅读量
15
订阅数
Mendmix代码解析:百搭的配置文件读取工具ResourceUtils
很久很久以前当微服务还没出现、配置中心还没出现、yaml配置文件也还没流行的时候,我们都习惯在项目里面写一个类似ResourceUtils或者PropertiesUtil的工具,无论在静态方法还是jsp代码都屡试不爽。如今Springcloud各种参数化配置、各种profile,Apollo、Nacos各种配置中心以及Properties、Yaml各种配置格式你的配置文件读取工具还好么?接下来我们讲解Mendmix项目的ResourceUtils工具类开启我们Mendmix代码解析系列课程的篇章。
vakinge
2023-02-22
2950
Jeesuite-libs正式更名为:Mendmix
2015年发布第一版取名叫Jeesuite-libs一直沿用,定位是工具型软件,以各个模块能完全独立使用为前提。经过近8年的发展以及在多家大型公司技术中台、数字化转型、企业上云过程中锤炼,定制化越来越高,Jeesuite-libs从原来一个个离散的点变成了一个逻辑完备的面,形成了一整套分布式云原生架构的解决方案。基于这种转变Jeesuite-libs不再适合我们的发展方向,因此现在更名为Mendmix。目前Mendmix沉淀了一整套包括业务网关、安全框架、数据库能力、缓存、消息中间件、分布式定时任务、以及融合各种云服务、各种第三方中间件的能力。在Mendmix的发展过程中为了满足轻量级及高可拓展性要求,我们不断取舍,不断融合目前已经实现了多个核心组件自主化。以下是在某全国TOP5教育公司基于Mendmix打造的整体架构:
vakinge
2023-02-22
3010
我的十年技术成长之路漫谈及分享
相比10年前现在的技术分门别类越来越多,各种端、各种开发语言、各种框架、各种领域。于是在学习路线制定上很多技术小伙伴就显得很盲目。针对这个问题我总结如下两点:
vakinge
2023-02-22
2210
DDD领域驱动设计在微服务架构的应用
我们都自诩面向对象编程,OOP思想更是熟读于心,然而随着业务日益复杂,代码越来越臃肿,这时感觉之前面向对象的理论也毫无用武之地。到底哪个环节出问题了?笔者认为造成这种局面的原因很大程度是我们忽视了业务建模和设计的重要性。我们通常启动一个项目后,架构师等技术人员会拿到产品人员的产品需求然后开始各种建模、各种拆分,也是在技术内部形成共识和就进入实施阶段。这实际就犯了一个严重的错误:技术和业务未达成业务模型的共识。2003年Eric Evans发布首版《领域驱动设计》实际就为了解决这个问题。领域驱动设计更大层面是提供了方法论的支持,所以在具体实施各有不同。今天我们就介绍下我们在实践过程领域驱动设计的一些经验与心得。
vakinge
2023-02-22
5990
分布式场景全局唯一ID生成工具类(非雪花算法)
这是一个分布式场景下全局唯一ID生成工具,类似于雪花算法(SnowFlake)。如果你需要生成订单号等类似前缀+yyMMddHHmmss+序列格式的全局唯一性序列可以使用。
vakinge
2023-02-22
3880
mongodb位运算$bit介绍及使用场景详解
最近在做一个教学相关一个项目,由于是一个多租户SaaS平台,需要支持租户完全自定义课程的属性,如:城市、区域、校区、年级、科目以及学费、杂费等等,于是我们选用的数据库是mongoDB。其中一个模块是课程上架模块。与本博文相关大致需求如下:课程包括年级,年级可以多选,譬如一堂素能课程是1~3 年级一起上。大致落库后数据如下:
vakinge
2023-02-22
6680
开篇:中台之我见
首先中台不是一门新的技术,而是一种新的架构模式或者理解为一种新的架构思维。相比我们熟悉的SOA、微服务、ESB这些架构而言,中台是更高层次的表示。某个大佬总结中台为:企业级能力复用平台,我觉得非常确切,分而析之,我做了这张图更好的说明:
vakinge
2023-02-22
2210
快速创建项目神器-项目克隆脚本
现在大家都流行用微服务,所以需要创建新项目的频率也越来越高。在此分享一段基于模板项目生成新项目的脚本。原理很简单,关键词替换,所以新建服务名尽量使用辨识度高的
vakinge
2023-02-22
2630
redis订阅发布机制实现分布式锁
通常情况在解决分布式场景锁机制都会首先想到redis。因为redis单线程天然就解决了这个问题。使用redis实现分布式锁可以通过getset和setnx。
vakinge
2023-02-22
4590
遗留非springboot传统项目接入eureka注册与服务发现
最近规划自动化运维以及统一监控需求,鉴于目前公司内部大部分项目采用spring cloud体系架构、另外还有一些老的传统spring web的项目,于是就考虑把老的项目通过低成本改造的方式接入spring cloud体系,也就是可以通过eureka注册和服务发现、通过zuul服务路由。
vakinge
2023-02-22
2990
spring boot微服务通用部署启动脚本
通用springboot微服务启动、停止脚本。 #!/bin/bash # # chkconfig: - 20 80 # description: Starts and stops the App. # author:vakinge ENV=dev RUNNING_USER=vakinge ADATE=`date +%Y%m%d%H%M%S` APP_NAME=passport-server APP_HOME=`pwd` dirname $0|grep "^/" >/dev/null if [ $
vakinge
2023-02-22
5750
Spring Cloud zuul自定义统一异常处理实现
1.无法快速识别出是否是请求路由的服务超时还是没有任何可用节点,发生错误只能查看日志通过堆栈去定位; 2.无法兼容自定义的譬如{code:500,msg:”xx error”}格式的响应包格式。
vakinge
2023-02-22
3730
单个用户及Ip请求频率限制思路(附java实现)
我们熟悉的限流算法漏桶和令牌桶外,很多情况我们还需要考虑当个用户(ip)访问频率控制,避免被恶意调用。如果是开放平台限制一天调用多少次这种粗放的粒度相对好处理一些。如果需要更小时间粒度控制,譬如一个10秒时间窗口最大只允许访问10次,相对上述粗放粒度我们还需要考虑性能和边界两个问题。在这里提供一种思路给大家,这个也是我写的api网关访问频率控制的代码,经过了线上环境实践。 推荐:,jeesuite开发框架免费开源、一站式解决方案。 ---- 思路(以10秒限制10次为例) 定义一个全局map key
vakinge
2023-02-22
1.1K0
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档