自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (11)
  • 收藏
  • 关注

原创 如何通过feign调用spring cloud gateway代理的服务

今天又同事问在浏览器输入http://gateway_host:gateway_port/serviceId/** 格式的url能访问到具体服务,且进入到自定义的gateway过滤器但是通过feign访问注册到eureka server上的服务时却没有通过自定义的过滤器,是否说明没经过gateway网关?如何做能使feign通过gateway来访问注册到eureka的服务呢?归结起来就是:co...

2019-10-23 17:58:27 14630 10

原创 1.Spring Cloud Gateway及Security认证

1.Spring Cloud Gateway简介Spring Cloud Gateway是Spring Cloud官方推出的第二代网关框架,取代Zuul网关。网关作为流量的,在微服务系统中有着非常作用,网关常见的功能有路由转发、权限校验、限流控制等作用。2.创建工程本文我们采用最新的Spring Cloud 版本“Finchley.SR2”,注意该版本对应Spring Boot为2x。官方推...

2019-04-10 20:28:34 32283 16

原创 Java8新特性系列-Lambda表达式

Java Lambda简介Lambda是Java8发版的重要特性,lambda表达式提供了一种使用表达式表示一个方法接口的方法。Lambda表达式就像一种方法,它提供形式参数的列表以及以这些参数表示的主体(可以是表达式或代码块)。Lambda表达式还改进了Collection库。Java8添加了两个与Collection的批量数据操作相关的软件包,即java.util.function软件包和java.util.stream。流就像迭代器一样,但是具有很多额外的功能。总之,lambda表达式和流是Ja.

2021-02-25 21:58:50 233

原创 K8S安装RabbitMQ集群及使用

一 实现方案RabbitMQ Cluster Kubernetes Operator是一个开源的Kubernetes Operator,提供了一种一致且简便的方法,将RabbitMQ集群部署到Kubernetes并运行它们,包括"第二天"(连续)操作,它可以自动的执行Kubernetes上运行的RabbitMQ集群的配置并对集群进行管理和操作。1.1 安装限制Kubernetes 1.16+RabbitMQ Docker镜像版本 3.8.8+二 实现过程2.1 安装(1)项目结构├─sc

2021-02-24 17:36:17 2187

原创 Java8新特性默认方法和静态方法

在Java 8之前,默认情况下,接口中的所有方法都是公共的和抽象的。但是这一限制在Java 8中被打破了,Java 8允许开发人员在接口中添加新方法,而无需在实现这些接口的类中进行任何更改。为什么会有默认方法?主要是为了方便扩展已有接口;如果没有默认方法,加入给JDK中的某个接口添加一个新的抽象方法,那么所有实现了该接口的类都得修改,影响将非常大。举个例子,Sortable <T>接口以及实现该接口的类SortableNumberCollection和SortableStringColl.

2021-02-24 09:25:09 205

原创 Java泛型你必须知道的知识

一 什么是泛型Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。简单理解就是:泛型指定编译时的类型,减少运行时由于对象类型不匹配引发的异常。其主要用途是提高我们的代码的复用率。我们Java标准库中的ArrayList就是泛型使用的典型应用:public class ArrayList<E> extends AbstractList<E> implements List<E.

2021-02-22 13:17:01 153

原创 数据结构树(Tree)详解

