微服务
文章平均质量分 56
系统架构设计以及微服务,DDD相关技术宇介绍
我是lk
爱学习的小白
展开
-
基于官方自行实现的sentinel-dashboard持久化到Zookeeper、Nacos、Apollo
sentinel是由阿里开源的,一款广泛流行的限流软件。官方提供的sentinel-dashboard(sentinel的操作控制台)非常便捷,但比较可惜的是官方在已经开发的版本中仅集成了基于内存的实现,一旦项目重启,原先的配置就失效了。对于持久化的实现在官方代码的test目录中有所示例介绍,但是需要开发者进行二次开发,所以这里基于网上其他的一些大佬的代码,实现了下面的直接集成zookeeper,nacos,apollo持久化话的控制台。并且提供了对应的docker镜像,可以直接部署使用。原创 2022-10-25 20:10:02 · 864 阅读 · 0 评论 -
锁系列三:分布式锁之redis实现、zookeeper实现
分布式锁几乎是在微服务架构下的标配。在前面的系列已经讲过如何通过redisson实现分布式锁(redisson本身已经封装好了,开箱即用),不过得引入redisson的依赖,这里将配合lua脚本自行实现redis的分布式锁。同时还将实现zookeeper版的分布式锁。原创 2022-10-25 19:50:40 · 870 阅读 · 0 评论 -
定时任务框架xxl-job的Docker部署与接入方法
1.原理与介绍:官方文档2.部署首先你需要有一个mysql的数据库,关于数据库的创建这里不做介绍,本地通过任何方式创建均可。创建完成后需要创建对应的库和表,这里的库名定义为xxl_job(可以修改,注意和下面的docker-compose.yml文件中的配置保持一致)对应的数据库文件在:https://github.com/xuxueli/xxl-job/blob/master/doc/db/tables_xxl_job.sqldocker-compose.yml文件如下注意替换上面连接的数据库的账号原创 2022-10-03 10:58:46 · 5142 阅读 · 0 评论 -
配置中心系列二:Nacos的接入与使用(配置中心+注册中心)
nacos是一款优良的,集服务注册与发现和配置于一体的软件系统,即可以作为注册中心也可以作为配置中心。由于官方介绍非常完善,所以这里仅介绍具体的搭建和接入方式。原创 2022-10-02 17:50:19 · 2297 阅读 · 0 评论 -
注册中心系列二:Consul的接入与使用
consul主要有server和client两种组件组成。server负责核心数据的存储和处理请求,server可以部署多个实例(通常推荐3-5个),server只有一个实例是leader实例,就是主节点,主节点是自动选举产生的,主节点负责处理数据的写入处理,同时将数据同步至其他server节点。client负责跟server通信,处理转发服务注册、服务发现请求到server节点,client还负责服务的健康检查,client节点也可以部署多个实例,甚至每个微服务节点都部署一个client实例。原创 2022-10-02 17:16:46 · 1201 阅读 · 0 评论 -
注册中心系列一:Eureka的接入与使用
从组件功能看黄色注册中心集群,分别部署在北京、天津、青岛机房;红色服务提供者,分别部署北京和青岛机房;淡绿色服务消费者,分别部署在北京和天津机房;北京机房部署了注册中心、服务提供者和服务消费者;天津机房部署了注册中心和服务消费者;青岛机房部署了注册中心和服务提供者;组件调用关系服务提供者启动后,向注册中心发起register请求,注册服务在运行过程中,定时向注册中心发送renew心跳,证明“我还活着”。停止服务提供者,向注册中心发起cancel请求,清空当前服务注册信息。原创 2022-10-02 17:03:41 · 1675 阅读 · 0 评论 -
配置中心系列一:SpringCloud Config的接入与使用
Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持。使用Config Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念映射与Spring Environment和PropertySource抽象相同,因此它们与Spring应用程序非常契合,但可以与任何以任何语言运行的应用程序一起使用。随着应用程序通过从开发人员到测试和生产的部署流程,您可以管理这些环境之间的配置,并确定应用程序具有迁移时需要运行的一切。原创 2022-10-02 15:06:38 · 438 阅读 · 0 评论 -
企业级电商领域建模案例解析
1.业务中台定义2.中台VS平台3.建模阶段4.实施阶段边界定义统一选型分层架构架构动态视角工程规范原创 2021-05-02 13:51:52 · 320 阅读 · 0 评论 -
领域划分的架构
一.经典分层架构依赖倒置原则:DAO层模块不应该依赖底层模块,两者都应该依赖于抽象;抽象不应该依赖于细节,细节应该依赖于抽象二.六边形架构在六边形架构中,领域层和技术没有半毛钱的关系三.CQRS (架构风格)CQRS和领域概念的结合四.事件驱动架构(架构风格)领域事件是指在领域模型范畴中已完成的或者正在完成的事件...原创 2021-05-02 13:19:23 · 610 阅读 · 0 评论 -
领域建模——四色建模
建模过程领域模型图原创 2021-05-02 11:35:11 · 702 阅读 · 0 评论 -
领域建模——事件风暴
1.识别领域事件具有业务意义过去式持续性2.识别领域命令命令是产生领域事件的,就是一个动作3.寻找聚合4.领域边界的确认原创 2021-05-02 11:32:34 · 531 阅读 · 0 评论 -
领域建模——用例法建模
1.用例收集用例的识别与表达- 用例:文本形式的情境描述- 用例质量:完整性,准确性收集名词- 直接识别/短语推导2.构造类与属性完善类及属性3.添加类关联收集谓状补——》识别关联性——》定义多重性4.领域模型...原创 2021-05-02 11:24:48 · 442 阅读 · 0 评论 -
领域驱动设计的概念
一.领域驱动设计的过程二.DDD的优势三.战略建模VS战术建模四.核心域/支撑子域/通用子域一个业务系统一般只有一个核心域,其余的都是围绕核心域展开的。五.理解限界上下文上下文映射图六.领域实体七.实体和值对象实体:表示那些具有生命周期并且会在其生命周期中发生改变的东西值对象:表示起描述性作用的并且可以相互替换的概念八.聚合聚合:是指一堆对象的集合,对象之间具有密不可分的联系,他们是内聚在一起的。使用原则:再一次事务中,最多只能更改一个聚合的状态。如果一次业务操作设计原创 2021-05-02 11:13:53 · 593 阅读 · 0 评论 -
服务拆分的原则
一.拆分的原则1.粒度与规模相当扩张期:3人对应1个服务维护期:2人对应多个服务2.演进式拆分不要一味跟风“大厂”拆分是为了解决复杂度,提高性能权衡拆分收益和成本3.以模型职责拆分二.数据库拆分后数据一致性的问题解决方案最终一致性来替代分布式事务实现方法可靠事件模式:不断重试补偿模式:补偿/ 回滚...原创 2021-04-02 23:34:49 · 626 阅读 · 0 评论 -
服务化的意义
一.服务化之前的痛点1.代码导出拷贝2.复杂度扩散3.jar包复用的耦合4.代码质量相互影响二.服务化之后的好处1.代码复用,减少拷贝2.专注性,收敛复杂度3.代码质量有保障4.数据库的解耦三.RPC定义:远程过程调用,他是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想。四.服务化的使用场景单体应用已经无法满足也无需求时业务和团队成员已经初具规模时服务化收益远大于服务化成本可预见未来,产品要加原创 2021-04-02 23:20:13 · 650 阅读 · 0 评论 -
SOA与微服务的区别
微服务实际上就是SOA的1.1版,整个过程就是量变引起质变的过程总的来说就是三点1.不在强调企业服务总线,把他弱化了或者说把它虚拟化了。2.强调每一个服务都有一个独立运行的空间,包括数据库,独立部署。3.微服务架构下通常采用REST的API调用,轻量化,拆分力度比较小。...原创 2021-04-02 22:53:17 · 177 阅读 · 0 评论 -
系统设计开发思考__2
一.背景描述随着软件系统的复杂度的上升,数据库的设计变得越来越难,对于小的梗死和团队来说,很难设计出一个性能上面很优良的数据库。同时,随着用户群体的增加,系统数据越来越多,查询也变得越来越慢。二.解决方案面对上面的问题有这样一些方案:1.读写分离,建立主从数据库,第一台数据库服务器,是对外提供增删改业务的生产服务器;第二台数据库服务器,主要进行读的操作。·这样做的话可以消除读写锁冲突从而提升数据库的性能。 但同时必须明白的是,读写分离还要做到数据同步,这样的架构对技术的实现是有一定的要求的,对于原创 2021-02-23 22:08:14 · 326 阅读 · 2 评论 -
系统设计开发思考__1
一.问题描述——接口联调过程中反复修改代码目前正在做一个项目,项目小组共计7人。设计Android,ios,web三个大平台,后端使用springcloud。由于后端的开发速度快于前端,所以后端大部分接口都已经写完了,前端还很大一截,等到后面开始联调的时候就出现了很多的问题。【后端接口与前端逻辑不对应】一是由于后端同学是对着线框图独立进行接口设计的,所以等联调的时候却发现,有很多接口都不能完全达到要求,有时缺少一些返回信息,有时缺少一些参数,有的甚至逻辑上不正确【界面的修改导致前后端代码的大幅修改原创 2021-02-23 16:34:04 · 514 阅读 · 0 评论