自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 springcloud alibaba 之 sentinel

大名鼎鼎的 sentinel没用过的都想用,用过都说好,下面是集成过程。项目源码在开始之前首先需要看一下sentinel入门SentinelSentinelResource一、搭建 sentinel服务sentinel docker选择以下一种即可基于alpine的docker源码镜像已上传到阿里云公共仓库的镜像docker-compose.ymlsentinel:...

2020-04-14 11:27:17 375

原创 springcloud alibaba 之 nacos

想从 springcloud中切换到 springcloud alibaba本文可以起到指引作用头号大事是服务注册发现,在选型上我优先考虑了 consul弄完之后发现没有传说中的那么香,于是乎换成了 nacos项目源码下面是集成 nacos的过程在开始之前首先需要看一下 nacos入门一、搭建 nacos服务运行以下命令使用 docker来虚拟化服务git clone http...

2020-04-14 11:20:27 769

原创 springboot中使用kotlin的一些问题

spring很早就支持kotlin,实际项目中大多数情况下都是java和kotlin混合编写,本文是一篇指引如何在springboot中使用kotlin与java混合开发,并且遇到的一些问题及解决方案。本教程只演示maven下对kotlin的集成使用1、声明要使用的kotlin的信息<properties> <project.build.sourceEnco...

2020-04-11 17:48:41 2317

原创 golang协程

最近在使用golang做一个爬虫,涉及到多线程,golang是没有多线程的,但是有一种更轻量级能达到类似多线程的效果,协程,golang原生支持协程。一、怎么理解协程?协程是golang语言特性的实现,比线程更低一级的运行方式,它不属于操作系统功能,不由操作系统分配cpu、内存,而是由golang自己实现运行资源的调度使用。也正是因此执行效率要高于线程。但是协程需要主动让出控制权后供其他协程运...

2020-04-11 17:45:32 248

原创 使用grub引导启动系统

一、适用场景:1、电脑是多系统的,windows 、liunx 混合2、需要灵活的远程控制重启系统后的自动进入系统项本次用到的是liunx下的grub工具二、发生原因:当windows上安装 liunx双系统后,会要求写入grub引导,不写入会导致liunx无法进入,当然在windows系统上有工具可以修复,我这里是写入grub的,会导致windows无法进入。并且我需要远程控制系统重启...

2020-04-11 17:44:30 2204 2

原创 haproxy之tcp

最近在弄关于tcp的代理,发现haproxy口碑挺好的,一查发现淘宝网都在使用,想来性能会让我非常满意(马上开始打脸)。haproxy主要用于tcp和http两种模式的代理(health模式正在被放弃)http这块我不打算在本文描述,有nginx使用经验的会想为什么不使用nginx呢,这点我不想做什么结论,开心就好。一、haproxy的安装(乌班图下)apt-get install hap...

2020-04-11 17:42:48 1648 1

原创 远程连接控制没有外网ip的计算机(windows10 & liunx)

