- 博客(69)
- 资源 (5)
- 收藏
- 关注
原创 eureka-server 的编译、启动和调试
eureka server 的编译、启动和调试编译1.gradle 版本必须是3.x及以下在 eureka/gradle.properties 中填入一下配置,指定 gradle 的版本distributionUrl=https\://services.gradle.org/distributions/gradle-3.5.1-bin.zip2.指定阿里云的 maven 仓库作为远程仓库在 eureka/build.gradle 中配置 maven 仓库,一共两处需要配置maven {
2022-03-21 20:50:58
711
翻译 WeSocket 代理(WebSocke Proxying 英文文档翻译)
WeSocket 代理要将客户端和服务器之间的连接从HTTP/1.1转换为WebSocket,需要使用HTTP/1.1中可用的协议切换机制。从这里有个微妙之处:由于“Upgrade” 是一个hop by hop头部,所以它不能被传递到被代理的服务。对于正向的代理,客户端可以通过 CONNECT 方法来规避这个问题。然而这在反向代理中并不可行,这是因为我们必须对代理的服务进行特殊的处理,然而客户端并不能意识到代理服务的存在。从1.3.13版本开始,nginx 实现了一个特殊的操作模式,它能够在客户端通过
2021-09-13 19:33:49
321
翻译 HTTP 健康检查(HTTP Health Check)
Http 健康检查通过发送周期健康检查,监视 upstream 组中 HTTP 服务的健康状态。包括有NGINX Plus 的自定义主动健康检查。简介NGINX 和NGINX Plus 能够持续的检测 upstream 中的服务,剔除宕机的服务,还可以优雅的将恢复的的服务添加到负载均衡组群中。前提对于被动健康检查,你需要使用开源 NGINX 或者 NGINX Plus对于主动健康检查和实时活动监视仪表板,你需要使用 NGINX Plus一个HTTP upstream 负载均衡群组被动健康
2021-09-11 19:44:43
4034
原创 使用PageHelper导致查询缓慢的问题
由于业务需要,需要在原来的项目中增加分页查询的功能,就用到啦PageHelper,对于绝大多数的查询都能在可以接受的时间内查到但是有一个查询却慢的离谱需要四秒以上才能返回数据,打日志发现耗时也不是在执行count以及查询时发生的,而是在执行count之前有一个3到4秒的中断。解决方案从网上搜的解决PageHelper的方法大致有两种:修改数据库表的数据库引擎为MyISAM创建索引表,用来进行count查询但这两种方法明显不适合我们,我们的数据库表中数据并不多(远未达百万),并且我们的性能问
2021-03-19 15:36:23
3453
5
翻译 Spring Cloud OpenFeign(中文翻译文档)
3.0.1本项目通过自动配置和绑定到spring环境和其他spring编程模型习惯用法为OpenFeigh提供共针对spring boot应用的整合。1. 声明式REST客户端:FeignFeign是一个声明式web服务客户端。它使得编写web服务客户端更加容易。使用Feign创建一个接口并对其进行注解标注。它包含可插入式注解支持,包括Feign注解和JAX-RS注解。Feign同样支持可插入式编码器和解码器。Spring Cloud为其增加了对Spring MVC注解和与Spring Web默认的H
2021-02-24 13:20:21
2346
原创 eureka的HealthChecks(健康检查)
eureka的默认的健康检查方式是heartbeat(心跳)。但是默认的heartbeat方式只会在注册时进行向eureka server(服务注册中心)发送eureka client的健康信息。这样一来就导致了两个问题:eureka客户端的健康状态发生变化时在服务注册中心对应实例的状态不能得到更新。比如我们的一个eureka客户端的运行,这时在注册中心却不能意识到该服务已经停止。eureka客户端运行正常,但是它所依赖的其他资源却挂掉了。比如Mysql数据库或者依赖的其他接口挂掉了。这时使用默认的h
2021-02-15 21:34:19
4192
原创 [Java] 平衡二叉树AVL
package com.mfs.rmclient;import java.util.Scanner;import java.util.Stack;public class Main { public static void main(String[] args) { Main main = new Main(); TreeNode avl = main.createAVL(6); System.out.println(avl); }
2020-10-26 22:43:13
96
原创 MyBatis配置文件详解
主要元素在MyBatis的核心配置文件中,<configuration>元素是配置文件的根元素,其他元素都要在根元素内进行配置。在进行配置时必须按照<properties>、<settings>、<typeAliases>、<typeHandlers>、<objectFactory>、<plugins>、<...
2020-04-08 10:54:36
342
原创 [Java]深入底层聊HashMap——深入底层的最好开始
本想按照ArrayList、LinkedList、HashSet、LinkedHashSet、TreeSet、HashMap、LinkedHashMap、TreeMap的顺序介绍容器类的底层的,但是考虑到HashSet其实就是HashMap的一部分(仅仅使用了HashMap的键,其值统一使用一个Object对象),所以我们就先行介绍HashMap,这样我们再介绍HashSet时就简单的多,而且也更...
2020-04-06 10:33:27
131
原创 [Java]深入底层聊LinkedList——简单全面,深入底层的最好开始
书接上文ArrayList,我们话不多说直接开整。LinkedList我们在学习容器类List的时候都知道,ArrayList适用于读,在查询指定内容时要比LinkedList快的多。而LinkedList则适用于写,在向容器中插入内容时要比ArrayList快的多。是什么导致了这两者之间的不同呢?那肯定是底层实现喽。从上一篇文章我们了解到,ArrayList底层是使用数组进行实现的,我们在...
2020-04-03 11:12:36
854
9
原创 [Java]深入底层聊ArraysList——简单全面,深入底层的最好开始
写博客也有一段时间了,也上过两次推荐。但是总感觉自己的写博客和那牛人大神的博看还有还大差距,看别人的博客时发现别人的博客的技术水平很高,但是自己去写的时候却很难发现那些深奥的问题。我自己反思觉得主要时因为我开发经验不足,遇到的问题过少所导致的。这个问题不是一天两天能够解决的,我只能是多阅读牛人的博客,寻求真正的项目机会,在实战中积累知识、发现问题。但这并不意味着在这段时间我就放弃写博客了。就读者...
2020-04-02 20:57:41
986
4
原创 [Java]多线程:共享资源同步——不认真看你会后悔的
共享资源同步再进行多线程开发时最令人头痛的问题估计就是对共享资源的控制了吧,今天就让我们谈一谈这个问题吧。共享资源顾名思义就是需要被多个线程使用的资源,但是很多情况下我们是不能允许多个线程同时使用这个资源的。这往往会产生令人意想不到的问题。就比如下面这个例子:package com.mfs.thread;import java.util.concurrent.ExecutorServic...
2020-03-27 08:59:16
3136
7
原创 [Java]三分钟入门多线程
并发对学习编程的人来说可谓是一道坎,迈不过这道坎以后学习更加深奥的东西也只是学其皮毛,难有大成。我就是当时没有打好基础,最后学习Java web、Java框架的时候对这些东西很难有深刻的理解,所以我不得不回头来恶补基础。今天我们就来谈谈并发那些事。并发并发就是将程序划分为多个任务,每个任务可以在同一时间内同时执行,与顺序执行相比大大缩短执行的时间。在多处理机系统中情况确实如上所属,所有的任务...
2020-03-24 10:59:22
652
3
原创 [Java]排序会这些就够了
排序是在开发过程中经常要面临的操作,很多复杂的问题往往能够通过将序列排序而变得更加简单。一个好的排序算法往往能节省大量的时间和空间资源。由于待排序的记录数量不同,时的排序过程中使用到的存储器不同 ,可将排序方法分为两大类:内部排序,指的是待排序记录全部存放在计算机随机存储器中的排序过程;外部排序,指待排序记录数量非常大,一次不能全部放到内存中,需要对访问外存中的记录进行访问的排序过程。内部排序...
2020-03-21 15:06:30
2086
9
原创 [Java]还在用360压缩吗?自己写一个吧
Java中的I/O支持读写压缩格式的数据流,我们可以对其进行封装以达到压缩和解压缩的目的。这些类并不是从Reader、Writer继承来的,而是属于InputStream、OutputStream继承体系的一部分。也就是说他们面向的是对字节的操作。如果我们必须面向字符进行操作,可以使用InputStreamReader、OutputStreamWriter进行很方便的转换。压缩类功能...
2020-03-20 10:17:17
617
原创 [Java]内存映射文件
我们要读取或者修改的文件过大而不能放入内存时,使用内存映射文件就能帮我们来进行修改和读取。 这时我们完全可以假定整个文件已经被放入内存,而且完全可以把它当作一个很大的数组来访问package com.mfs.io;import java.io.File;import java.io.FileNotFoundException;import java.io.IOException;im...
2020-03-19 19:01:13
540
1
原创 [Java]动态代理
题目:使用动态代理编写一个系统实现事务,其中,代理在被代理的调用成功时(不抛出任何异常)提执行提交,而在其执行失败时执行回滚。你的提交和回滚都针对一个外部文本文件,该文件不在Java异常的控制范围之内。你必须注意操作的原子性。package test;import java.io.File;import java.io.FileReader;import java.io.FileWrit...
2020-03-06 19:51:05
272
原创 [Java]八皇后问题
package tree;import java.util.LinkedList;public class Four { static int n = 8; static LinkedList<Location> res = new LinkedList<>(); public static void four (int i) { ...
2020-03-05 14:40:33
213
原创 [Java]已知树的前序序列和中序序列创建二叉树
package tree;import java.util.LinkedList;public class Four { static int n = 8; static LinkedList<Location> res = new LinkedList<>(); public static void four (int i) { ...
2020-03-05 11:05:42
271
原创 [Java]求幂集
package tree;import java.util.ArrayList;import java.util.LinkedList;import java.util.List;public class Mi { public static List<Integer> a = new ArrayList<>(); public static L...
2020-03-04 16:30:05
438
原创 Cannot find AVD system path. Please define ANDROID_SDK_ROOT
使用Android Studio创建自己的第一个虚拟器的时候发生了这个错误。从网上查了很多解决办法都不管用,而且几乎所有的中文博客给出的解决方法都是配置ANDROID HOME或者ANDROID SDK ROOT环境变量,这全是错误的,以后请看到这种的果断给差评!!!Android studio是不需要这样定义的,因为他的emulator是置于SDK内部的,这时他必须自动找到SDK位置,不需要用环...
2020-03-04 09:45:04
589
1
原创 [Java]广义表
package glist;import java.util.List;import java.util.Scanner;public class GList { static Scanner sc = new Scanner(System.in); public static ListNote createGList() { Note head = n...
2020-03-03 21:49:52
248
原创 [Java]赫夫曼编码
对某一字符串的最短二进制编码称为赫夫曼编码。package tree;import java.util.Stack;public class HuffmanTree { public static int[] min (Note[] note,int n) { //选出所有树中权值最小的两个 int min1 = Integer.MAX_VALUE - 1...
2020-02-28 17:22:52
155
原创 [Java]赫夫曼树
赫夫曼树又称最优二叉树:每个叶子节点带权值为wi,则树的带权路径长度最小的二叉树称为最优二叉树。package tree;public class HuffmanTree { public static int[] min (Note[] note,int n) { int min1 = Integer.MAX_VALUE - 1; int j =...
2020-02-28 13:39:42
114
原创 [Java]正则表达式
创建正则表达式的模式对象使用Pattern.compile()静态方法创建Pattern对象,然后再使用Pattern对象的matcher()方法产生一个Matcher对象。Matcher类中提了大量的用于模式匹配的方法。Pattern pattern = Pattern.compile("//w"); //compile的参数是字符串形式的正则表达式Matcher matcher = ...
2020-02-25 22:49:16
136
原创 [Java]异常丢失
package test;import java.io.IOException;public class MyExceptionTest { public static void f () throws MyException{ throw new MyException(); } public static void f2 () throws My...
2020-02-24 16:53:28
155
原创 [Java]异常链
在捕获异常后抛出新的异常,并把原来的异常信息保留下来,这被称为异常链。保留原来的异常信息我们需要用到Trowable的cause属性,但是除了Error、Exception和RuntimeException外都,没有提供带cause参数的构造器。像这种没有带cause参数的构造器的异常我们在添加原始的异常信息时需要使用initCause()方法,下面我们以一个动态添加fields的例子来展示一下...
2020-02-24 14:40:41
188
原创 线索二叉树——Java
package tree;import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;import java.util.Stack;public class Tree { /* * 线索化二叉树,中序 * */ public static Note tread...
2020-02-18 15:41:25
164
原创 二叉树的创建和遍历——Java
package tree;import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;import java.util.Stack;public class Tree { /* * 创建树,前序 * */ public static Note createTr...
2020-02-17 23:29:07
164
原创 持有对象——容器类
分类Java的容器类分为Collection和Map两种类型Collection:描述了一个集合的概念,根据不同的需求又提供了不同的实现。List 集合必须按照插入的顺序保存对象;Set集合中不能有重复元素;Queue集合按照 队列的规则进行元素操作。Map:map中保存的是“键值对”对象,它允许使用者通过对象(键)来查找对象(值)。Collection添加元素Collectio...
2020-02-16 21:13:50
202
原创 字符串模式匹配——KMP算法——Java
package string;import java.util.Scanner;public class Kmp { /* * 求next数组 * */ private static int[] getNext(String s) { int []next = new int[s.length()]; int i = 0;...
2020-02-13 19:11:06
158
原创 字符串模式匹配——回溯法——Java
设字串长度为m1、用子串的第一个字符依次与主串的字符作比较2、如果相同,则用子串的下面的字符与主串中当前比较字符接下来的m-1个字符依次比较,直到比较结果不同或者子串后的所有字符比较完毕2-a、如果子串中的所有字符比较完毕,那么说明匹配成功,子串在主串中的位置就是:当前主串的指针 - m + 12-b、如果比较过程中出现字符不匹配,则使主串的指针回溯到主串中与子串第一个字符比较的字符的下一...
2020-02-12 21:57:58
731
原创 迷宫路径求解
主要思路如下:1、入口区域入栈2、判断栈顶区域是不是出口3、如果是则输出栈内全部元素,这就是一个从入口到出口的逆序路线4、如果不是则探索栈顶区域的四个方向5、如果这四个方向均不能走(相邻的区域是墙、探索过不能同行、)已经在路径中,则把这块区域从路经栈中删除,然后执行步骤26、如果这块区域的相邻区域存在可通行的区域,则将第一个可通行的区域入栈,然后执行步骤2ps:这时练习栈的知识点所作...
2020-02-12 19:33:15
539
原创 表达式求解——Java
package stact;import java.util.Scanner;public class EvaluateException { /* * 运算符 * 比较两个运算符的优先级 * */ private static String compare(String first, String second) { if (fi...
2020-02-11 23:09:18
195
原创 汉诺塔问题——java
package stact;import java.util.Scanner;public class Hanoi { private static int step; /* * n表示圆盘的个数 * x、y、z表示三个基座 * */ private static void move(int n, String x, String y,St...
2020-02-11 13:42:14
130
原创 初识泛型擦除
多次听到泛型擦除也看过不少的博客解释,但始终都是看的时候觉得挺有道理一转眼就忘的一干二净,归根结底是没有自己的认识。所以我今天翻看了ArrayList的实现源码来真真正的认识一下泛型擦除。我们都用过ArraryList类,都知道他是一个容器类,并且从javase5之后是一个类型安全的容器类(我们再使用他的时候必须指定这个泛型的具体类型,然后在使用他的过程中也只能向这个容器中添加这个类型的对象,最...
2020-02-10 22:51:47
287
原创 十进制数到8进制数的转换——java
import java.util.Scanner;public class Main { private static int []notes = new int[10000]; /* * 删除栈顶元素并返回 * */ private static int pop (Stact stact) { return notes[-- stac...
2020-02-10 18:01:24
631
原创 多项式加法——java静态链表
多项式的加法import java.util.Scanner;public class PoLynomial { private static Note []notes = new Note[10000]; /* * 打印链表 * */ private static void show(int head) { int i = note...
2020-02-09 22:47:08
168
原创 java实现静态链表
很多高级语言不具备指针的概念,这时在实现链表的功能时就可以使用静态链表来完成。静态链表就是一个使用数组来描述链表的方法,使用数组的下标作为游标来代替指针的概念。每一个节点除了储存数据外还必须有一个字段用来储存下一个节点的下表。这样同样能够实现链表方便插入和删除的特点。下面是使用java来实现静态链表的代码示例import java.util.Scanner;public class St...
2020-02-09 19:58:33
365
原创 微信小程序--对网络请求和本地代码执行异步的处理
在微信小程序的开发过程中我们都见过这样一段代码app.jsindex.js这是我们开发一个项目时微信的开发工具自动帮我们生成的部分代码,当时我就对这段代码中他说的加入callback防止网络请请求在Page.onload之后返回就很疑惑:1、为什么网络请求会在page.onload之后返回,这种情况如果发生了会造成什么样的结果?2、app.js中的userInfoReadyCallb...
2020-01-23 00:04:36
628
云笔记App-Android-客户端-服务端-Mysql-实验报告-安装指导.zip
2020-06-26
超市进销存系统Java代码 + 开发报告 + 数据库代码 + 本地资源
2020-03-13
酒店管理系统+mysql代码+项目报告.zip
2019-07-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人