自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(92)
  • 收藏
  • 关注

原创 博客搬家

博客搬家了,关注我的朋友可以在www.cnkirito.moe看到我最新的文章,持续更新,届时CSDN将停止使用。

2017-08-24 21:45:26 1571 1

原创 一文详解 Nacos 高可用特性

前言服务注册发现是一个经久不衰的话题,Dubbo 早期开源时默认的注册中心 Zookeeper 最早进入人们的视线,并且在很长一段时间里,人们将注册中心和 Zookeeper 划上了等号,可能 Zookeeper 的设计者都没有想到这款产品对微服务领域造成了如此深厚的影响,直到 SpringCloud 开始流行,其自带的 Eureka 进入了人们的视野,人们这才意识到原来注册中心还可以有其他的选择。再到后来,热衷于开源的阿里把目光也聚焦在了注册中心这个领域,Nacos 横空出世。Kirito 在做注册

2021-01-07 12:18:30 1122 1

原创 华为云 TaurusDB 性能挑战赛赛题总结

1 前言回顾第一次参加性能挑战赛--第四届阿里中间件性能挑战赛,那时候真的是什么都不会,只有一腔热情,借着比赛学会了 Netty、学会了文件 IO 的最佳实践,到了这次华为云举办的 TaurusDB 性能挑战赛,已经是第三次参加比赛了,同时也是最“坎坷”的一次比赛。经过我和某位不愿意透露姓名的 96 年小迷妹的不懈努力,最终跑分排名为第 3 名。如果要挑选一个词来概括这次比赛的核心内容,那...

2019-09-25 21:01:30 1638

原创 使用 JMeter 进行 Dubbo 性能测试

1 前言说道性能测试工具,你会立刻联想到哪一个?ab(ApacheBench)、JMeter、LoadRunner、wrk…可以说市面上的压测工具实在是五花八门。那如果再问一句,对 Dubbo 进行性能压测,你会 pick 哪一个?可能大多数人就懵逼了。可以发现,大多数的压测工具对开放的协议支持地比较好,例如:HTTP 协议,但对于 Dubbo 框架的私有协议:dubbo,它们都显得力不从心了。...

2019-09-25 20:59:00 3540

原创 一文详细解读 Dubbo 中的 http 协议

一文详细解读 Dubbo 中的 http 协议

2019-07-17 21:14:38 10699 1

原创 一个DDD指导下的实体类设计案例

1 引子项目开发中的工具类代码总是随着项目发展逐渐变大,在公司诸多的公用代码中,笔者发现了一个简单的,也是经常被使用的类:BaseDomain,引起了我的思考。 在我们公司的开发习惯中,数据库实体类通常会继承一个叫做BaseDomain的类,这个类很简单,主要用来填充一些数据库实体公用的属性,它的设计如下:@MappedSuperclass <1>public class BaseDomain

2017-08-20 12:39:11 5844 2

原创 ubuntu环境下的elk安装指南(草稿)

修改ubuntu的软件源替换掉文件:/etc/apt/source.list中的内容,使用阿里源deb http://mirrors.aliyun.com/ubuntu/ vivid main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ vivid-security main restricted uni

2017-08-19 22:01:52 1002

原创 使用spring validation完成数据后端校验

前言数据的校验是交互式网站一个不可或缺的功能,前端的js校验可以涵盖大部分的校验职责,如用户名唯一性,生日格式,邮箱格式校验等等常用的校验。但是为了避免用户绕过浏览器,使用http工具直接向后端请求一些违法数据,服务端的数据校验也是必要的,可以防止脏数据落到数据库中,如果数据库中出现一个非法的邮箱格式,也会让运维人员头疼不已。我在之前保险产品研发过程中,系统对数据校验要求比较严格且追求可变性及效率,

2017-08-16 15:52:47 123512 19

原创 Re:从零开始的Spring Security Oauth2(三)

