分布式技术
spider-node
这个作者很懒,什么都没留下…
展开
-
流程编排-java
流程编排,中台,领域模型原创 2023-12-05 22:46:55 · 224 阅读 · 0 评论 -
业务中台的发展
业务功能的研发,与中台的研发,是两个维度的研发团队,从一些层面来说,他们关注的点不一样,中台想要功能,能通用,能给更多需要该功能的团队赋能,业务功能的研发,只关注,我需要交付一个业务需求,从这两个角度来说,他们本身就冲突,导致,中台很难被建设起来。阿里在业务创新上受到了一定的限制。3.1: 每个域功能,只关注自身的出参,入参,在不同的域业务功能中,通过参数映射的方式,spider-node去构造入参。1.2:域的业务功能,通过编排域功能,使用域对象的方式来快速搭建域 (细节查看spider-node)原创 2023-11-16 00:32:26 · 305 阅读 · 0 评论 -
基于流程的事件驱动编程
听到这个词语,大家可能有点陌生而熟悉,Reactive Streams这个基于事件驱动编程。但是呢,这次带来的,跟他完全不是同一个场景下的使用产品,首先,先介绍下,该架构上面的时序图是,架构中对事件的调度与角色之间的交互(1)上面的图只是架构内部的东西,该架构的出现,让我们在开发业务的时候,只用关心,自己的事件业务代码。(2)以上架构带来的优势,支持事件的插拔,在一个流程中可以支持现有事件功能,无修改代码的接入。在解决线上问题,甚至开发过程中,非常直接明了的去排查事件问题。(3)使用该架构,可以原创 2021-09-01 00:11:18 · 496 阅读 · 0 评论 -
基于流程事件驱动编程
听到这个词语,大家可能有点陌生而熟悉,Reactive Streams这个基于事件驱动编程。 但是呢,这次带来的,跟他完全不是同一个场景下的使用产品,首先,先介绍下,该架构![在这里插入图片描述](https://img-blog.csdnimg.cn/f751566eb5ed42d9b386830a5afa4f2e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5LiA5Y-.原创 2021-09-01 00:08:06 · 225 阅读 · 0 评论 -
支付网关-vertx
1:支付网关的技术栈使用(vertx,hazelcast,mysql)2:网关中设计的角色有 getway,flow.event,channel.paramPool3:介绍下,以上的角色3.1:getway,他是计费系统的入口,包含(发起支付,退款,变更产品,计费策略,等能力。)3.2:flow 他是整个计费系统中流程节点的控制中心,管理整个计费相关的生命周期 ,产品接入计费(订单的创建,对第三方的支付发起,订单状态的扭转,触发调用该流程中需要构建的产品。管理,整个产品的,创建,初始化,销毁)。当原创 2021-08-23 22:41:24 · 748 阅读 · 0 评论 -
java高性能技术架构选型。
1:这样的标题,目前来说百见不厌,但是,所看到的都是,所谓,spring cloud,或者spring cloud albaba等的一套解决方案。但是,,这些能帮助你实现高性能的架构点是怎么样的呢。2:首先在我们的角度上来说,一个高性能的服务架构应该满足几个点。2.1:从吞吐量来讲,跟硬件资源,跟你应用中处理请求的能力有关系。比如我的应用内部一秒可以处理100个任务请求(完整的生命周期,或者不完整)2.2:从并发高的角度上来说,我的应用一秒能接纳并处理的请求量。2.3:高可用,多个应用实例的情况下,原创 2021-06-24 13:31:57 · 675 阅读 · 1 评论 -
基于处理百万吞吐量的资源控制系统。
1:这样的文章,百度已经烂大街了,,但是这个,有不一样的地方,他倾向是一个软件,提供sdk包进行访问。2:软件图-描述秒杀系统3:该系统的带来哪些应用场景3.1:需要控制资源数的数据,比如秒杀场景,控制不超卖。4:该系统优势4.1:响应速度快,多节点平行提供服务,利用多节点的优势。4.2:吞吐量高,一个4核心8G-3台节点的集群,上百万的吞吐量可以保证。4.3:数据可靠性高,节点挂了,不影响系统继续对外提供服务,数据不丢失。4.4:整个系统全程无锁,其实多线程竞争资源的情况下,目前技术是原创 2021-02-25 11:37:10 · 1153 阅读 · 5 评论 -
高并发抢购系统
1:看到这个标题,应该给人感觉,是烂大街,,,虽然百度,一大堆。但是我想要说的,这个真的不一样。跟,你所百度的结果完全不一样。2:说下,这个系统中用到的技术,vertx,disruptor,hazelcast(他很重要,可以利用他来做高可用)–主要是这三个点。3:说下,用这几个技术如何实现的,无锁并发抢购系统。(其实无锁呢,,在业界在多线程的情况,,不可能实现完全无锁,,),在系统中无锁的实现呢,其实每个商品都是单线程执行的(大家会问,,这个有什么新奇的,单线程当然不用锁),其实这个里面实现,跟大家想原创 2021-01-11 23:48:11 · 1449 阅读 · 6 评论 -
sharding-proxy
对使用该组件的一个感受描述。1:sharding-proxy的使用方式大致是,你安装sharding-proxy提供的执行文件,然后修改里面的分库分表,db等配置,然后你就像连接db一样的协议去连接 sharding-proxy。2:sharding-ui非常不错,,他能直接的管理sharding-proxy,在上面动态修改配置等信息。达到自己本次一些升级的效果。3:1-2都是说的使用sharding体系的sharding-proxy与sharding-ui比较好的地方,接下来说一些,不好的地方。原创 2020-12-09 13:31:14 · 3193 阅读 · 0 评论 -
vertx异步驱动vertx-mysql-postgresql-client
文章主要介绍vertx中的mysql异步client。1:解释mysql异步驱动,这儿举一个场景,当客户端发起一个请求到后端来,后端通过处理需要操作db。之前的阻塞式驱动,需要后端处理请求的线程阻塞在这儿,等待,与db的io操作返回相应的数据,当使用异步驱动后,处理业务请求的线程,只需要把要做的事情交给异步驱动,他就不管了,去做其他事情,不阻塞这个业务线程。2:解释下,阻塞与不阻塞之间的区别,2.1:在java的线程模型里面,用户态线程与内核态线程是1:1的关系,当用户态线程阻塞,内核态线程也会阻塞原创 2020-12-09 13:17:48 · 1141 阅读 · 0 评论 -
vertx系列
vertx系列第一节1:谈下博主如何解除到vertx,目前大多公司用到的都是spring体系,但是博主在工作中,,感觉spring体系特别笨重,无论是国内,出的spring alibaba等。不可否认,他们对java生态的分布式,做了很多。但是用起来还是特别重,性能比较低,有人说,用java就不要谈性能。java的性能不如go,很重要在于他的线程模型,后来,博主感觉,想自己去实现一套异步的分布式架构,核心是利用线程池,来实阻塞代码的异步处理,比如代码57行去查询数据库,那么原来的执行体系,该线程会阻塞,无原创 2020-10-27 16:15:12 · 1598 阅读 · 2 评论 -
openshift+vert.x的学习过程
1:博主通过自己想实现异步架构的想法了解到了vert.x2:但是想把vert.x部署到k8s中,遇到了一个问题是,如何能实现verticle之间使用server-proxy在这个过程中我认识到了openshift.1.1:关于vert.x的详细信息可以关注下vert.x的官方文档,因为文档相对比较新。1.2:vert.x天生分布式,我想要玩的就是,在vert.x中去部署verticle。每个verticle中使用servce-proxy通信。分布式锁,分布式map等使用vert.x这边hazelca原创 2020-09-15 11:13:45 · 143 阅读 · 0 评论 -
高性能微服务架构技术选型
前言,如何了解到其中相关技术。博主在看到vert.x之前,感觉spring体系的内容非常笨重,性能也比较低,就算spring后来出了webflux后来想到提出一个异步的架构想法。让第三方组件变成结果回来,再执行,这样就不会有线程阻塞,核心还是基于线程池来实现,因为线程池的线程复用,其实就是不停的去到task去执行。在寻找异步mysql驱动的过程中,发现了vert.x。详细看了vert.x之后,就感觉自己太异想天开,虽然以上方式可以实现,但是,vert.x已经做的很完善了,比如实现轻量级的协程,类似go。然后原创 2020-08-31 14:28:54 · 1126 阅读 · 0 评论 -
异步微服务框架
这个框架主要有4个组成部分1:fastmvc关于 fastmvc的大体在微服务中的作用,1.1 底层实现主要基于netty实现,主要负责接收与维护客户端的链接。2:AsynRpc2.1关于AsynRpc的作用,主要用于消化,fastmvc这边客户端发送的请求,交与AsynService执行具体的逻辑。3:returnPool3.1returnPool这个属于一个存放逻辑执行结果的地方...原创 2020-04-01 14:05:23 · 518 阅读 · 2 评论 -
web架构性能优化假象
对于web架构优化我们的最终方向有两点1:提高系统的吞吐量2:提高系统的处理逻辑能力。大体的流程图如下解释下这个张流程图1:netty是维护客户端连接负责把请求的内容拿到(是不能阻塞的)2:disouptor是用来堆放netty放过来的请求与把任务向下放(它只要把请求给到逻辑层处理),可以理解成任务。3:前面两部都是去堆放大量请求与任务,而第三步的逻辑处理层处理正真的逻辑,第一步到第...原创 2020-03-26 15:23:40 · 194 阅读 · 0 评论 -
使用控制层使用webflux系统调用使用fegin调用与rpc的性能假想
1:底层技术对比1.1webflux底层采用netty实现,1.2rpc的底层采用netty实现1.3netty的高性能体现在他的线程模型,零拷贝,高性能的序列化。1.4个人认为,在性能上,如果应用端采用webflux的情况下,服务直接调用采用fegin与采用rpc应该是差不多的。...原创 2020-03-06 11:47:02 · 921 阅读 · 0 评论 -
mybatis优化假想
1:我想说下mybatis为什么会要优化,我们优化的点是什么。1.1mybatis是我们操作数据库的一个框架,我们在业务中很多的加锁,无非也是想控制我们的数据库资源,并发量大了会带来系统的资源压力,数据库的压力。我们想要的优化点是高性能的去实现分段的锁,这个分段锁,分两种情况,第一种是为数据库减压(数据库减压提现在并发高的情况下把n次操作数据变成1次或者多次),第二种是为不同类数据的锁控制,关于...原创 2020-02-26 17:22:39 · 346 阅读 · 0 评论 -
基于redis实现类似超卖与秒杀场景
1:java中自带的锁有系统所sychronized与应用层面的锁lock,基于lock就介绍ReentrantLock。基于这个层面的lock核心就是AQS,lock的底层原理实现还是依赖CAS,在jdk早期版本中,lock的性能是要优于sychronized的。主要是因为之前的版本sychronized一直是一把重量级锁需要去调用的操作系统。2:而优化后的sychronized,在偏向锁...原创 2020-02-10 17:54:18 · 1338 阅读 · 0 评论 -
sofaboot多模块使用
博主上一篇文章介绍了sofa。本张介绍sofa多模块的使用。1:模块的拆分这个层面需要使用者根据业务来定,SOFABoot 模块一般用于封装对外发布服务接口的具体实现。所以controller层建议放在root启动模块中。2: 模块之间的关系2.1:模块与模块之间可以发布接口,通过jvm的方式调用其他模块的接口。sofa提供了父模块的概念,用于打通两个模块的上下文,就可以使用@Autow...原创 2019-09-24 12:44:07 · 1492 阅读 · 0 评论 -
sofa多模块使基础使用+案例+详细讲解
1:关于sofa很多朋友都陌生,这个是支付宝开源的框架。大家很想知道,sofa框架的出现解决了什么问题,个人理解是,从三个层面来说。1:他提供的模块化,解耦了项目各个模块。其实就是把每个模块独立化上下文,每个模块之间的开发互不影响。2:sofa提供的组件,sofaRpc,目前系统通信最好的就是,使用rpc的调用,因为他的效率会比网络请求更高。3:sofa提供的组件,SOFALookout,该...原创 2019-09-23 09:10:39 · 2560 阅读 · 0 评论 -
分布式中间件sharding的使用心得与配置
背景:目前分库分表是比较 热门的话题,因为考虑使用分布式架构,一般属于访问量,数据量比较大系统,在这样的系统中不可避免,为了给系统的性能提高与高可用采用分库分表的方式去解决数据层面的压力。博主本次接受sharding的基础使用。1:介绍下sharding对分库分表的解决方案。shardingjdbc这个组件,主要是基于代码的层面来控制分库分表。他自己内部去实现sql改写,路由,合并查询结果,重...原创 2019-09-09 15:09:27 · 759 阅读 · 0 评论 -
sofa框架个人见解
1:博主最近接触了支付宝开源的sofa框架,支付宝开源的项目地址在 在接触当中,使用到我个人的项目中。本人项目中使用到sofa多模块的方式,sofa的多模块,与普通多模块最大的区别是,sofa多模块住提现每个每个模块都是独立的spring上下文,我个人比较喜欢这样的方式,因为这样在多个团队维护项目过程中,不必关系其他团队的修改代码,引入其他jar包导致我的模块出现问题。A模块中想要调用B模块内容,...原创 2019-09-04 00:13:00 · 3677 阅读 · 0 评论 -
基于spring cloud实现分布式任务系统与动态属性
在我们分布式架构中,分布式任务,与drm是辅助业务系统的中间件必要存在的一部分首先介绍一下分布式任务的背景与出现解决的问题。1:背景,分布式架构中,你的业务系统部署了多台,但是,大多业务系统中,都存在定时任务,如果在业务系统用定时任务来实现的话,那么一个任务会再多台服务器上执行,这不是我们想要的结果,当然你可以选择使用redis的方式获取任务锁来执行任务,这样是可以达到效果的,但是这样的方式非...原创 2019-09-03 09:42:06 · 421 阅读 · 2 评论