- 博客(148)
- 资源 (2)
- 收藏
- 关注
原创 Gradle非常灵活——借助Groovy实现自定义逻辑或者调用Gitlab api
前言Gradle既然作为替代Maven的工具,自然有相对于Maven的优点。相信Gradle的灵活性是它相对Maven的一个很大的优点。然而Gradle之所以灵活,是因为它可以很方便的用Groovy实现自己的逻辑。本篇文章简单的说一说Gradle如何借助Groovy实现一些简单的自定义逻辑。【同时也更新到了头条上https://www.toutiao.com/i6642260062624547...
2019-01-03 21:27:18
1522
原创 架构师必须掌握的知识——spring容器扩展点
架构师必须掌握的知识——spring容器扩展点写作意图spring作为目前最为主流的框架,能掌握它的各个知识点是必不可少的技能,有些知识在业务代码中不经常使用,但在框架开发时会经常用到。这篇文章的知识就是如此,希望这篇文章能起到夯实基础的作用。本人能力有限,理解不当的地方在所难免,希望各位看官指正。文章阅读建议文章遵循带着问题阅读的方式,这样能深刻掌握知识。文章会先抛出要解决的问题,引导思...
2019-01-01 13:39:54
659
原创 java多线程——线程之间的可见性
目录一、简介二、volatile三、synchronized四、不会从主内存拉取的操作五、从主内存中拉取的操作一、简介 我们知道线程在工作的时候有自己的私有内存,工作内存。程序运行的时候从主内存拉取需要的变量到工作内存,处理完再返回主内存。这篇文章总结哪些代码会使线程去主内存拉取变量。二、volatile volatile修饰的变量,不论...
2018-09-19 20:52:20
2573
1
原创 springCloud微服务系列——OAuth2+Basic验证
目录一、简介二、知识点@OrderhttpSecurity与authorizeRequests设置的区别三、解决方案一、简介 我们希望微服务通过OAuth2+jwt的模式进行验证,但是有些资源我们并不想通过OAuth2+jwt进行验证,比如访问swagger和actuator端点,这些资源我们希望进行Basic验证。二、知识点 @Order ...
2018-08-30 10:18:24
4220
原创 springCloud微服务系列——OAuth2+JWT——spring-security4升级到spring-security5
目录一、简介二、问题三、源码分析四、解决方案一、简介 spring boot2和spring cloud Finchley版本使用的是spring-security5,在升级的过程中OAuth2+JWT遇到一些问题,这里记录一下。环境如下: spring boot 2.0.3 spring cloud Finchley ...
2018-08-27 17:38:13
4785
原创 springCloud微服务系列——断路监控第一篇——仪表盘
目录一、简介二、配置 服务端POM注解安全 客户端POM 注解feignhystrix安全 三、使用四、常见错误一、简介 spring cloud对hystrix相关参数提供了一个实时监控的解决方案Hystrix Dashboard。Hystrix Dashboard提供了一个可视化界面,实时监控服务调用时的参数。...
2018-08-20 11:09:46
1426
原创 springCloud微服务系列——配置中心第五篇——自动刷新
目录一、简介二、github webhooks一、简介 上一篇文章总结了手动刷新,我们希望在配置文件被提交到服务器以后能自动触发刷新,让所有的客户端获得最新的配置信息。这里提供一个使用github管理配置文件,进行自动刷新的解决方案。二、github webhooks github提供了webhooks,当文件被提交到服务器上时,...
2018-08-16 16:39:32
967
原创 springCloud微服务系列——配置中心第四篇——手动刷新
目录一、简介二、客户端刷新 端点配置 安全配置 刷新三、服务端刷新 端点配置 安全配置 KAFKA配置 刷新一、简介 配置文件如果改变了,已经启动的服务如何获得最新的配置,当然可以重新启动服务,但是这样速度太慢了,还需要到服务器上去操作,增加了运维成本,spri...
2018-08-15 15:56:11
1180
原创 springCloud微服务系列——配置中心第三篇——安全加固
目录一、简介二、登录验证三、加密一、简介 上一篇文章中简单搭建了一个配置中心,但是github对于非付费用户是完全公开的,因此如果配置文件中有敏感信息,比如spring security的用户名密码,数据库的连接地址,用户名密码等。这些信息我们不希望别人通过配置中心服务暴露的接口进行查询。因此我们需要进行一些安全加固。二、登录验证 这个很简单,可以...
2018-08-15 15:42:25
1605
原创 springCloud微服务系列——配置中心第二篇——简单搭建
目录一、简介二、服务端三、客户端一、简介 这篇文章简单总结如何搭建配置中心二、服务端 pom配置<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-serve...
2018-08-15 15:25:11
673
原创 springCloud微服务系列——配置中心第一篇——配置管理策略
目录一、简介二、策略不同的项目配置文件复用 版本管理一、简介 从这篇开始总结配置中心,打算分以下内容总结完成 《springCloud微服务系列——配置中心第一篇——配置管理策略》 《springCloud微服务系列——配置中心第二篇——简单搭建》 《springCloud微服务系列——配置中心第三篇——安全加...
2018-08-15 14:58:53
3316
原创 大数据系列hive——jdbc
目录一、简介二、HiveServer2配置启动三、Beeline四、错误处理五、代码一、简介 hive可以通过命令行执行hql,它也提供了相应的jdbc驱动,从而可以使用jdbc api进行代码的编写。二、HiveServer2 hive的服务,只有开启了hiveServer2,客户端才能通过jdbc连接上hive 配置 ...
2018-08-15 09:57:07
1222
原创 大数据系列hive——配置mysql
目录一、简介二、mysql驱动三、配置四、初始化数据库一、简介 hive默认的元数据信息是存在derby中的,但是derby只支持单机,所以需要更换到mysql中。二、mysql驱动 将相应版本的mysql驱动拷贝到HIVE_HOME/lib目录下,比如mysql-connector-java-5.1.45.jar三、配置 ...
2018-08-11 13:54:59
266
原创 大数据系列hive——安装
目录一、简介二、安装三、配置 环境变量配置 hdfs初始化 xml配置 初始化数据库一、简介 hive是数据仓库技术,针对主题的数据进行分析,为企业提供决策支持。它和数据库不同,不会产生任何数据,也不消费任何数据。它的特点是面向主题的,集成的,非易失的,时变的。 hive的元数据存储在关系型数据库上,可以是mysql...
2018-08-09 14:15:51
267
原创 大数据系列hadoop——MapReduce实例——好友推荐
目录一、简介二、思路三、实现一、简介 好友推荐功能简单的说是这样一个需求,预测某两个人是否认识,并推荐为好友。二、思路 某两个非好友的用户,他们的共同好友越多,那么他们越可能认识。 比如,原始数据如下Tom Cat Hello Hadoop SpringCat Hello Spring...
2018-08-09 11:52:01
4379
3
原创 大数据系列hadoop——MapReduce实例——单词计数
目录一、简介二、思路三、实现一、简介 这个应该是mapReduce里面最简单,也是所有人写的第一个例子吧。二、思路 map阶段,分词,把每个词作为key,value为1 reduce阶段,把每个词的value相加三、实现 @Slf4jpublic clas...
2018-08-09 11:27:40
1069
原创 springCloud微服务系列——actuator
目录一、简介二、pom依赖三、配置 management spring boot 1.x spring boot 2.x 权限配置 spring boot 1.x spring boot 2.x statusPage和health check info配置四、使用说明spr...
2018-08-09 11:17:57
2328
原创 springCloud微服务系列——注册中心——添加认证功能
简介 注册中心界面添加用户名密码才能访问服务端 引入spring-security<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</arti...
2018-08-08 09:49:26
1782
原创 大数据系列hadoop——开发环境配置
目录简介安装配置插件环境变量代码中的配置core-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xmlmapReduce简介 一般来说,我们的hadoop部署在linux服务器上,我们在windows上用eclipse进行开发,所以我们要进行开发环境配置。 工具和版本号 ...
2018-08-07 17:06:40
700
原创 springCloud微服务系列——链路跟踪第六篇——redis缓存链路跟踪器
目录一、简介二、思路给redis操作提供定义拦截器的功能静态代理动态代理mybatis的interceptor实现仿造mybatis的interceptor类加载三、示例代码一、简介 这篇文章总结redis缓存链路跟踪器的实现二、思路 redis的客户端本身是没有提供拦截器的。此外,缓存操作一般也不是一个独立的方法,而是嵌入在某业...
2018-08-03 12:54:37
1615
1
原创 springCloud微服务系列——链路跟踪第五篇——mybatis链路跟踪器
目录 一、简介二、思路interceptor的创建源码分析spring上下文之外获得bean三、示例代码一、简介 这篇文章总结mybatis链路跟踪器的实现二、思路 拦截的话用mybatis自带的interceptor就可以了,这里有一点需要注意。mybatis的interceptor是没办法注入到spring...
2018-08-03 09:56:06
915
原创 springCloud微服务系列——链路跟踪第四篇——hystrix链路跟踪器
目录 一、简介二、思路三、示例代码一、简介这篇文章总结hystrix链路跟踪器的实现二、思路上一篇文章总结了feign的链路跟踪器的实现,同样的,这里也可以用AOP来拦截,除此之外,hystrix还有一些自身的特点1、需要从http中获取链路信息,由于是新建的线程需要特殊处理,可以参看《springCloud微服务系列——OAuth2+JWT模式下的feign+...
2018-08-02 17:36:42
1809
原创 springCloud微服务系列——链路跟踪第三篇——feign链路跟踪器
目录 一、简介二、思路三、获取riboon负载均衡结果 源码分析 扩展点四、示例代码一、简介 这篇文章总结feign链路跟踪器的实现二、思路 上篇文章中总结了mvc的链路跟踪器,我们可以知道要实现链路跟踪器需要在前后拦截请求,那么这里我们应该怎么处理呢?既然使用的是spring,那么很容易想到使用AOP来进行拦截。 还有个细节需要注意...
2018-08-02 17:15:41
3325
原创 springCloud微服务系列——链路跟踪第二篇——mvc链路跟踪器
目录 一、简介二、思路三、spring mvc四、示例代码一、简介 这篇文章总结一下mvc链路跟踪器的实现,这篇文章的内容相对比较简单。二、思路 上一篇文章其实已经顺带把mvc链路跟踪器的思路说了 1、初始化上下文,新建ThreadLoacal 2、从http中获取traceId信息 如果有说...
2018-08-02 15:36:59
718
原创 springCloud微服务系列——链路跟踪第一篇——设计思路以及通用链路跟踪器
目录 一、简介二、思路基本概念traceIdrpcId主体思路线程安全层级细节处理入口层级处理线程根层级处理跨线程层级处理三、总结四、通用链路跟踪示例代码一、简介 分布式系统由于分别部署在不同的服务器上,服务之间的调用关系相比单体应用来说不是显而易见,另外各个服务之间的响应时间也是优化,排故的重要信息。因此,需要一套链路跟踪机...
2018-08-02 15:16:55
2693
1
原创 springCloud微服务系列——分布式日志采集
目录一、简介二、思路三、自定义Logback appender 属性注入 Logback标签注入属性 Spring配置信息注入属性 Logback代码注入属性Elasticsearch模板设计示例代码一、简介 分布式应用必须有一套日志采集功能,目的是将分布在各个服务器节点上的应用日志文件采集到统一的服务器上,方便日志的查...
2018-08-02 13:13:52
31642
3
原创 springCloud微服务系列——不可避免的【分布式事务】之【可靠消息最终一致性】
其实这篇文章和springCloud无关,但是属于微服务不可避免的一个问题,所以拿在这里说一说。这里只可能讨论理论,因为具体实现是有一定复杂度的,不可能放代码。 分布式事务是面向服务,微服务架构不可避免的问题,而且为了性能考虑,一般不使用刚性事务,而使用柔性事务。柔性事务中又有可靠消息最终一致性,TCC,最大努力通知三种解决方案。这里来说一说可靠消息最终一致性。 ...
2018-06-30 17:26:41
10922
原创 springCloud微服务系列——OAuth2+JWT模式下的【资源服务器】获得【自定义信息】
回过头来说一下资源服务器的问题点吧,这里OAuth2+JWT用的是spring security,具体怎么用spring security搭建资源服务器我就不说了。这里要讨论的问题是这样的,我们希望在spring mvc中,直接通过如下的形式获得登录用户信息@GetMapping("/me")public Authentication me(OAuth2Authentication...
2018-06-30 17:01:16
8055
原创 springCloud微服务系列——OAuth2+JWT模式下的feign+hystrix处理
之前的文章说了一下JWT模式下feign调用其他服务的时候,怎么通过一个方法使得http请求头的信息传递到被掉服务中。当然也可以用@RequestHeader注解,但是这样并不是太好,因为我们希望有一个全局的处理。这些问题可以参看之前的文章。 《springCloud微服务系列——OAuth2+JWT模式下的swagger+feign处理》 这篇文章将总结的...
2018-06-30 13:54:29
4182
1
原创 mysql双主+keepalived
为了实现mysql高可用,可以搭建双主模式。为了实现主节点故障自动切换,引入keepalived。 这里因为要用到keepalived,使用docker感觉不太方便。因此这里就不用docker了。一、双主 其实双主的配置非常的简单,就是互为主从。两台机子分别配置为主节点和从节点就ok了。 这里就不详细说了,可以参看以前的文章。二、keepalived keepa...
2018-05-27 13:07:37
331
原创 springCloud微服务系列——OAuth2+JWT模式下的swagger+feign处理
这次总结的内容为通过spring-security实现的OAuth2+JWT认证服务器和资源服务器分离架构下,如何引入swagger+feign。 需要解决的问题: 1、swagger-ui.html不需要权限验证 2、swagger引入request头的Authorization参数来提供令牌的输入 3、通过feign调用其他微服务时,被调用服务不再需要权限认证 ...
2018-05-20 18:07:32
4757
原创 基于docker搭建mysql主从+haproxy负载均衡
使用容器对于部署来说省了不少事情,容器也有利于自己做各种分布式的架构实验。这里说一下使用docker搭建mysql主从以及通过haproxy做从库的负载均衡。 一、mysql主从主节点 1、创建用户,授权create user 'repl'@'172.22.16.%' identified by 'repl';grant replication slave on *.* t...
2018-05-20 17:41:23
2830
原创 springCloud微服务系列——单点登录OAuth2+JWT
研究了好久的springCloud微服务架构,在这里整理总结一下,做个梳理和备忘。 这次总结的是微服务之间的认证。最近实现了一个基于spring security的适合单体应用和分布式应用,适合app和浏览器的一套自用鉴权框架。算是对spring security有了点比较深入的认识了,这里说一下通过OAuth2+JWT来解决微服务之间的鉴权问题。 这里不会涉及到细节问题,关于...
2018-04-29 20:35:12
22456
3
原创 springCloud微服务系列——网关处理+nginx
研究了好久的springCloud微服务架构,在这里整理总结一下,做个梳理和备忘。 这里只记录一些个人认为比较重要,但是网上基本没有什么明确答案的问题。像什么注册中心什么的就不总结了,网上一大堆。 先从网关开始说吧,网关也有很多东西,这里先说一下网关和nginx的整合。 1、nginx在这里的作用: 在这个方案中,通过nginx可以做前后端分离,静态化,对网关做高可...
2018-04-29 18:50:02
20977
5
原创 hadoop高可用搭建
hdfs的NameNode节点用来保存元数据信息,一旦宕机,则集群不可恢复。因此需要高可用,在hadoop2.x以后,可以支持NameNode的高可用。hadoop3.x则支持一主多从。 hadoop2.x的高可用有一个缺点,就是数据节点的心跳需要向NameNode集群的每个节点发送,这样比较占用资源,因此NameNode节点并不是越多越好 一、架构 先来看一下架构图 ...
2018-03-06 10:10:21
387
原创 hadoop eclipse插件安装
这里的eclipse版本为Eclipse Jee Oxygen,hadoop为2.6.5 下载对应的插件hadoop-eclipse-plugin-2.6.5 将该文件夹放到eclipse安装目录下的dropins文件夹中 重启eclipse 发现在ProjectExplorer下多出了DFS Locations 最后,需要计算机的用户名为hadoop...
2018-03-02 13:19:52
403
原创 hadoop完全分布式搭建
hadoop的原理总结在写得中 hadoop原理 hadoop的伪分布式搭建比较容易,官方文档写得很清晰。 这里的hadoop版本为2.6.5,官方文档地址为 官方文档地址 完全分布式相对比较复杂,这里做一下总结 一、时间同步的处理 由于是分布式环境,所以服务器之间的时间同步是第一个要解决的问题。参见以下文章 linux服务器时间同步 ...
2018-03-01 21:58:49
310
原创 linux服务器时间同步
由于分布式系统对时间一致性要求比较高,因此需要一台同一时间的服务器,其他服务器时间以他为准。 这里使用的工具是ntp 4.2.6p5 操作系统为centos7 一、设置时间服务器 修改/etc/ntp.confrestrict default nomodify notrap nopeer noquerrestrict 192.168.160.0 mask 255...
2018-03-01 16:11:32
759
原创 React-native 热更新(2) 脚本增量更新 android部分
前一篇文章总结了脚本的更新和图片的增量更新 《React-native 热更新(1) 脚本与图片更新+图片加载源码分析 android部分》 这篇文章总结脚本的增量更新 之前我们已经知道,脚本的变更主要是靠bundle文件。增量更新也就是比较bundle文件,生成补丁文件,通过补丁文件,可以得到最新的bundle文件。由于bundle文件就是文本,我们可以用google的go...
2018-02-12 15:59:02
2673
原创 React-native 热更新(1) 脚本与图片更新+图片加载源码分析 android部分
react-native热更新分两个方面,脚本更新和图片更新,我们将在图片更新的地方分析一下图片加载的源码:1、脚本更新。 a、通过bundle文件更新 bundle文件 bundle文件包含了当前所有脚本中的信息,一开始建项目的时候,在asset中会有一个index.android.bundle文件。之后 每次更新的时候,我们需要通过以下命令生成bundle...
2018-02-08 17:24:00
3154
跨平台的word(doc,docx,rtf)插入图片功能
2013-05-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人