上一篇文章中我们介绍了获取token的流程,这一篇重点分析一下,携带token访问受限资源时,内部的工作流程。@EnableResourceServer与@EnableAuthorizationServer还记得我们在第一节中就介绍过了OAuth2的两个核心概念,资源服务器与身份认证服务器。我们对两个注解进行配置的同时,到底触发了内部的什么相关配置呢?上一篇文章重点介绍的其实是与身份认证相关的流程,

2017-08-10 14:22:40 68215 11

原创 Re:从零开始的Spring Security Oauth2(二)

本文开始从源码的层面,讲解一些Spring Security Oauth2的认证流程。本文较长,适合在空余时间段观看。且涉及了较多的源码,非关键性代码以…代替。获取token上一篇博客中我们尝试使用了password模式和client模式,有一个比较关键的endpoint:/oauth/token。从这个入口开始分析,spring security oauth2内部是如何生成token的。首先开启d

2017-08-09 14:58:59 38905 9

原创 Re:从零开始的Spring Security Oauth2(一)

前言今天来聊聊一个接口对接的场景,A厂家有一套HTTP接口需要提供给B厂家使用,由于是外网环境,所以需要有一套安全机制保障,这个时候oauth2就可以作为一个方案。关于oauth2,其实是一个规范,本文重点讲解spring对他进行的实现,如果你还不清楚授权服务器,资源服务器,认证授权等基础概念,可以移步理解OAuth 2.0 - 阮一峰,这是一篇对于oauth2很好的科普文章。 需要对spring

2017-08-08 15:16:36 86884 31

原创 对于Spring Cloud Feign入门示例的一点思考

Spring Cloud FeignSpring Cloud Feign是一套基于Netflix Feign实现的声明式服务调用客户端。它使得编写Web服务客户端变得更加简单。我们只需要通过创建接口并用注解来配置它既可完成对Web服务接口的绑定。它具备可插拔的注解支持,包括Feign注解、JAX-RS注解。它也支持可插拔的编码器和解码器。Spring Cloud Feign还扩展了对Spring M

2017-08-03 17:40:38 11298

原创 Re:从零开始的领域驱动设计

博客搬家了,最新文章可以在新博客中查看:www.cnkirito.moe,届时CSDN将不再继续更新。

2017-07-28 13:15:59 10142 6

原创 spring中的懒加载与事务--排坑记录

案例描述本文主要描述了开发中常见的几个与spring懒加载和事务相关的案例,主要描述常见的使用场景,以及如何规避他们,给出具体的代码。 1. 在新的线程中,访问某个持久化对象的懒加载属性。 2. 在quartz定时任务中,访问某个持久化对象的懒加载属性。 3. 在dubbo,motan一类rpc框架中,远程调用时服务端session关闭的问题。上面三个案例,其实核心都是一个问题,就是牵扯到sp

2017-06-23 13:37:58 9023

原创 使用zipkin做分布式链路监控

介绍Zipkin 为一个分布式的调用链跟踪系统( distributed tracing system ) ,设计来源于 google dapper paper官方网站 http://zipkin.io/快速入门安装方式一:使用zipkin官方提供的jar启动服务 zipkin官方提供了一个现成的使用springboot写的zipkin服务端,客户端的链路监控报告可以通过多种方式(下文会讲

2017-06-12 02:51:19 31630

原创 开发规范拟定--初版

介绍好的开发规范不仅能够使得项目变得易维护,易升级。一些通用的规范可以参考《阿里巴巴java开发手册》 本文档主要针对我们现在使用的框架提出一些开发规范,欢迎补充包结构规范以短信邮件项目(mail-sms)为例,介绍包结构命名规范。 短信邮件项目主要包含短信,邮件两个子模块【强制】 包分层–通用 一般每个项目都包含下面六个模块,还有一些各自扩展的模块 1. api #a

2017-06-11 22:08:57 1684

