自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

irich的博客

专注技术开发

  • 博客(86)
  • 收藏
  • 关注

原创 ehcache使用

依赖 <dependencies> <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> </dependency> <dependency> <groupId>org.sp.

2020-12-30 17:05:02 284

原创 go并发编程

目录Go并发编程之美(一)、go与java并发编程对比go并发编程之美(二)、go内存模型Go并发编程之美(三)、互斥锁Go并发编程之美(四)、条件变量Go并发编程之美(五)、CAS操作...

2019-03-06 09:19:23 6975

原创 golang基础教程

目录golang基础教程(一)、环境搭建golang基础教程(二)、开发规范及APIgolang基础教程(三)、变量与数据类型概述golang基础教程(四)、基本数据类型golang基础教程(五)、基本数据类型的转换golang基础教程(六)、指针golang基础教程(七)、数组golang基础教程(八)、切片未完待续…...

2019-02-14 15:31:00 32328 5

原创 使用FutureTask解决并发重复计算问题,提升执行效率

文章目录业务场景用例图流程图类图具体代码实现接口具体业务代码业务场景现有一个消耗资源比较大的计算业务需要优化,如果是同一个计算业务,需要保证只被计算一次,后面再有此计算,则直接从缓存中读取结果用例图流程图类图具体代码实现接口这里主要涉及的两个接口:计算接口:执行的计算逻辑缓存接口:执行的是缓存相关操作计算接口public interface Computer { Integer compute(String id);}缓存接口public interfa

2020-05-17 00:30:05 1084

原创 Docker容器创建mysql实列

拉取mysql镜像docker pull mysql:5.7创建用于挂载的目录mkdir -p /data/mysql/var /data/mysql/conf /data/mysql/data使用镜像创建容器#将容器中MySQL的3306端口映射到本地的3307端口,并设置登录密码为:123456docker run --name mysql5.7 --restart=alway...

2019-10-14 17:35:22 511

原创 使用IDEA等IDE在Windows环境进行shell编写之后,在Linux环境执行报错的解决办法

使用IDEA等IDE在Windows环境进行shell编写之后,在Linux环境执行通常会报错/bin/sh^M: bad interpreter: No such file or directory常用解决办法有两种1.每行都使用分号结尾;2.更改换行符在idea中打开报错文件例如 startup.sh通常的换行符,及默认编辑器换行符:CRLF: CRLF是Carriage-...

2019-07-19 14:21:57 1370

转载 UML建模之时序图(重点讲矩形长条的连续与间断)

时序图(Sequence Diagram ,是交互图的一种,另一种交互图是协作图,这两种图在Rose中可以相互转化)用来描述按时间顺序排列的对象之间的交互,它强调对象之间消息传递的时间顺序(协作图强调对象之间的交互关系)。时序图都由哪些元素组成呢?角色实例(某一角色的具体实例)如上图所示,:CommonUser就代表角色CommonUser的一个实例,角色实例的主要作用是激活用例,接下来就...

2019-07-17 09:36:16 2266

转载 UML类图实例 (动物)

首先是复习一下UML中九种图的理解:https://www.cnblogs.com/lookphp/p/f0892616f79df6b462f69eeaa153dd70.html下面是类图的实例(好像大话设计中有):UML中类图实例接口:空心圆+直线(唐老鸭类实现了‘讲人话’);依赖:虚线+箭头(动物和空气的关系);关联:实线+箭头(企鹅需要知道气候才迁移);聚合:空心四边形+实线+...

2019-07-17 09:33:47 5961 1

转载 UML建模之用例图(重点讲extend和include关系)

文章目录概述角色(Actor)用例(Use Case)1、概述级2、用户目标级3、子功能级关系:一、包含关系(include):二、扩展关系(extend)概述用例图(Use Case Diagram)是整个UML9种图中最基础、最重要的一种图。为什么说它重要呢?因为用例图描述的是待开发系统的功能需求,这些功能需求是UML其它几种视图的依据和基础,其它几种图都要围绕用例图中定义的用例来建模,也...

2019-07-17 09:21:53 4657

原创 Flutter开发环境搭建

下载Flutter下载地址:https://flutter.dev/docs/development/tools/sdk/releases?tab=windows#windows配置环境变量D:\flutter:你下载的flutter解压目录镜像配置https://flutterchina.club/setup-windows/由于在国内访问Flutter有时可能会受到限制,Flu...

2019-07-01 16:19:47 248

原创 Dart开发环境快速搭建(解决下载缓慢问题)

文章目录下载SDK安装下载SDK由于我国网络问题,下载Dart的SDK会是一个很困难的事情,那有没有解决SDK下载缓慢的方法呢?直接使用清华源镜像瞎子linux 下载地址:https://mirrors.tuna.tsinghua.edu.cn/flutter/flutter_infra/flutter/02e6a130e7dd23cd70ea0b2d947f3e1a0269190b/...