树型结构是一类重要的非线性数据结构。其中以树和二叉树最为常用,直观看来,树是以分支关系定义的层次结构。树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构可用树来形象表示。树的定义和基本术语定义:树(Tree** 是由一个集合以及在该集合上定义的一种关系构成的。集合中的元素称为树的结点,所定义的关系称为父子关系。父子关系在树的结点之间建立了一个层次结构。在这种层次结构中有一个结点具有特殊地位,这个结点称为该树的根结点,或简称树根。术语:节点的度:一个节点含有的子树的个数称为该节点的度;

2021-02-21 09:21:33 3432

原创 每个程序员都应该知道的算法

在学习算法的过程中,我们除了要了解某个算法的基本原理、实现方式,更重要的一个环节是利用big-O理论来分析算法的复杂度。在时间复杂度和空间复杂度之间,我们又会更注重时间复杂度。时间复杂度按优劣排差不多集中在:O(1), O(log n), O(n), O(n log n), O(n2), O(nk), O(2n)二分查找法概念:在计算机科学中,二分搜索(binary search),也称折半搜索(half-interval search)、对数搜索(logarithmic search),是一种在

2021-02-19 15:52:27 146 1

原创 如何避免java项目中的循环依赖问题

前言当我们开发一个Java项目时,我们要做的第一件事就是添加我们需要使用的依赖项,库或框架。为此,我们使用依赖管理工具(例如Maven或Gradle),来管理我们的项目依赖。我们为项目添加的每个依赖项都包含其他依赖项。我们都知道依赖传递这个概念。在许多情况下,项目的依赖传递不会有任何的问题,因为依赖管理工具(Maven或Gradle)很好地解决了不同库之间的版本冲突。但是,在其他情况下,当使用我们的API /库时或者不同的库依赖的同一个库不同版本,这些冲突会产生一些错误。举个例子:图中我们的API

2021-02-03 09:10:59 1441 1

原创 java并发编程-内存模型

java并发编程-内存模型一、前言首先我们需要了解java内存模型与我们经常谈到的Java内存结构(JVM内存结构)并不是同一个概念,这两个概念估计有不少人会混淆,经常面试时在问内存模型时,很多小伙伴会理解为内存结构,这也就导致面试过程中经常答非所问。它们都可以说是 JVM 规范的一部分,但真不是一回事!Java 内存模型,描述的是多线程允许的行为。Java 内存结构,描述的是线程运行所设计的内存空间。(常说的 JVM 内存结构指的就是上文提交到运行时数据区,其中堆、方法区被线程共享,程序计数

2020-12-04 10:41:01 121

原创 Java并发编程-线程基本概念

java并发编程-线程基本概念[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tej0O7ay-1604287982959)(https://raw.githubusercontent.com/wang37444/Graph-bed/master/data/bf01.png)]一、前言首先Java对线程的支持其实是一把双刃剑,虽然Java为我们提供了线程处理的丰富Java库及内存模型支持线程,但同时对开发人员技术提出了更高的要求,我们必须考虑更多的问题比如:执行顺序,线程

2020-11-02 11:34:14 128

原创 ribbon+apollo实现灰度发布

一、前言在一般情况下,升级服务器端应用,需要将应用源码或程序包上传到服务器,然后停止掉老版本服务,再启动新版本。但是这种简单的发布方式存在两个问题,一方面,在新版本升级过程中,服务是暂时中断的,另一方面,如果新版本有BUG,升级失败,回滚起来也非常麻烦,容易造成更长时间的服务不可用。二、Apollo简介Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不...

2019-12-31 12:18:24 666

原创 Java原子操作AtomicInteger

一、问题引入我们有一个自增的场景【data++】,单线程情况下我们的程序能正常运行,但多线程情况可能会出现线程1和线程2都是在操作一个变量data,但是线程1修改了data变量的值之后,线程2看不到修改,一直都是看到自己本地工作内存中的一个旧的副本的值,这样就好导致原子性问题。我们通过一张图来简单描述下多线程情况下的内存模型:在多线程中,所有线程共享主内存,每个线程有自己的工作内存。多个线...

2019-12-31 12:12:27 153

原创 Java的线程池Executors

一、前言有时候我们需要创建大量的线程来执行一些主线程以外的任务,然而频繁的建立Thread会可能占用过多系统资源导致死机或oom。如果能建立一个Thread Pool来管理这些Thread并加以复用,对于我们的系统性能会有很大的改善。二、创建线程池ExecutorService是JDK提供的框架,可简化异步模式下任务的执行。一般而言, ExecutorService自动提供线程池和API来为...

2019-12-31 11:45:50 117 1

原创 推荐一款JVM分析工具HeapHero

HeapHero可视化内存分析工具HeapHero是一款简单的,易用的内存分析工具,无需登录在线生成分析报告。官网地址:https://heaphero.io/heap-index.jsp#header我们模拟一个内存溢出的操作,代码如下:public class TestJvm { public static void main(String[] args) { String s...

2019-11-29 09:01:31 3751

原创 Java虚拟机优化02

1. jvm垃圾回收当我们运行一个程序的时候是需要向系统申请内存资源的,如果我们申请的资源不及时释放就会一直占用系统内存资源,最终将导致内存溢出,所以对内存资源的管理是非常重要了,了解jvm对内存资源的管理前我们先了解下垃圾回收常见的算法。2. Java语言的垃圾回收Java语言中一个显著的特点就是引入了垃圾回收机制,在C/C++语言中,没有自动垃圾回收机制,是通过new关键字申请内存资源,...

2019-11-26 10:49:22 127

原创 Java虚拟机优化01

1. 为什么要优化JVM在本地开发环境我们很少需要去优化JVM,但系统上到生产环境我们经常会遇到诸如:运行的程序突然卡住了,日志不输出;程序CPU或内存突然飙高;莫名的内存溢出错误;以上场景主要是因为对JVM运行及优化机制不了解所造成的。2. JVM运行参数介绍在jvm中有很多的参数可以进行设置,通过优化这些参数的设置可以提高程序的运行效率。jvm的参数大致可以分为三类:1. 标准参数以...

2019-11-26 10:48:12 101

原创 MySQL索引相关整理

4. mysql 索引索引按数据结构分可分为哈希表,有序数组,搜索树,跳表。按作用分类:(1) 主键索引:不解释,都知道。(2) 普通索引:没有特殊限制,允许重复的值。(3) 唯一索引:不允许有重复的值,速度比普通索引略快。(4) 全文索引:用作全文搜索匹配,但基本用不上,只能索引英文单词,而且操作代价很大。按数据存储结构分类(1) 聚簇索引定义:数据行的物理顺序与列值(一般...

2019-10-22 13:51:36 131

原创 apollo部署

apollo部署1.下载工程包进入apollo仓库[https://github.com/ctripcorp/apollo.git]下载最新版本代码;apollo-adminservice-1.4.0-github.zipapollo-configservice-1.4.0-github.zipapollo-portal-1.4.0-github.zip这三个项目含义如下:项...

2019-09-26 08:17:22 1376

原创 docker常用操作

docker常用操作1.启动dockersudo systemctl start docker.service2.获取镜像sudo docker pull hub.c.163.com/library/nginx:latest从 Docker 镜像仓库获取镜像的命令是 docker pull。其命令格式为:docker pull [选项] [Docker Registry 地址[:端...

2019-09-26 08:11:00 91

原创 关于spring boot security设置忽略地址不生效问题

最近在试下微服务改造,出现这样一个问题所有请求都经过spring cloud gateway进行认证授权后再访问后端数据方服务,但有些需要合作机构回调,由于进行了security认证,最终的方案是对回调地址进行忽略auth认证。最终security主要代码如下:@Configuration@EnableWebSecuritypublic class WebSecurityConfig ex...

2019-08-29 08:34:35 13808 2

原创 Spring Cloud Contract实践

1.Spring Cloud Contract简介Spring Cloud Contract是一个总体项目,其中包含帮助用户成功实施消费者驱动合同方法的解决方案。目前,Spring Cloud Contract包含Spring Cloud Contract Verifier项目。2.什么是契约测试契约测试 ,又称之为 消费者驱动的契约测试(Consumer-Driven Contracts,...

2019-08-19 09:06:40 4985 2

原创 ES学习-logstash中配置分词器

一、 前奏这段时间在完善kibana中实现预警机制,通过Sentinl实现。关于sentinl的使用就不做介绍了,这个插件功能还是很强大的,可以实现邮件预警及通过webhook接口的方式实现微信预警。sentinl中对预警数据的筛选是通过ES的DSL查询语句实现的。二、问题场景现在有这么个场景对zk的服务数进行预警,我们建了一个服务实施的通过zk注册中心正常的服务数,然后通过filebeat...

2019-07-18 15:13:35 2872

原创 Slf4j+logback实现日志打印-获取调用者类及方法行数信息

为什么要用slf4j实现日志打印,在阿里的开发规范中有这么一段:【强制】应用中不可直接使用日志系统(Log4j、Logback)中的API,而应依赖使用日志框架SLF4J中的API,使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。SLF4J,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统。...

2019-07-10 16:33:27 9651 4

原创 1.常用数据结构STACK、QUEUE 、ARRAY、LINKED LIST、HASH、 TREE整理

一、前奏最近在看数据结构相关的文章,发现自己对这块的原理还是知之甚少。比如LIST有哪些特点,MAP有哪些特点,HASH及BTREE的使用场景,为什么MYSQL使用最多的是BTREE索引等,了解这些对工作中还是很有益处的。二、数据结构在写数据结构相关实现前我们先要了解下数据结构到底有什么用?Java是一种比较高效的语言,数据结构就是Java这种高效语言的推进剂使我们更加高效实现我们的目标。我...

2019-07-09 10:32:08 1311

原创 Ansible安装及实战

1.ansible简介Ansible默认通过 SSH 协议管理机器,帮助自动化管理工作。安装Ansible之后,不需要启动或运行一个后台进程,或是添加一个数据库.只要在一台电脑(可以是一台笔记本)上安装好,就可以通过这台电脑管理一组远程的机器.在远程被管理的机器上,不需要安装运行任何软件,因此升级Ansible版本不会有太多问题。2.ansible安装$ sudo yum install e...

2019-06-14 17:04:43 939

原创 1.maven生成不同版本jdk包

对于MAVEN项目,如果我们升级jdk版本但有些业务场景又不能升级,这个时候就需要根据不同的环境生成不同版本的jar包。网上很多都是通过profile指定多个版本的jdk,利用classifier引用相应版本的jar,通过maven命令一步生成两个jar,一步生成的方式jar我们反编译编译后发现版本都是一样的。这里我提供一种两部执行生成的方式。1.配置settings.xmlsetting...

2019-06-11 09:45:36 948

原创 4.SpringCloud Gateway获取post请求体(request body)不完整解决方案

Spring Cloud Gateway做为网关服务,通过gateway进行请求转发,在请求到达后端服务前我们可以通过filter进行一些预处理如:请求的合法性,商户验证等。如我们在请求体中添加商户ID(merId)和商户KEY(merkey),通过此来验证请求的合法性。但是如果我们请求内容太长如转为base64的文件存储请求。此时我们在filter获取body内容就会被截取(太长的 Body ...

2019-05-22 17:13:43 11465 2

原创 3.jieba分词+es实现KBQA问答系统

1.jieba分词jieba分词号称是最好的中文分词器,目前Python版本在运维,Java版本很久没有更新了。jieba能实现什么功能呢?我们通过下面的TEST可以看下:我们实现一个例子:如:系统提问“UA融易贷利率是多少”@Test public void testReadJiebaDict(){ /**JiebaSegmenter:分词器,WordDictionary:词典*...

2019-05-14 11:04:52 2880

原创 2.Elasticsearch IK Analysis(分词器)

1.ik分词器简介IK分词器的两种分词模式:模式备注ik_max_word会将文本做最细粒度的拆分,比如会将"中华人民共和国国歌"拆分为"中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌",会穷尽各种可能的组合;ik_smart会做最粗粒度的拆分,比如会将"中华人民共和国国歌"拆分为"中华人民共和国,国歌"。2.I...

2019-05-13 09:16:22 180

原创 1.Elasticsearch集群搭建

1.Elasticsearch简介ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。2.下载安装包这里我们下载的是ela...

2019-05-08 19:02:48 410

原创 1.logstash实现敏感信息脱敏及超长字符截取

我们通过filebeat收集的日志通常没有进行敏感信息的脱敏工作,以及一些base64超长字符如果不做处理,存储到es及在kibana展示也会耗费性能。针对这两个问题我们可以进行如下配置:1.设置超长字符截取进入logstash安装目录,config文件夹下新建文件logstash_to_es相关配置如下:filter {if [type] == "filebeat" { grok ...

2019-05-07 09:33:29 4050

原创 2.Spring Cloud Eureka详解

1.Eureka简介Eureka是Netflix开发的服务发现组件,本身是一个基于REST的服务。Spring Cloud将它集成在其子项目spring-cloud-netflix中,以实现Spring Cloud的服务发现功能。本文讲解的Spring Cloud Finchley.SR2所使用的Eureka版本是2.0.2.RELEASE,还是比较新的一个版本。2.Eureka与zooke...

2019-05-07 09:15:33 198

原创 idea常用操作

1. 禁止自动导入引用包 取消Import包进入settings -> Editor -> General -> Auto Import,配置禁止自动导包:如需自动导包:2. 配置Maven插件进入settings -> Build Tools -> Maven,配置自己的本地仓库地址及settings文件地址。当新开工作区间时,需要配置全局maven...

2019-04-28 12:39:23 353

原创 2.Hadoop Shell命令大全

1.Hadoop Shell命令命令详解示例cat将路径指定文件的内容输出到stdouthadoop fs -cat /hello.txtchgrp改变文件所属的组。使用-R将使改变在目录结构下递归进行hadoop fs -chgrp uaren /wxtchmod改变文件的权限。使用-R将使改变在目录结构下递归进行hadoop fs -chmod ...

2019-03-20 14:58:10 167

原创 1.Hadoop全分布式集群搭建及Hadoop相关操作

前面写过一篇基于Dockerfile的Hadoop集群安装,但是在安装过程中遇到了很多问题(如:权限,端口与宿主机间访问等),本篇主要基于VM虚拟机实现Hadoop集群安装。1.相关环境软件版本CentOSCentOS Linux release 7.5Jdkjdk-8u201-linux-x64.tar.gzHadoophadoop-3.0.0.tar....

2019-03-15 11:46:32 350

原创 Hadoop详解及基于Dockerfile搭建Hadoop集群

Hadoop简介Hadoop是Apache开源组织的一个分布式计算开源框架,提供了一个分布式文件系统子项目(HDFS)和支持MapReduce分布式计算的软件架构。Hadoop主要功能是为我们提供了一个可靠的共享存储和分析系统。HDFS(Hadoop Distributed FileSysterm)实现数据的分布式存储,MapReduce(计算由map和reduce两部分组成)实现数据的分析和...

2019-03-15 08:35:21 3882 4

原创 【Docker】5.Docker构建微服务镜像及持续集成

写了一个demo主要实现如下流程:1.开发人员将代码提交至github。2.通过jenkins触发构建,通过maven的docker插件构建微服务的docker镜像。3.将镜像push到harbor私库,并实现镜像分发部署。1. 安装Jenkins通过docker镜像中心下载docker镜像,本文选择的镜像jenkins镜像版本为2.130。1) 下载docker镜像$ sudo d...

2019-02-28 11:23:04 837

原创 【Docker】4.Docker私库Registry及Harbor搭建

**1. 获取Registry镜像 **$ sudo docker pull registry2. 启动Registry$ sudo docker run -d -p 8100:5000 -v /opt/registry:/var/lib/registry --restart=always --name registry registry:latest[wxt@localhost ~...

2019-02-22 16:41:43 3598

原创 【Docker】3.基于Dockerfile创建自己的镜像

Docker镜像的创建方式有使用docker commit 方式创建及使用Dockerfile的方式创建镜像,这里我们使用Dockerfile的定义文件和docker build命令来构建镜像。在Docker上运行java程序首选我们得有相应的jdk环境,本文我们基于Centos7及jdk8创建jdk镜像。1. 下载Centos7镜像$ sudo docker pull centos:7...

2019-02-21 15:08:15 684

dubbo分布式项目

dubbo分布式项目,zookeeper+dubbo+maven+springmvc+mybatis

2016-05-11

北大青鸟人力资源管理系统

北大青鸟人力资源管理系统完整代码,包含PPT、项目文档。

2011-11-07

办公自动化管理系统优秀论文

毕业答辩办公自动化管理系统的优秀论文,值得下载

2010-01-11

Accp 5.0 s2.Net项目MyGame

Accp 5.0 s2.Net项目MyGame,资源绝对可靠 我自己做的质量绝对保证

2008-11-04

北大青鸟项目新闻阅读器

北大青鸟项目新闻阅读器我自己做的 还行(部分功能)

2008-10-23

accp5.0s2课件

课上讲解的各章节的实例Tag:Accp5.0S2C#ASP.NET用户

2008-09-18

计算机基础

计算机基础测试题及答案

2008-03-16

计算机测试题

计算机测试题高薪技术考试

2008-03-12

空空如也

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

TA关注的人

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