原创 ssh转发--本地端口映射

项目开发中经常遇到一个比较尴尬的问题:在接口对接中,因为安全问题,只有测试环境(通常为linux环境)才能调通第三方的接口。 于是只能够在本地开发时写好代码,打包后,通过ssh/sftp等协议上传到测试环境才能够访问对方的接口。造成这个尴尬现状的本质原因是,本地开发环境无法直接访问对接放的服务器,只能借助测试环境来访问。一个更好的方案是,讲测试环境做成一个ssh转发机,这样我们在本地开发时就可

2017-05-25 16:37:12 2355

原创 JAVA程序员分级,你属于哪一种?

初级—初掌握java基础,熟悉常用类库。理解java web中的servlet,jsp,并了解常用的框架对java web的封装原理,能够借助框架完成增删改查功能。理解数据库在web开发中的地位。初级—中理解java中较为高级的特性,如反射,动态代理,JVM,内存模型,多线程等等。熟练使用框架,对框架中遇到的bug,能够借助日志和搜索引擎分析出问题的原因。在团队中,能够独立完成普通后台业务功能的开

2017-05-02 19:21:43 10958 4

原创 保险知识汇总

什么是前置机?有什么用处?前置机这个概念一般在银行、券商、电信运营商那里用的比较多。这些地方都有很多后台核心处理系统,对外提供各种接口服务。如果我有某种业务接口需要跟他们的后台系统打交道,要从我们的外部网络访问他们的后台系统,这些单位是绝对不允许的。这个时候,他们要求你或者他们自己开发一个软件,运行在他们的内网,然后通过专线或硬件隔离技术将运行这个软件的计算机连接到你的外网系统上,那么运行这个软件

2017-05-01 17:21:01 637

翻译 drools用户指南----Cross Products

Cross Products之前提到“Cross Products”一词,其实就是一个join操作(译者注:可以理解为笛卡尔积)。想象一下,火灾报警示例的数据与以下规则结合使用,其中没有字段约束:rule "Show Sprinklers" when $room : Room() $sprinkler : Sprinkler()then System.out.println

2017-04-11 13:44:29 625

翻译 drools用户指南----Methods vs Rules