2019-06-28 23:13:43 4942

原创 Docker中运行MySQL5.7并挂载宿主机目录到镜像

文章目录拉取mysql镜像创建用于挂载的目录使用镜像创建容器命令解析进入容器拉取mysql镜像docker pull mysql:5.7创建用于挂载的目录mkdir -p /data/mysql/logs /data/mysql/conf /data/mysql/data使用镜像创建容器#将容器中MySQL的3306端口映射到本地的3306端口,并设置登录密码为:123456do...

2019-05-27 20:30:51 2693 1

原创 openresty开发环境搭建

文章目录前言下载openresty插件安装HelloWorld新建一个Lua项目配置Nginx服务启动服务构建启动nginx访问页面前言下载openresty下载地址:http://openresty.org/cn/download.html下载64位的下载后解压到:D:\publictools\openresty-1.15.8.1-win64插件安装打开IDEA找到插件安装...

2019-05-25 22:01:25 2356

原创 TypeScript接口

接口TypeScript 的核心原则之一是对值所具有的结构进行类型检查。它有时被称做“鸭式辨型法”或“结构性子类型化”。 在 TypeScript 里,接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约。接口初探下面通过一个简单示例来观察接口是如何工作的:function printLabel(labelledObj: { label: string }) { console...

2019-05-23 11:47:32 361

原创 TypeScript变量声明

变量声明let 和 const 是 JavaScript 里相对较新的变量声明方式。let 在很多方面与 var 是相似的,但是可以帮助大家避免在 JavaScript 里常见一些问题。const 是对 let 的一个增强,它能阻止对一个变量再次赋值。因为 TypeScript 是 JavaScript 的超集,所以它本身就支持 let 和 const。 下面我们会详细说明这些新的声明方式以及...

2019-05-23 09:12:32 4555

原创 TypeScript中的基础数据类型

基础数据类型TypeScript 支持与 JavaScript 几乎相同的数据类型,此外还提供了实用的枚举类型方便我们使用。布尔值最基本的数据类型就是简单的 true/false 值,在JavaScript 和 TypeScript 里叫做 boolean(其它语言中也一样)。let isDone: boolean = false数字和 JavaScript 一样,TypeScrip...

2019-05-22 12:57:57 573

原创 初识TypeScript

文章目录前言环境搭建安装node.js安装TypeScript编写HelloWorld新建项目新建ts文件编译运行前言TypeScript是一种由微软开发的自由和开源的编程语言。它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。安德斯·海尔斯伯格,C#的首席架构师,已工作于TypeScript的开发。2012年十月份,微软发布了首个公开版本的...

2019-05-22 12:37:42 124

原创 golang基础教程(附录一)Golang代理配置,解决google包无法下载的问题

前言在开发go项目时经常会用到 golang.org/x下的包,但这个通常无法下载,例如:go get golang.org/x/net: unrecognized import path "golang.org/x/net" (https fetch: Get https://golang.org/x/net?go-get=1: dial tcp 216.239.37.1:443: conn...

2019-05-16 20:32:52 2756

原创 引用传递 VS 值传递(pass by reference VS pass by value)

文章目录前言引用传递值传递JAVA是引用传递还是值传递?引用传递是啥样?先来看个C++中的值传递:再来看个C++引用传递总结前言编程语言中方法调用是会有参数传递进来,在传递参数的时候就会涉及引用传递和值传递,那么到底什么是引用传递?什么是值传递。引用传递在维基百科中没有找到对应的解释,但是有传引用调用的解释:在“传引用调用”求值中,传递给函数的是它的实际参数的隐式引用而不是实参的拷贝。...

2019-05-16 16:56:14 862

原创 dubbo使用Apache Skywalking做分布式跟踪

Apache Skywalking简介Apache Skywalking专门为微服务架构和云原生架构系统而设计并且支持分布式链路追踪的APM系统。Apache Skywalking(Incubator)通过加载探针的方式收集应用调用链路信息,并对采集的调用链路信息进行分析,生成应用间关系和服务间关系以及服务指标。Apache Skywalking 目前支持多种语言,其中包括Java,.Net C...

2019-05-16 00:37:59 3297

原创 dubbo源码分析(二)、服务端bean注册流程

文章目录注册服务Bean到上下文中注册服务Bean到注册中心定义服务导出事件注册服务Bean到上下文中org.apache.dubbo.config.spring.beans.factory.annotation.ServiceAnnotationBeanPostProcessorpublic class ServiceAnnotationBeanPostProcessor implemen...

2019-05-12 12:48:00 660

原创 Dubbo源码分析(一)、初始化加载服务提供者和服务消费者的过程

这里基于注解方式来说的基本过程扫描对应的包,找到指定路径下的类,将其注册加载通过DubboComponentScan指定服务提供类所在的位置其中重点在DubboComponentScanRegistrar类上实现了ImportBeanDefinitionRegistrarImportBeanDefinitionRegistrar可以参考 https://www.jianshu.com...

2019-05-12 08:58:47 234

原创 Spring进阶(一)SpringBoot自定义Event事件

定义事件需要继承ApplicationEvent类,相当于安装了一个没有通电,没有灯光的信号灯,需要具有信号灯的基本特征。package springTest5;import org.springframework.context.ApplicationEvent;public class EventTest extends ApplicationEvent { private s...

2019-05-11 23:57:53 4576

原创 国内开源镜像站点汇总

文章目录一、站点版1、企业站2、教育站3、其他4、确认关闭的镜像站二、软件版1、操作系统类2、服务器类3、开发工具类三、官方镜像列表状态地址四、几个官方cn子域解析五、镜像站搭建参考一、站点版1、企业站网易:http://mirrors.163.com/搜狐:http://mirrors.sohu.com/(Ubuntu旧发行版同步被冻结,不同步Ubuntu新发行版,Ubuntu源同步正常...

2019-05-11 23:18:20 4890

原创 Spring进阶(一)SpringBoot替换上下文中的Bean

文章目录业务场景一、使用AOP为使用到方法添加自定义注解二、在系统启动时直接替换实现方式思路业务具体代码业务场景已经写好业务入库的代码,现在要在数据库添加了一个公共字段,需要所有在业务处理的时候为实体类为这个字段赋值。我们的业务场景:所有的实体类都继承一个BasicBean业务类都是通过Spring进行管理的解决方案有多种,现在列举两种:一、使用AOP为使用到方法添加自定义注解...

2019-05-10 18:29:38 10999

原创 如何使用IDEA看源码继承关系

文章目录打开一个类或接口打开继承关系打开一个类或接口这里可以随便打开一个类或接口(当然得和你看的框架源码有关系的)例如:org.springframework.context.ApplicationContext在类文件上右击,选择Diagrames=》Show Diagrames快捷键:ctrl+alt+Shift+U打开后:打开继承关系在上一步打开的类中右击Be...

2019-05-09 13:56:03 977

翻译 阿里开源分布式事务框架(二)seata (fescar)简单使用

文章目录Maven依赖快速开始用例结构存储服务订单服务帐户服务主业务逻辑使用seata解决分布式事务Dubbo + SEATA的示例第1步:设置数据库第2步:创建UNDO_LOG表第3步:创建表格,例如业务第4步:启动服务器第5步:运行示例Maven依赖<seata.version>0.5.1</seata.version><dependency> ...

2019-05-08 21:34:00 3772

原创 阿里开源分布式事务框架(一)seata (fescar)介绍

文章目录什么是Seata?微服务中的分布式事务问题Seata怎么样?历史之前是叫fescar,后来改名为seata什么是Seata?一种分布式事务解决方案,具有高性能和易于使用的微服务架构。微服务中的分布式事务问题让我们想象一下传统的单片应用程序。其业务由3个模块构成。他们使用单个本地数据源。当然,本地事务将保证数据的一致性。微服务架构的情况发生了变化。上面提到的3个模块被设计...

2019-05-08 19:08:21 4603 2

原创 sourceforge网站无法打开解决办法

http://sourceforge.net 总是间歇性抽搐…找了2个代替地址,先记下了:1、ftp://ftp.jaist.ac.jp/pub/sourceforge/2、http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/使用方式一级目录是项目的第一个字母二级目录是项目的前两个字母...

2019-04-27 13:15:43 9800 2

原创 Springboot(2.x)集成Spring-data-redis(2.x) RedisCacheManager缓存源码分析及配置

文章目录RedisCacheManager基本运作流程源码分析cacheMapinitializeCaches()getCache()getMissingCache()配置使用构造方法RedisCacheManager基本运作流程其中底层数据处理可以是redis、ehcache源码分析RedisCacheManager继承关系:其中主要是org.springframework.cac...

2019-04-25 17:32:25 1259

原创 Java并发框架Disruptor教程(三)、多生产者

介绍在使用中会遇到,多个生产者将事件推给消费者的情况实现代码创建一个事件类用于生产者和消费者之间进行通讯的的事件public class TradeEvent { private Integer userId; private String id; private String name; private Integer status; pri...

2019-03-06 13:39:22 7216

原创 Java并发框架Disruptor教程(三)、单一生产者

介绍在disruptor中单一生产者将数据推送个消费者的过程,可一有多种情况,(P:生产者,C:消费者)1P =&gt; 1C1P =&gt; NC在这里演示还是使用订单生成的例子:LongEvent:public class TradeEvent { private Integer userId; private Long id; private Stri...

2019-03-06 12:07:53 6785

原创 Java并发框架Disruptor教程(二)、快速入门

添加Maven依赖将以下内容添加到pom.xml中&lt;!-- https://mvnrepository.com/artifact/com.lmax/disruptor --&gt;&lt;dependency&gt; &lt;groupId&gt;com.lmax&lt;/groupId&gt; &lt;artifactId&gt;disruptor&lt;/artif...

2019-03-06 10:15:42 7188

原创 Java并发框架Disruptor教程(一)、概述

介绍理解Disruptor是什么的最好方法是将它与目前很好理解和非常相似的东西进行比较。在Disruptor的情况下,这将是Java的BlockingQueue。与队列一样,Disruptor的目的是在同一进程内的线程之间移动数据(例如消息或事件)。但是,Disruptor提供了一些将其与队列区分开来的关键功能。他们是:具有消费者依赖关系图的消费者多播事件。为事件预先分配内存。无锁机制。...

2019-03-06 09:54:01 8216

转载 go并发编程之美(二)、go内存模型

一、前言Go语言的内存模型规定了一个goroutine可以看到另外一个goroutine修改同一个变量的值的条件,这类似java内存模型中内存可见性问题(Java内存可见性问题可以参考拙作:Java并发编程之美一书)。当多个goroutine并发同时存取同一个数据时候必须把并发的存取的操作顺序化,在go中可以实现操作顺序化的工具有高级的通道(channel)通信和同步原语比如sync包中的Mu...

2019-03-04 17:11:51 7218

转载 Go并发编程之美(五)、CAS操作

一、前言go语言类似Java JUC包也提供了一些列用于多线程之间进行同步的措施,比如低级的同步措施有 锁、CAS、原子变量操作类。相比Java来说go提供了独特的基于通道的同步措施。本节我们先来看看go中CAS操作二、CAS操作go中的Cas操作与java中类似,都是借用了CPU提供的原子性指令来实现。CAS操作修改共享变量时候不需要对共享变量加锁,而是通过类似乐观锁的方式进行检查,本质还...

2019-03-04 16:56:46 7151

转载 Go并发编程之美(四)、条件变量

一、前言go语言类似Java JUC包也提供了一些列用于多线程之间进行同步的措施,比如低级的同步措施有 锁、CAS、原子变量操作类。相比Java来说go提供了独特的基于通道的同步措施。本节我们先来看看go中与锁相关的条件变量二、条件变量在java中条件变量是与具体的锁想关联的,在go中也是这样的。package mainimport ( &amp;quot;fmt&amp;quot; &amp;quot;sync&amp;quot; ...

2019-03-04 16:53:10 7100

转载 Go并发编程之美(三)、互斥锁

一、前言go语言类似Java JUC包也提供了一些列用于多线程之间进行同步的措施,比如低级的同步措施有 锁、CAS、原子变量操作类。相比Java来说go提供了独特的基于通道的同步措施。本节我们先来看看go中互斥锁.二、互斥锁互斥锁是独占锁,同时只有一个线程可以获取该锁,其他线程则会被阻塞挂起,等获取锁的线程释放锁后,阻塞的线程中的一个才可以被唤醒并获取锁。本节我们使用独占锁来实现一个线程安...

2019-03-04 16:48:00 7015

转载 go并发编程之美(一)、go与java并发编程对比

一、前言在Java中多线程之间是通过共享内存进行通信的,在go中多线程之间通信是基于消息的,go中的通道是go中多线程通信的基石。在java中创建的线程是与OS线程一一对应的,而在go中多个协程(goroutine)对应一个逻辑处理器,每个逻辑处理器与OS线程一一对应。每个线程要运行必须要在就绪状态情况下获取cpu,而操作系统是基于时间片轮转算法来调度线程占用cpu来执行任务的,每个OS线程...

2019-03-04 16:45:25 14484 1

转载 Java动态追踪技术探究

引子在遥远的希艾斯星球爪哇国塞沃城中,两名年轻的程序员正在为一件事情苦恼,程序出问题了,一时看不出问题出在哪里,于是有了以下对话:“Debug一下吧。”“线上机器,没开Debug端口。”“看日志,看看请求值和返回值分别是什么?”“那段代码没打印日志。”“改代码,加日志,重新发布一次。”“怀疑是线程池的问题,重启会破坏现场。”长达几十秒的沉默之后:“据说,排查问题的最高境界,就是只通...

2019-03-02 21:56:10 7013

空空如也

空空如也

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

TA关注的人

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