当计算机处在局域网内部时,在外面是无法访问和连接控制的,当然这是有解的。解法一:宽带设置为路由器拨号,增加虚拟服务器,映射到本地计算机ip及端口上(记得内网ip设置成固定ip)解法二:windows系统使用向日葵、teamViewer等软件实现控制、liunx桌面版也有类似软件,liunx服务器版在常规情况下貌似无解了本文针对能上网只有内网ip的windows10 及liunx(服务器版或桌...

2020-04-11 17:23:21 3091

原创 树莓派系统安装

树莓派是使用sd卡的,系统需要安装到sd卡中,安装好的卡可以在断电后拔下来插到其他树莓派中使用。需要的准备:1、需要树莓派系统文件:官方树莓派系统下载上下载树莓派系统(建议选择第一个新手版本)。2、用读卡器插好sd卡,插到电脑的usb口上。windows下操作:需要在windows系统上使用2个工具,下面是下载地址:sd卡格式化工具:http://pubqn.ayouran.com/S...

2020-04-11 17:21:05 477 1

原创 java8之java.util.function的基本使用

本次使用java.util.function.Consumer;java.util.function.Function;java.util.function.Predicate;java.util.function.Supplier;借助redis做一个简单的分布式锁。废话不多说,直接上代码,如果想了解java.util.function自己去百度吧,大都说的非常清楚,我就在这废话了。...

2020-04-11 17:19:37 1114

原创 使用手机或电脑远程连接windows自带的远程桌面

之前写过相应的文章,但新手按文章做起来成功率较低,故再次写一篇0基础只需要按本文一步步操作就能完成的教程。本教程主要支持 windows 10、windows 7、windows xp 设置远程桌面后供手机(ios、android)或者其他电脑连接(windows、mac)。远程原理不在此说明,有兴趣的可以看我之前的相关文章,已经做了很详细的描述。本次需要用到的资源:1、一台具有公网ip的...

2020-04-11 17:18:15 7201

原创 springboot-web层的权限校验

我们在controller层写的http接口伴随一些隐性的需求,比如:是否登录、是否有权访问、获得当前访问者信息、单点登录等功能本项目已在2020-02-27日发布至maven中央仓库,并且增加了新的功能maven坐标为 其他方式集成:<dependency> <groupId>com.github.liuchengts</groupId> ...

2020-04-11 17:16:23 405

原创 使用kotlin+springboot集成querydsl

通常在 java+ springboot下使用 querydsl很顺畅,但是切换到 kotlin下之后有了一些不同,这里记录一下集成的过程一、项目依赖 maven配置增加依赖包<properties> <querydsl.version>4.2.1</querydsl.version> </properties>...

2020-04-11 17:14:06 869

原创 使用kotlin集成springboot开发

目前大多数都在使用java集成 springboot进行开发,本文演示仅仅将 java换成 kotlin,其他不变的情况下进行开发。一、安装支持插件在 idea中安装 kotlin插件(大多数情况下会默认安装了)二、maven配置注意kotlin目前不支持 lombok所以不能使用或引用 lombok相关的插件或依赖包,下面是一个排除示例,同时也不支持 maven-enforcer-...

2020-04-11 17:13:09 5881 1

原创 使用kotlin+springboot集成mqtt

在物联网平台搭建方面,最基础的通讯设施 mqtt是必不可少的,之前用 java集成,现在换成 kotiln一、引入 maven依赖<dependency> <groupId>org.springframework.integration</groupId> <artifactId>spring-in...

2020-04-11 17:11:55 338

原创 发布jar到maven中央仓库

最近写了一个开源组件,想发布到maven仓库直接使用。在此记录一下每一步的操作过程:1、在这个网站注册一个账户sonatype账户名和密码需要记一下,不能忘了2、点击新建,创建一个新的问题,依次填入项目的信息下面是填入信息的参考:项目:Community Support - Open Source Project Repository Hosting (OSSRH)问题类型:New...

2020-04-11 17:09:41 364 2

原创 查看jvm中的动态class

最近在研究动态class的相关特性问题,经常需要查看正在运行的java程序中动态生成的class文件,以下是查看方式。一、必要的工具jdk:windows下 jdk7及以上、liunx下 jdk6及以上说明:HSDB是sun官方推出的一个java虚拟机debug的工具,liunx下jdk6自带了,windows下jdk7自带了。这个工具可以做很多事情,有兴趣的自己去学学吧,可以见识到j...

2019-07-24 20:56:16 783

原创 java爬虫

都说python比java写爬虫更容易,我特意用python写了爬虫,对比java写爬虫,确实python更容易,主要是完善的支持库和语法特性占了优势。在GitHub上java爬虫有几个项目还是很不错的,有兴趣的可以去看看。一、列举爬虫爬虫主要是依赖于基础的tcp协议或者高级http协议,根据不同的工作场景分为2种:1、数据爬虫 爬取方式:主要是寻找服务端接口地址进行模拟请...

2019-07-18 21:31:16 200

原创 系统设计原则

系统设计中本来没有固定的原则规范,但是一定是有一个好的趋向的,本文的目的是让系统设计者可以得到几个方向,可以拿捏考虑的点,但是不必拘泥于以下设计原则,拿来当做系统设计时的参考足矣。以下原则总结抄录来源于互联网:一、六大原则1. 单一职责原则(Single Responsibility Principle - SRP)原文:There should never be more tha...

2019-07-17 10:47:17 2909

原创 使用asm创建动态class

asm不是一个新的东西,javaee领域的开源框架都有asm的用武之地。准确来说 asm是用来操作字节码的,源代码是java编写。asm官网https://asm.ow2.io/index.htmlasm的使用稍微复杂,需要了解字节码。我强烈建议从事java开发的同学必须会asm的基本操作,这会让你非常容易接近jvm的编译指令,类加载等原理上的东西,便于更好的理解jvm与java特性。...

2019-07-11 10:32:38 674

原创 java之CachedThreadPool

这是大名鼎鼎的java4大线程池之一,具有以下特性是一个可以无限扩大的线程池; 比较适合处理执行时间比较小的任务; corePoolSize为0,maximumPoolSize为无限大,意味着线程数量可以无限大; keepAliveTime为60S,意味着线程空闲时间超过60S就会被杀死; 采用SynchronousQueue装等待的任务,这个阻塞队列没有存储空间,这意味着只要有请求...

2019-07-10 10:01:56 1022

原创 springdata-jpa之jdbcTemplate

一、为什么要写这篇文章springdata-jpa提供了非常多的默认抽象,当我们选择用hibernate进行实现后,绝大多数db操作都能自动完成了,唯一头疼的问题是连表查询,当然如果按hibernate的映射方式设计数据结构是可以用jpa默认实现搞定的。但是目前绝大多数数据库设计都是定义一个字段表示外键关系,而不是用表外键约束。比如 需要表示user下用户的权限 account 那么在a...

2019-07-08 22:32:55 2154

原创 使用redis的经验之谈

先说好,这可是一篇水文,哈哈哈。可以直接看https://redis.io/documentation https://docs.spring.io/spring-data/redis/docs/2.1.9.RELEASE/reference/html一、为什么要写这篇文章?大多数中小型系统中使用redis非常不严谨,redis的天然单线程,...

2019-07-07 09:28:53 90 1

原创 springboot-jpa之hibernate优雅注解

本文介绍如何在使用springboot+jpa+hibernate的组合时,如何更加优雅的完成数据库设计,生成修改表的功能。扫盲:jpa是一套标准 springboot-jpa封装了javajpa标准并且抽象了常用的操作,但是并未实现这些标准,你可以采用hibernate、原始jdbc、mybits等rom方式实现。说说重点,如何最优雅的完成数据库设计。注意:5.7的mysql只支...

2019-07-05 09:36:05 737

原创 java是什么?

看到这个标题,一定认为这是一篇水文,其实也没有那么水,算是一篇大众科普文吧。进入正题一、介绍javajava是一门编程语言,最早由sun进行研发,研发的初衷是解决c和c++在底层操作并且进行编码的一些问题,当然也包括面向对象编程,所以java被设计成跨平台、可移植。其中有很长一段故事,有兴趣的自己去查阅相关资料。二、sun jdk众所周知,java运行在jvm虚拟机上,其中虚拟...

2019-07-03 08:04:24 2400

原创 docker之spark

前几天做了个hadoop镜像,hadoop擅长的场景在于离线计算,对于实时性要求要的场景还是得spark上场,于是研究了下spark。项目地址https://github.com/liuchengts/docker-spark用法基本与上次的hadoop类似,同样我只在此说明 dockerfile的内容。spark环境是在原先hadoop基础上增加一些其他必要组件,所以有些步骤是几乎...

2019-07-02 08:44:47 533

原创 docker之elasticsearch

在大数据来临的时代,程序员需要掌握更多的技能满足开发及技术栈,es是其中必不可少的神器。es的官方dockerfile写的很棒,这里我就不从头开始编写,而是直接在官方镜像的基础上做一点点改动项目地址https://github.com/liuchengts/docker-elasticsearch主要增加了一些必备组件:1、icu插件,处理亚洲语言的的分词器2、logstas...

2019-07-01 07:54:01 108

原创 实现一个java远程调用

java的远程调用核心在于解决rpc序列化和反序列化,但是要完成一个远程调用,最花力气的并不是rpc的问题,rpc的方案已经有非常多的方案可以完成了,主要的问题在于通讯机制、负载、选举策略、服务治理等方向,这些方向与本篇文章越扯越远,我在这里只分享如何实现一个java的远程调用。为了快速方便,项目是基于springboot开发的,2年前的项目了,写这个项目是当时我对springcloud与du...

2019-06-30 09:14:40 2291

原创 使用java基础包开发一个简化版springmvc框架

这个项目是3年前的,记忆尤深,刚刚接触springboot一个月(事实上是刚进一家公司,闲着没事干),发现非常多的功能都是那么容易的实现,于是乎想能否自己实现一个mvc,保持springmvc的使用风格,于是花了接近1个多月的时间写了这个项目,期间收获非常多,建议3年以下的的java同学可以参考。此框架参考了一个大型的电商系统框架源码(很老的项目基于Servlet)项目地址https://g...

2019-06-29 09:53:33 172

原创 docker之hadoop

大数据动手实践第一步就是要搭建hadoop环境,需要虚拟机虚拟环境,然而繁琐的工作可以变得更简单完成。这里非常感谢GitHub开源作者的源码贡献。在作者源码基础上进行了dockerfile重写并相关软件的升级和兼容性调整。项目地址https://github.com/liuchengts/docker-hadoop使用方式可以参考项目中的说明文档,基本上下载下来执行几个脚本就能完成,非常...

2019-06-27 08:22:52 359

原创 分布式系统-微服务

2年前很多人问我分布式和微服务的区别。首先分布式是一个大集合,微服务是其中的一块交集,交集的部分都满足分布式架构的特征,比如开箱即用,服务自治,业务单一等等 ,分布式设计其实都可以满足这些条件。没有交集的那部分就是微服务的设计思想,在这里推荐一本精华书籍 <<领域驱动设计>>。有了不同的设计思想之后,催生出了不一样的特征。微服务领域驱动设计是一个法门,指引程序员向架构师...

2019-06-24 21:10:26 181

原创 分布式系统-初见

一、分布式的产生说道分布式的产生,就得先了解分布式之前的系统是怎样的。原有的系统一般都是一个庞大的整体,以包名区分作为模块化,设计的好的系统往往会加入中间业务解耦机制,比如消息事件,异步回调等。但是依旧会出现2个问题:1、系统过于庞大,部署启动需要非常多的资源,而性能强劲的服务器往往比较贵,花大价钱买一台服务器部署之后,出于对宕机、服务更新等因素考虑又需要投入成本最少再购置一台服务器当...

2019-06-24 20:15:33 142

原创 内网穿透方案

感谢GitHub开源项目https://github.com/fatedier/frp2年前刚听说这个东西,用上之后爱不释手,强大之处毋庸置疑。frp是一个开源的内网穿透工具,科学点叫点对点协议(隧道穿透)。frp分为2块,一部分是server,部署在一台有公网ip的服务器上;另一部分是client,部署在内网的机器上(需要把服务暴露到公网的机器)一、服务端配置配置文件路径...

2019-06-21 14:16:34 1239

原创 nginx的常用配置

目前主流的web服务5大神器 Nginx、Apache、Tomcat、Jetty、iis今天讲一下nginx的常规操作,剩下几个后续再讲。一、负载均衡(正反代理)有nginx的服务架构,通常nginx放在最外层接受入口流量,既我们说的正向代理。nginx一般代理的都是 静态资源、tomcat、apache、jetty、iis等,当然 这个顺序不是绝对的,这里面有些组件功能也比较强,...

2019-06-21 14:10:36 189

原创 2张图告诉你jvm内存模型

相关博文推荐https://www.cnblogs.com/SaraMoring/p/5713732.html欢迎关注我的个人公众号

2019-06-21 13:35:09 189

原创 docker之nginx

使用docker虚拟化nginx服务项目结构首先需要编写Dockerfile文件,一般情况下有2种做法:第一种基于liunx镜像镜像编写(自由度非常高)第二种基于docker官方镜像仓库的镜像编写如何选择用何种方式编写自己的Dockerfile呢?先去看你要虚拟化的组件 官方提供的镜像dockerfile源码,如果官方提供的非常累赘那就建议使用第一种方式编写自己的...

2019-06-17 13:43:44 97

原创 java虚拟机的一些内存监控

内存溢出之后,分析原因往往有些困难,这里在启动jvm的时候可以增加一些参数,等内存溢出发生时jvm会帮我们记录当时的快照这是我模拟内存溢出的启动参数:-Xmx64m -Xms32m -Xmn16m -Xss8m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/Users/liucheng/开发/vm/VMDemo.hprof -XX:On...

2018-05-05 17:56:02 2494

原创 java内存溢出的2种情况

java程序员在面试经常被问到内存om之后如何处理,但是实际在工作中遇到此类问题的情况却又非常少。进过自己一番总结内存溢出主要分为2种:一、堆内存溢出 OutOfMemoryError从jvm的角度看发生的情况是:1、动态扩展的栈内存无法满足内存分配。2、建立新的线程没有足够内存创建栈。从编码角度看发生的情况是: 1、内存中加载的数据量过于庞大,如一次从数据库取出过多数据;...

2018-05-05 16:54:07 1286

原创 mac下读取挂载的NTFS文件系统

mac系统其实是可以读写到ntfs格式的文件系统的,只是默认权限是只读,只需要将其默认更改为可读写就ok。步骤:1、在终端执行 :diskutil list查询挂载的所有磁盘 找到需要设置的磁盘 一般在最后2、在终端执行 :cd /etc找到名为 fstab 的文件 如果没有执行 sudo vi fstab3、在 /etc/fstab文件中输入 LABEL=...

2018-03-21 21:27:09 573

原创 springcloud与dubbo的性能对比

在长期使用dubbo的团队中推行springcloud确实是个难题,巨大理由之一就是rpc调用效率远远高于http,故此做一个相关性能测试,所用到的dubbo与spring系均采用官方最新版(dubbo 2.5.7 、springboot 1.5.9 、springcloud edgware)。springcloud测试代码地址https://github.com/liuchengts/s...

2017-12-08 10:54:35 12003 2

原创 java基础之创建对象的方式

一星期前我只知道2种方式创建对象,第一种是new 第二种是反射,后来遇到了个蚂蚁金服面试,牛B的大神问我java创建对象的方式有几种,瞬间进了坑。这里引用了一个哥们的文章http://www.cnblogs.com/wxd0108/p/5685817.htmljava创建对象有5种方式:1、new,最常见的方式 Test t=new Test();2、使用Class类反射: ...

2017-03-03 18:43:32 347

空空如也

空空如也

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

TA关注的人

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