自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xudong的博客

每天进步一点点

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

原创 25天计划:(二)接口、lambda表达式和内部类

1 接口1.1 Comparable接口对于比较大小和数组排序,对象实现该接口还是很有必要的。看第一种用法。class Student implements Comparable{ int age; String name; public Student(int age, String name) { this.age = age; this.name = name; } @Override public int

2020-07-17 16:00:11 240

原创 springcloud(七)------zuul 网关

网关是什么是一个网络整体系统中的前置门户入口。请求首先通过网关,进行路径的路由,定位到具体的服务节点上。是进入服务的统一大门。网关分类api开放网关开放api(openApi) 企业需要将自身数据、能力等作为开发平台向外开放,通常会以rest的方式向外提供,最好的例子就是淘宝开放平台、腾讯公司的QQ开发平台、微信开放平台。 Open API开放平台必然涉及到客户应用的接入、API权限的管理、调用次数管理等,必然会有一个统一的入口进行管理,这正是API网关可以发挥作用的时候。微服务网关微服务的概念

2020-05-09 15:48:20 356

原创 全文搜索引擎 solr------(六) 基于solr 8 搭建 solrCloud 集群

1 搭建单机版的solr在tomcat 上部署,具体参考下面的linux上tomcat 部署solr8windows 上solr8整合tomcat8

2020-03-13 13:41:33 682 1

原创 从线程池入手,分析背后的实现原理

前言java 并发编程一直是看起来高大上的东西,写写记录一下,不知道从哪里说起,就从线程池的实现来深入分析一下,可能这不是一篇概况性很强的文章,许多类和方法以前都没用过,我就从自己的角度出发,从一个线程池的实现类入手,深入分析内部的设计和实现,我们不仅仅是学习它的用法,也了解它内部的精妙的设计。1. 线程池的实现原理1.1 ThreadPoolExecutors这个常用的实现类,它的继承关...

2019-12-27 17:00:08 225

原创 socket 基础演示

前言socket 为网络通信提供了一种机制,分为TCP 和UDP 两种协议,为了进一步巩固netty,现在先记录下TCP 的主要内容。1 使用多线程多个连接server 服务端package com.socket;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;i...

2019-11-14 16:42:02 212

原创 高并发 限流特技

前言在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;而降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉,待高峰或者问题解决后再打开;而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服务(如评论、下单)、频繁的复杂查询(评论的最后几页),因此需有一种手段来限制这些场景的并发/请求量...

2019-11-13 18:09:14 285

原创 高并发 服务雪崩、Hystrix熔断、Hystrix降级

前言听起来这几个词挺高大上的,以前都是盲区,现在我们好好梳理下这几个概念,熔断和降级是在一起使用的。先看个图订单服务和会员服务不在一个服务器,订单服务会调用会员服务,当会员服务返回阻滞时,订单服务的线程会阻滞,如果请求过多,服务器的线程都被占用了,这是我们调用 查询订单服务就会没有线程用来处理,该服务器所有的服务都将不可用,这就是服务雪崩。服务熔断为了解决上述问题,服务熔断的思想被提出...

2019-11-11 17:57:40 528

原创 分布式解决方案------分布式锁

前言分布式锁是由于集群的存在而产生的问题,常见的有三种解决方案基于数据库实现分布式锁基于redis基于zookeeper基于数据库的性能太差了,这里就简单实现下后两种redis 实现分布式锁redis 实现分布式锁的原理是setnx,设置值如果成功就返回1,否则就是0具体实现:先定义个接口:public interface RLock { public String...

2019-11-09 18:03:25 306

原创 分布式解决方案------session一致性问题

前言分布式session 问题造成的原因是因为集群造成的。常说的解决方案有6种:ip_hash: nginx 分发服务的时候,绑定ip,但这样就没有负载均衡效果了tomcat 内置的session 同步,这个有延时,没有人用,很垃圾使用cookie 代替session,也没有人用,太不安全使用 数据库同步session ,效率太差了,也不用spring -session 框架同步...

2019-11-03 15:19:32 318

原创 不相交集类应用 生成迷宫

package demo.ch1;import javax.swing.*;/**Created by Administrator on 2019/9/27.*/public class CollectS extends JFrame{Demo [] S = new Demo[25];;// 构造初始的,先默认都加上下和右墙public CollectS() {for (in...

2019-10-12 21:55:44 301

原创 全文搜索引擎 solr------(五)solr8 在tomcat部署并创建实例

前言前边我们对solr 的操作都是在它自带的 jetty 服务上 进行的,现在在tomcat 上进行一下部署,这个过程可能有点繁琐,弄不好就报错。在我们已经安装好tomcat 的前提下,进行如下操作。简单配置1 复制启动目录将 下载好的 solr8.2.0 解压,然后进入 solr-webapp 目录,将webapp复制到tomcat 的webapps目录,重命名为 solr2 ...

2019-10-12 14:34:38 711

原创 全文搜索引擎 solr------(四)solrj 实现java 代码操作

前言经过前面的学习,我们知道了solr 基本配置和概念,下面看看java 里边是怎么实现的,在这个之前,要先把我们的solr服务开启。引入jar包我在springboot 项目里测试的,所有只需要引入一个 starter组件就可以了,里边已经包含了solrJ <dependency> <groupId>org.springframework.boot<...

2019-10-11 15:18:14 334

原创 全文搜索引擎 solr------(三)solr8高级查询

偷个懒,就直接上图了,

2019-10-11 14:12:53 464

原创 全文搜索引擎 solr------(二)solr8 两种中文分词器配置

前言啥也不想说,脑海里只有羊驼,solr版本和中文分词器版本很难兼容,maven 依赖也没有,还的自己添加。下载分词器jar包先吐槽一下: IKAnalyzer2012FF_u1.jar 和 IKAnalyzer 3.2.8 这样的都不行,各种报错让你怀疑人生,就是因为版本太旧了,我们用这个下载地址:6.5高版本分词器下载解压后目录包括两个jar 包和三个文件。jar 包放到这个位...

2019-10-10 15:13:32 1785

原创 全文搜索引擎 solr------(一)solr8 最新版本安装配置

前言老规矩,写直接说点废话,最近换工作了,新的项目组是大数据项目,去了才发现比较苦的是就我一个java,拿到java代码后心中一万头羊驼在翻腾,没人将项目结构,只能自己摸索了,听他们说就是需要一个能够把java端架构摸透的人,我。。。。。。话不多说了,发现里边好多东西没接触过,其中就有solr,这就开始了下边的学习。solr是什么?概念的东西自行百度,它是基于lucene的封装的,建议先...

2019-10-10 14:45:18 3332 1

原创 spring------FactoryBean自定义实例化bean的构造方式

前言今天我们实现一个小的功能,spring中通过配置bean标签,然后就可以加载解析了,但由的时候,某个bean我们希望通过自己定义的方法来构造对象,这样我们可以加入自己的一些扩展。创建实体类 Teacherpublic class Teacher { private String nane; private int age; public String getNan...

2019-09-21 14:14:56 1052

原创 spring源码解析------xml方式解析加载bean

前言最近有点顿悟,可能是面试的时候经历的多,感觉之前的学习有点浅尝辄止,对于底层的东西自己没有动手实现,现在把spring 以及后续的springboot进行一下梳理,我们首先解析源码然后手写实现过程,感受一下其中的趣味。我将通过两种方式说明:BeanFactory: bean组件ApplicationContext:context组件,该组件扩展了bean组件,是我们常用的。本文...

2019-09-21 13:40:30 381

原创 spring事件传播机制------基于观察者模式

前言这几天看sping和springboot的一些高级应用,有所感悟,spring框架发展已经将近20年了,还像一个小伙子一样年轻,我们可以看到,它在不断地的扩展和更新,二以前的struts等,早已是日落西山,基本没人用了,那么,为什么,就是因为spring框架设计的好,使得扩展成为了可能,同时容易维护,现在想一个问题,我们的项目可以维护20年吗?显然这是不太可能的,几年的项目就改的稀巴烂,所以...

2019-09-16 00:54:52 317 2

原创 简谈swagger的注解说明

swagger通过注解表明该接口会生成文档,包括接口名、请求方法、参数、返回信息的等等。 • @Api:修饰整个类,描述Controller的作用 • @ApiOperation:描述一个类的一个方法,或者说一个接口 • @ApiParam:单个参数描述 • @ApiModel:用对象来接收参数 • @ApiProperty:用对象接收参数时,描述对象的一个字段 • @ApiRespo...

2019-08-30 14:32:32 340

原创 oracle 整理系列(六)------触发器

语法定义:特定事件出现时,自动执行的储存过程;不会被显示调用第一个Create Or Replace Trigger tri_1After Update On subject Begin If updating Then dbms_output.put_line('触发器一执行修改'); End If; End; 测试:Update subject Set ...

2019-08-30 14:26:41 121

原创 oracle 整理系列(五)------存储过程、函数、游标

1 创建过程CREATE OR REPLACE PROCEDURE getStuName1 IS --方法名类似sName stu.studentname%TYPE;BEGIN SELECT studentname INTO sName FROM student WHERE ID=1; dbms_output.put_line('学生姓名为'||sName);END;...

2019-08-30 14:18:12 167

原创 oracle 整理系列(四)------事务语法、循环语句,异常信息等

1 事务创建事务BEGINUPDATE cus SET balance=balance-500 WHERE NAME='张三';UPDATE cus SET balance=balance+500 WHERE NAME='李四';COMMIT;EXCEPTION WHEN OTHERS THEN dbms_output.put_line('转账失败'); ro...

2019-08-30 13:56:39 656

原创 oracle 整理系列(三)------一些内部函数

一、数值型函数返回绝度值 abs()SELECT ABS(100),ABS(-100) FROM dual;sign(),返回正负数,正:1;负:-1;0:0select sign(100),sign(-100),sign(0) from dual;ceil()返回大的较小整数,floor()返回小的较大整数,round()四舍五入SELECT CEIL(4.9),CEIL(-4.9...

2019-08-30 11:44:54 201

原创 oracle 整理系列(二)------ddl建表操作语言

建表CREATE TABLE student(ID INT PRIMARY KEY NOT NULL,studentNo VARCHAR2(10) UNIQUE NOT NULL,studentName VARCHAR2(20) NOT NULL,sex varchar2(2) CHECK(sex=‘男’ OR sex=‘女’),age INT,birthday DATE,ad...

2019-08-30 11:37:02 130

原创 oracle 整理系列(一)------关于用户,表空间操作

一 用户层面建用户create user xudong identified by 19900727删除用户DROP USER xudong赋予用户权限GRANT CREATE SESSION TO xudongGRANT CREATE ANY TABLE TO xudong赋予角色给某个用户GRANT DBA TO xudong撤销权限REVOKE CR...

2019-08-30 11:23:51 117

原创 快速打包项目

在部署项目要打包的时候,总是要输入命名,很麻烦,现在我们把命令编入bat 文件,单击就可以运行了,很简单新建文本文档,输入一下命名cdD::spring-bootcall mvn cleancall mvn package spring-boot:repackage -pSitpause然后保存成bat文件,就可以了bat批处理命名还不熟悉,以后多多学习...

2019-08-30 10:33:05 245

转载 杂谈------数据库sql语句中文排序问题

在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序SCHINESE_PINYIN_M 按照拼音排序,系统的默认排序方式为拼音排序举例如下:表名为 dept ,其中name字段是中文,下面分别实现按照单位名...

2019-08-22 11:37:29 537

转载 Spring定时任务:cron表达式详解

语法Cron表达式是一个字符串,从Spring4.x版本后,不再进行年份的支持。该字符串以5个空格隔开,分为6个域,每一个域代表一个含义。语法如下:seconds minutes hours daysOfMonth months daysOfWeek有兴趣的同学可以参考Cron表达式解析类:org.springframework.scheduling.support.CronSe...

2019-08-09 09:43:20 568

转载 redis系列之(四)Redis事务

本文是转载自 https://www.cnblogs.com/DeepInThought/p/10720132.html

2019-07-25 13:45:33 103

原创 springcloud(六)------HyStrix 容错机制

前言现在思考一个问题,如果调用的远程服务挂了,我们的消费端岂不是也要挂?这是绝对的不许的,HyStrix 容错机制 为我们提供了解决方法,通过服务降级,处理异常情况,并返回自己定义的结果。HyStrix 具备了服务降级、服务熔断、线程隔离、请求缓存、请求合并以及服务监控等强大功能。修改 客户服务端增加代码,模拟超时,这个时候 消费端接受不到返回的信息,就会报错,显示 timeout,...

2019-07-24 10:33:06 187

原创 springcloud(五)------Feign 组件消费

前言上一篇 使用Ribbon ,这一节我们聊聊Feign,它自带负载均衡,让我们调用服务可以像调用本地方法一样,通过几个注解搞定。我们以上一篇的基础改动依赖增加依赖<!-- feign 申明式调用服务客户端,基于ribbon,自带负载均衡 ,只需要定义接口然后申明接口,用接口调用服务--> <dependency> <...

2019-07-24 10:06:10 166

原创 springcloud(四)------Ribbon负载均衡

前言在前一篇介绍了消费者调用,调用方式是通过loadBalancerClient ,这样做自己选择服务,然后 得到 ServiceInstance 对象,再用 restTemplate 发送调用,显得有些麻烦,ribbon 负载均衡的简化了这些,只需要小小的改动就行了。我就在上一篇的基础上改了,复制了一份,命名为 eureka-consumer-ribbon添加依赖在pom 基础上,追加依...

2019-07-24 09:51:07 124

原创 springcloud(一)------简介

引言具体介绍这篇文章很好,引用过来了http://developer.51cto.com/art/201811/586513.htm先看看这个然后脉络会清晰一些。Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单...

2019-07-18 17:28:13 180

原创 springcloud(三)------服务消费者

1 创建 消费者创建springboot,命名为:eureka-consumer,引入主要依赖<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-sta...

2019-07-18 17:25:46 152

原创 springcloud(二)------ Eureka 服务治理,服务注册与发现

一 创建“服务注册中心”1 创建eureka-server,作为服务器创建一个基础的Spring Boot工程,命名为eureka-server,并在pom.xml中引入需要的依赖内容<dependencies> <dependency> <groupId>org.springframework.boot</g...

2019-07-18 17:04:34 158

原创 KafKa(三)------基于kafka的日志收集

前言针对web服务集群方式部署的应用,查看日志太麻烦,这个时候可以将日志推送到kafka,然后在通过kafka以统一接口服务的方式开放给各种消费者,kafka高吞吐量的特点,十分适合。很多公司现在做统一日志处理平台的方案就是收集重要日志到kafka中,然后再导入Elasticsearch, HDFS,Strom 等具体日志数据的消费者中,用于进行实时的搜索分析,数据统计等。一 log4j 收集...

2019-07-12 12:04:14 7901

原创 KafKa(二)------spring ,springboot 注解 代码实现生产和消费消息

前言上一篇说了kafka 的安装配置https://blog.youkuaiyun.com/houdezaiwu1/article/details/94579120忘记说基本概念了,补充一下:Broker kafka集群中的一台或多台服务器,越多吞吐量越大Topic kafka发送的消息都有一个类别,消费者制定topic 消费Partition 分区,一个topic 可以分为多个区,每个分...

2019-07-11 16:49:25 1513

原创 KafKa (一)------下载配置

安装 zookeeperkafka的集群是由 zookeeper管理的,安装这个是第一步具体步骤: zookeeper简单配置安装下载kafka下载地址:https://www.apache.org/dyn/closer.cgi?path=/kafka/2.0.0/kafka_2.11-2.0.0.tgz下载完解压就可以了,特别注意,文件路径不能有空格,不然启动会报错,找不到主类。如下...

2019-07-03 17:45:44 362

原创 zookeeper简单配置安装

zookeeper 用来干什么zookeeper是 apache 下hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。下载官网下载 https://zookeeper.apache.org/releases.html这里我们选择zookeeper-3.4.12版本进行下载下载好以...

2019-07-03 16:25:55 251

原创 设计模式(七)------抽象工厂模式

前言抽象工厂模式相对于工厂方法模式进行了一些改进,使得增加新的类型的时候,不用修改工厂类,只要增加一个新的实现类,符合 开闭原则。代码发送信息接口public interface Sender { public void send();}发送短信和邮件的实现类public class SendMsg implements Sender { @Override ...

2019-07-02 12:10:19 132

空空如也

空空如也

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

TA关注的人

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