Methods vs Rules人们经常混淆方法和规则,初学者经常会问:“我如何理解规则的含义?“ 在最后一节之后,你会对规则的使用得心应手,答案也变得显而易见的,但在这之前,先让我们总结一下方法判断和规则的差异。public void helloWorld(Person person) { if ( person.getName().equals( "Chuck" ) ) {

2017-04-11 13:28:30 610

翻译 drools用户指南----stateless session(无状态会话)的使用

stateless session 无状态会话Drools规则引擎中有如此多的用例和诸多功能,它变得令人难以置信。不过不用担心,复杂性是分层的,你可以用简单的用例来逐步了解drools。无状态会话,不使用推理,形成最简单的用例。无状态会话可以被称为函数传递一些数据,然后再接收一些结果。无状态会话的一些常见用例有以下但不限于:验证 这个人有资格获得抵押吗?计算 计算抵押保费。路由和过滤 将

2017-04-11 12:51:37 5459 4

翻译 drools用户指南----stateful session(有状态会话)的使用

stateful session 有状态会话有状态会话长期存在,并允许随着时间的推移进行迭代更改。 有状态会话的一些常见用例包括但不限于: 1. 监测 半自动买入股票市场监控与分析。 2. 诊断 故障查找,医疗诊断 3. 物流 包裹跟踪和送货配置 4. 合规 验证市场交易的合法性。与无状态会话相反,必须先调用dispose()方法,以确保没有内存泄漏,因为KieBase包含创建状态知

2017-04-11 12:37:11 4554

原创 Zuul性能测试

环境准备采用三台阿里云服务器作为测试 10.19.52.8 部署网关应用-gateway 10.19.52.9, 10.19.52.10 部署用于测试的业务系统 压测工具准备选用ab作为压力测试的工具,为了方便起见,直接将ab工具安装在10.19.52.8这台机 测试命令如下:ab -n 10000 -c 100 http://10.19.52.8:8080/hello/testOK?acc

2017-04-08 15:27:10 24126 10

原创 springcloud----Zuul动态路由

前言Zuul 是Netflix 提供的一个开源组件,致力于在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。也有很多公司使用它来作为网关的重要组成部分,碰巧今年公司的架构组决定自研一个网关产品,集动态路由,动态权限,限流配额等功能为一体,为其他部门的项目提供统一的外网调用管理,最终形成产品(这方面阿里其实已经有成熟的网关产品了,但是不太适用于个性化的配置,也没有集成权限和限流降级)。不过这里

2017-04-01 14:11:25 65398 40

原创 spring-security核心类解析--整理中....

前言这一篇文章可能会陆续更新很久,主要是不一定有空,有精力整理那么多。不太习惯连载教程,网上其他的博客也很多了。可不太令我满意的是,大多数spring-security的配置都是停留在xml配置,springboot如何整合spring-security讲解的不多。所以本篇博客的定位是基于javaConfig,结合springboot的一些自动配置,详解一些spring-security的核心类和接

2017-03-31 12:21:34 4414 2

原创 分布式限流

最近正在为本科论文的事感到心烦,一方面是在调研期间,发现大部分的本科论文都是以MVC为架构,如果是使用了java作为开发语言则又是千篇一律的在使用SSH,二方面是自己想就微服务,分布式方面写一篇论文,讲述一些技术点的实现,和一些中间件的使用,看到如八股文般的模板格式..不免让人望文生怯。退一步,投入模板化ssh-web项目的怀抱,落入俗套,可以省去自己不少时间,因为在外实习,琐事并不少;进一步,需要

2017-03-18 13:52:28 5320 2

转载 DevOps的八荣八耻

被群里的好友安利了一发,周日跑去参加了一个技术讲座《云上开发与运维最佳实践》,听完两个人的演讲之后才发现主题竟然是讲运维,好在有一个人干货不少,在此记录下所得。简单追溯了一下这个DevOps才发现并不是一个新的概念,早在2010年就能看到有相关的人在追捧这个概念了。DevOps 就是开发(Development)和运维(Operations)这两个领域的合并。(如果没错的话,DevOps还包括

2017-03-14 00:43:58 2234

原创 java并发实践--ConcurrentHashMap与CAS

最近在做接口限流时涉及到了一个有意思问题,牵扯出了关于concurrentHashMap的一些用法,以及CAS的一些概念。限流算法很多,我主要就以最简单的计数器法来做引。先抽象化一下需求:统计每个接口访问的次数。一个接口对应一个url,也就是一个字符串,每调用一次对其进行加一处理。可能出现的问题主要有三个:多线程访问,需要选择合适的并发容器分布式下多个实例统计接口流量需要共享内存流量统计应该尽

2017-03-12 00:02:54 8101 9

原创 volatile疑问记录

对java中volatile关键字的描述,主要是可见性和有序性两方面。一个很广泛的应用就是使得多个线程对共享资源的改动变得互相可见,如下:public class TestVolatile extends Thread { /*A*/// public volatile boolean runFlag = true; public boolean runFlag

2017-03-07 19:26:20 628

原创 JAVA面试题汇总

陆续更新…JAVA基础JAVA中的几种基本数据类型是什么,各自占用多少字节。 String类能被继承吗,为什么。 String,Stringbuffer,StringBuilder的区别。 ArrayList和LinkedList有什么区别。 讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,当new的时候,他们的执行顺序。 用过哪些Map类,都有什么区

2017-03-01 17:39:43 1718

转载 浅析java内存模型(JMM)

并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。在消息传递的并发模型里,线程之间没有公共状态,线程之

2017-02-24 13:07:17 672

原创 浅析项目中的并发

前言控制并发的方法很多,我之前的两篇博客都有过介绍,从最基础的synchronized,juc中的lock,到数据库的行级锁,乐观锁,悲观锁,再到中间件级别的redis,zookeeper分布式锁。今天主要想讲的主题是“根据并发出现的具体业务场景,使用合理的控制并发手段”。业务场景修改个人信息修改商品信息扣除账户余额,扣减库存业务场景分析第一个场景,互联网如此众多的用户修改个人信息,这算不算

2017-02-22 11:31:13 5752 4

原创 IT互联网行业应届生求职杂谈

前言回首大三下的暑假,那时候刚开始出来找实习,如今已经即将进入大四下学期,恍惚间,已经过去了8,9个月。写这篇文章的初衷就是想结合自己的经验给即将要出来找工作的应届生一些建议,想当初自己刚出来时,也得到过热心学长的教导,权当一种传递吧。个人经历坐标上海,目前在一家IT软件公司从事电子商务,金融保险类的网站开发,主要使用的语言是JAVA。从任职的3-4个月起,开始担任项目小组长协同项目经理进行开发。期

2017-02-20 00:57:13 2740 3

转载 《微服务》九大特性笔记

服务组件化组件,是一个可以独立更换和升级的单元。就像PC中的CPU、内存、显卡、硬盘一样,独立且可以更换升级而不影响其他单元。在“微服务”架构中,需要我们对服务进行组件化分解。服务,是一种进程外的组件,它通过http等通信协议进行协作,而不是传统组件以嵌入的方式协同工作。服务都独立开发、部署,可以有效的避免一个服务的修改引起整个系统的重新部署。打一个不恰当的比喻,如果我们的PC组件以服务的方式构建,

2017-02-19 01:05:46 800

原创 ThreadLocal在项目中的最佳实践

simpleDateFormat众所周知是线程不安全的,多线程中如何保证线程安全又同时兼顾性能问题呢?那就是使用ThreadLocal维护simpleDateFormatpublic class SimpleDateFormatThreadTest { static volatile AtomicInteger n = new AtomicInteger(-1); static Thre

2017-02-14 17:38:19 2938 3

原创 spring中的@Transactional注解使用注意点

@Transactional可以说是spring中最常用的注解之一了,通常情况下我们在需要对一个service方法添加事务时,加上这个注解,如果发生unchecked exception,就会发生rollback,最典型的例子如下。@Servicepublic class StudentService { @Autowired StudentDao studentDao; @

2017-02-14 16:51:50 17278 2

原创 简单了解RPC实现原理

时下很多企业应用更新换代到分布式,一篇文章了解什么是RPC。 原作者梁飞,在此记录下他非常简洁的rpc实现思路。/* * Copyright 2011 Alibaba.com All right reserved. This software is the * confidential and proprietary information of Alibaba.com ("Confident

2017-02-10 15:11:02 2358

原创 使用zkclient操作zookeeper的学习过程记录

前言最近开发的分布式(使用motan)项目中使用zookeeper作为服务中心来提供注册服务(@MotanService)和发现服务(@MotanRefer),虽然motan这个rpc框架对服务模块进行了很好的封装,但是以防以后会出现定制化的需求,以及对服务更好的监控,所以有必要了解一下zookeeper的基本知识和使用方法。关于zookeeper的知识点,网上很多的博客都已经介绍的很详尽了,我写这

2017-02-04 02:13:20 4356

原创 使用JPA实现乐观锁

乐观锁的概念就不再赘述了,不了解的朋友请自行百度谷歌之,今天主要说的是在项目中如何使用乐观锁,做成一个小demo。持久层使用jpa时,默认提供了一个注解@Version先看看源码怎么描述这个注解的/** * Specifies the version field or property of an entity class that * serves as its optimistic lock

2017-01-30 21:12:17 12520

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除