- 博客(20)
- 资源 (2)
- 收藏
- 关注
原创 java-object-diff对象对比
目录MetaDiffMetaDiffmetaDiff 可以对比两个java对象(nativeObject),然后生成一个MetaObject(包含了对象各个字段间的差异信息),同时可以将这个对象转为nativeObject。https://gitee.com/jsenht/meta-diff...
2021-05-01 01:28:25 1603 1
原创 关于 java CompletableFuture
在并发编程中有相当一大块只是为了使用并发技术加快程序的运行速度,这部分往往在多个线程之间没有太大关联,因此也谈不上有同步问题,在jdk提供高级并发编程工具,尤其CompletableFuture的出现,虽然在底层异步的时候默认使用了forkjoin线程池,但CompletableFuture更关注的是在屏蔽多线程、线程池的实现细节的情况下,充分利用cpu并发并行,异步地加快代码的执行效率。...
2019-04-25 11:34:07 211
原创 nacos获取配置文件的大致过程
一、spring 体系相关类(主要借助spring的api,自动注入配置信息)com.alibaba.nacos.spring.core.env.AbstractNacosPropertySourceBuildercom.alibaba.nacos.spring.core.env.NacosPropertySourcePostProcessorcom.alibaba.nacos.spri...
2019-01-25 17:10:52 12977 2
原创 nacos调试
# 1、获取源码git clone https://github.com/alibaba/nacos.git# 2、打开nacos项目cd nacosidea .# 3、找到nacos-console模块,nacos的启动类com.alibaba.nacos.Nacos# 4、配置nacos启动参数 nacos.standalone=true保证已单机模式启动下面...
2019-01-23 15:19:12 3131
原创 Gend(Go版Vesta) id发生器
主页:https://jsen-joker.github.io/gend 借鉴vesta(java)的设计思路,这里实现了一个go版本的ID生成器,可以保障无论是在嵌入式版本、rpc版本还是rest风格,所有模块的id都保证唯一性。Gend使用GO进行开发,但这里实现了一个java调用的jar,也可以使用jna来实现一个更易用的、适合spring boot的jar包;由于核心调用是使用...
2018-12-27 15:31:48 669
原创 vue 入门
写在前面:尽量使用es6的特性,使用eslint检查语法规范,熟悉Promise的使用。1、Vue简介包括react、vue、ng核心的数据驱动模式是MVVM,通过修改Model的数据来实现View层数据的修改展示。一个典型的Vue文件(hello.vue)<template> // View <div>hello</div&g...
2018-12-03 16:41:13 171
原创 Data Center
源码地址(未完善):https://github.com/jsen-joker/DC场景分析: 现有多个业务系统,由于前期的规划和对业务的把握不足,导致出现多个类似的系统,现在需要在各个业务系统之间共享数据,由于前期业务复杂,耦合度高,很难一步到位,将系统微服务化,因此需要一个类似数据中心的系统来在各个业务系统(client)之间同步数据。 这里要完成的是对于client的CU...
2018-11-30 18:42:25 559
原创 Jenkins自动化部署
这里基于jenkins、gitee、ansible、bsdiff,mvn,springboot jar,md5sum讲解大致流程是jenkins生成jar包,ansible进行二进制增量传输,最终检查checksum、部署、重启项目准备:所有centos服务器创建jenkins用户:useradd -G jenkins jenkins1、yum Jenkins安装、配置、启动...
2018-11-08 17:23:04 761
原创 工具集小记
ELK(Elasticsearch、Logstash、Kibana)Elasticsearch分布式搜索、Logstash日志过滤Kibana ELK图形化日志分析界面消息队列 MQ,消息队列本质上拥有一定的缓存,屏蔽环境差异,中心化管理的功能,因此redis在一定程度上也有MQ的特质https://blog.csdn.net/vtopqx/article/details/76...
2018-11-01 10:29:21 128
原创 Dubbo
这个是Dubbo的源码目录,dubbo源码非常清晰,每个子项目对应一个模块,在子项目下会有不同模块来对不同的技术作支撑。dubbo通过ExtensionLoader加载SPI,实现了对技术选择插件化、动态加载、懒加载、单利加载、动态注入,AOP,ExtensionLoader创建时会创建ExtensionFactory(同样用ExtensionLoader实例化)类,用于注入Extension...
2018-09-17 18:01:01 169
原创 RPC 整理
RPC-Reomto proceducer call 远程过程调用 基于 java一下主要基于自己的理解、这里我将http调用也视为一种rpc调用。 远程 这里远程应该相对于进程而言,甚至可能是线程。过程调用 简单地说就是执行代码(服务、业务逻辑)。 远程协议(姑且这么叫) 既然要远程,势必设计两端之间的通讯,在最通用化的假设下,该协议一般就是网络协议。所以相关的远程协议一...
2018-09-15 12:14:53 461
原创 jdk8函数式编程Predicate Supplier Consumer Function
以上四个都是函数式接口,对于这些接口,重要的是明白其存在的意义jdk推出这些函数式接口的目的是为了进行函数式编程,由于lambda表达式的应用,我们在实际编程中可能感受不到这些接口的使用,但其实在链式编程的时候,我们大量应用了这些接口。例如stream中的一个map方法,我们自然而然的直到这是将原值转换为另一个值,而我们在写lambda表达式的时候,其可行就是因为函数式接口Function的存在,...
2018-06-24 11:42:12 342
原创 再谈设计模式
关于对象创建:单利模式 意图:嗯比如管理类什么的抽象工厂模式 意图:一个复杂对象由很多部分组成,而且组件间还有一定的组合关系,可以使用抽象工厂模式,也就是说,一个具体工厂创建出来的组件一定符合某个具体对象的要求build模式 意图:一个对象可能由很多复杂对象构成,创建起来很复杂,可以在一个builder中进行条件化创建,和抽象工厂模式的一个重要区别是,抽象工厂模式关注创建零部件,而build模式更...
2018-06-23 18:28:28 162
原创 关于Docker的概念
Docker是一个服务容器,所谓容器就是像你的原先部署tomcat时要运行在linux上,linux也就是一个类似的容器。我们可以把自已的服务放到docker中运行,docker会帮我们做底层对操作系统库等的调用。典型的我们可以在docker容器中运行一个mysql的服务。从宏观意义上看docker容器:image镜像:镜像应该和容器是紧密相关的,这里借助oop的概念,镜像和container的关...
2018-05-30 17:15:03 257
原创 Java ClassLaoder小解
java中的ClassLoader:jdk中默认的classloader:程序打印一下可以看到sun.misc.Launcher$AppClassLoadersun.misc.Launcher$ExtClassLoaderAppClassLoader会加载jdk的核心库,而ExtClassLoader顾名思义会加载ext的lib,如${JAVA_HOME}/lib/ext对双亲委派模式的理解:所谓...
2018-05-29 10:28:58 318
原创 基于Redis的任务调度
基于redis的动态任务调度平台,支持动态groovy任务和静态任务(任务要继承IJob接口)任务调度平台:这里假设任务失败有两种类型:一、worker节点与master节点失去联系,认为任务失败二、worker节点执行任务出错,这里认为该出错一定可以被worker节点捕获,worker节点会停止任务规范:worker:启动一个任务: /job/start/taskID 首先获取执行任务的锁,然后...
2018-05-26 18:53:01 2396 1
原创 Joker 微服务 容器
Joker项目地址# Joker一个快速开发调试微服务的服务容器## 一、Joker是什么(理念)joker 是一个轻量级的微服务容器,专为微服务开发而生。作为一个容器,他与tomcat,docker等有什么不同。首先joker的宗旨是快速实现想要的业务模块,快速编程、快速部署。其次相较于tomcat,tomcat中发布的单位是一个个独立的网站,相互之间想要有关量,只能通过h...
2018-05-19 13:51:04 3817
原创 Travis Node pm2
1: github 创建项目本地git init 项目 git remote add git@github.com:username/project.git2:注册Travis并添加项目3:本地项目创建Travis配置文件(.travis.yml)language: node_jsnode_js: - '7'script: - npm run testbe
2017-05-03 19:45:11 367
原创 ACM:ZOJ Problem Set - 3903
// @Author Jsen// @Version V1.0.0// @Date 2017/05/02// ZOJ Problem Set - 3903// Ant// http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3903// 学习取模,逆元// 学习 typedef 学习 long long//
2017-05-02 16:40:36 299
Joker微服务1.0.3-SNAPSHOT
2018-05-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人