自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (2)
  • 收藏
  • 关注

原创 centos7 nginx 配置 https反向代理 502 bad gateway

今天配置nginx https 反向代理 居然出现502 bad gateway, 原来是selinux的问题,汗~~nginx配置文件upstream test{ server 127.0.0.1:8082; } server{ listen 443 ssl; ssl_certificate www.example.com.crt; ssl_certificate_key www.example.com.key; server_name www.example.

2020-07-16 18:05:49 3743

原创 CentOS 7 部署tomcat多实例

前提是jdk和环境变量都设置好,如果没有设置请先设置好一、安装 Tomcat前往 Apache Tomcat 下载 apache-tomcat-XXXXXX.tar.gz解压并移到 /usr/local/ 下面:tar -zxvf apache-tomcat-XXXXXX.tar.gzmv apache-tomcat-XXXXXX /usr/local/tomcat部署 tomcat 多实例1、创建实例的目录mkdir /Server/Domain/tomcat_01.

2020-07-16 17:50:14 287

原创 关于报错“More than one fragment with the name [spring_web] was found. This is not legal ...”的解决办法

今天在centos7测试环境部署tomcat项目,结果报错,window idea 开发环境并没有报此错误解决办法web-app标签内增加:<absolute-ordering />具体问题原因我也不多说,请查考==>传送门

2020-07-16 17:31:23 1710

原创 IDEA中通过docker插件部署springboot项目

本人idea 版本:2020.1.11、配置连接打开settings可以看到docker点击+,添加一个连接。我们通过tcp的方式连接到linux或者windows的docker服务。信息配置好后,idea会自动检测。然后会输出connection successful。然后再工具栏选择docker的窗口,点击运行接下来我们在idea上面操作dockerspringboot项目相关首先创建一个简单的springboot web项目通过spring initializr创建,这.

2020-07-15 15:06:14 338

原创 初步认识Dockerfile

1、关于DockerfileDocker可以通过阅读Docker的指令来自动构建映像 Dockerfile。A Dockerfile是一个文本文档,其中包含用户可以在命令行上调用以组装图像的所有命令。使用docker build 用户可以创建一个自动构建,该构建连续执行多个命令行指令。在Docker中创建镜像最常用的方式,就是使用Dockerfile。Dockerfile是一个Docker镜像的描述文件,我们可以理解成火箭发射的A、B、C、D…的步骤。Dockerfile其内部包含了一条条的指令,每一条

2020-07-15 14:46:09 161

原创 Centos7 docker开启远程访问

1、查看docker配置文件路径systemctl show --property=FragmentPath docker 2、加上下面两个参数打开文件vim /usr/lib/systemd/system/docker.service增加参数[Service]ExecStart=ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock3、docker重新读取配置文件,重新启动do

2020-07-15 14:19:01 343

原创 Centos7 开放及查看端口

开放端口开放80端口firewall-cmd --zone=public --add-port=80/tcp --permanent关闭80端口firewall-cmd --zone=public --remove-port=80/tcp --permanent配置立即生效firewall-cmd --reload查看防火墙所有开放的端口firewall-cmd --zone=public --list-ports关闭防火墙如果要开放的端口太多,嫌麻烦,可以关闭防火墙

2020-07-15 13:58:49 255

转载 微服务概念 概念提出者Martin Fowler的译文

微服务有关这个新的技术架构术语的定义“微服务架构”这个术语最近几年横空出世,来描述这样一种特定的软件设计方法,即以若干组可独立部署的服务的方式进行软件应用系统的设计。尽管这种架构风格尚无精确的定义,但其在下述方面还是存在一定的共性,即围绕业务功能的组织、自动化部署、端点智能、和在编程语言和数据方面进行去中心化的控制。2014年3月25日作者:James Lewis是ThoughtWorks首席咨询师,而且是该公司的技术顾问委员会成员。James对于采用相互协作的小型...

2020-07-10 17:08:28 4733

原创 IDEA 返回上一步,回到下一步 冲突 快捷键设置

idea 本身的上一步下一步快捷键和其他软件有冲突,所以改下上一步下一步的快捷键这里我增加了上一步下一步的快捷键file–>settingskeyMap这里我增加了不常用的快捷键组合back:alt+windowsforward:ctrl+windows...

2020-06-28 17:54:54 24044 1

原创 Nginx 更新静态页面 不生效

今天更新了一个用Nginx做反向代理的vue做前端的web应该。发现更新完vue页面之后,重启nginx或者nginx重新加载,静态页面也没有更新过来旧的Nginx配置这样配置更新静态页面是有问题的#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid log.

2020-06-24 00:10:22 10330

原创 Nginx部署vue 静态项目 刷新404问题

之前写了一篇不是nginx部署vue静态项目的文章=>传送门发现刷新的时候会出现404问题之前的Nginx配置如下server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root D:/police/terminal-client; inde.

2020-06-23 17:44:00 1086

转载 Fabric CA环境的集成

同样疫情期间的学习Fabric,参考网上大神文章一步步走。为了方便复习做下笔记啦本文转自深蓝我们前面关于Fabric的所有文章中用到的例子都没有CA Server,都是由cryptogen这个工具根据crypto-config.yaml而生成的。但是在实际生产环境中,我们肯定不能这么做,我们应该为每个Org建立一个CA,由CA来管理其中的用户。下面我们就试着讲Fabric CA集成到整个Fabric网络中,并用CA Client生成新用户,最终使用新用户调用ChainCode,验证新用户的合法性。.

2020-06-21 17:19:26 438

原创 使用 include 指令简化 Nginx 配置

为了方便nginx维护,一般反向代理通过分配置文件管理,所以用到include指令简化前的配置 nginx.confuser nobody nobody;worker_processes 4;pid logs/nginx.pid;error_log logs/error.log error;events { use epoll; worker_connections 10.

2020-06-21 16:56:22 4368

原创 初步认识WebRTC,实现网页调起摄像头实时显示功能

实现一个web网页调用摄像头并实时显示在网页的video标签中的功能这里有WebRTC官网,直接有更多功能的例子参考~~还有在线的例子=>传送门WebRTC相关的文档可以参考=>传送门话不多说开始抛砖引玉WebRTC是什么WebRTC(Web实时通信)是一个免费的开源项目,它通过简单的应用程序编程接口(API)为Web浏览器和移动应用程序提供实时通信(RTC )。它允许直接的对等通信,从而允许音频和视频通信在网页内运行,而无需安装插件或下载本机应用程序。由Apple,Google.

2020-06-21 11:35:58 1933

原创 Nginx 或 Tomcat 搭载图片服务器

Tomcat图片服务器需要配置虚拟路径:找到tomcat下的conf文件夹下的server.xml修改server.xml如下docBase:指的是你图片存放的地址。<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- SingleSignOn valve, share authentication between

2020-06-16 14:21:24 433

原创 Nginx通过二级目录(路径)映射不同的反向代理

今天前后端分离项目,部署时需要通过二级目录来区分前端和后端,参考了网上文章。做下笔录啦前端是静态页面,当客户访问http://localhost/ ,当访问路径是 /\color{red}{/}/ 时,访问的是前端页面。后端服务接口,url 是 http://localhost/api/,当访问路径是 /api/\color{red}{/api/}/api/ 时,访问的是后端的服务接口那么开始配置listen: 监听端口server_name :是通配符,输入自己的域名IProot /.

2020-06-15 16:24:51 6751

原创 idea左侧出现日期和文件大小怎么关闭

快捷键开关如下~~~ shift+alt+\

2020-06-12 09:22:31 1699 3

转载 快速搭建一个Fabric 1.0的环境

Fabric 1.0的单机环境搭建。疫情期间学习了Fabric相关的网络搭建,参考了网上大神的文章。温故而知新,所以转载一下。一、使用VirtualBox并在其中安装好Ubuntu这一步其实没啥好说的,下载好最新版的VirtualBox,下载Ubuntu Server,我用的是Ubuntu16.04.2 X64 Server。在安装完Ubuntu后,需要保证apt source是国内的,不然如果是国外的话会很慢很慢的。具体做法是sudo vi /etc/apt/sources.list打开这.

2020-06-11 14:19:28 342

转载 微服务hystrix断路由详解

为啥要用断路由分布式系统面临的问题复杂分布式体系结构中的应用程序

2020-06-09 17:03:06 485

原创 Git用户名的查看和修改

查看用户名和邮箱地址$ git config user.name$ git config user.email修改全局用户名和邮箱地址$ git config --global user.name "username" $ git config --global user.email "email"修改局部用户名和邮箱地址$ cd ~/you project $ git config user.name "username"

2020-06-08 12:36:17 331

原创 JVM调优 Linux相关指令

Linux相关指令top主要查看%CPU、%MEM,还有load average。load average后面的三个数字,表示系统1分钟、5分钟、15分钟的平均负载值。如果三者平均值高于0.6,则复杂比较高了。当然,用uptime也可以查看。vmstat查看进程、内存、I/O等多个系统运行状态。2表示每两秒采样一次,3表示一共采样3次。procs的r表示运行和等待CPU时间片的进程数,原则上1核CPU不要超过2。b是等待资源的进程数,比如磁盘I/O、网络I/O等。[root@ ~]# vmstat

2020-06-05 10:14:32 312

原创 JVM垃圾收集器

JVM垃圾收集器四大垃圾收集算法标记整理标记清除复制算法分代收集算法准确来讲,跟前面三种算法有所区别。分代收集算法就是根据对象的年代,采用上述三种算法来收集。对于新生代:每次GC都有大量对象死去,存活的很少,常采用复制算法,只需要拷贝很少的对象。对于老年代:常采用标整或者标清算法。四种垃圾收集器Java 8可以将垃圾收集器分为四类。串行收集器Serial为单线程环境设计且只使用一个线程进行GC,会暂停所有用户线程,不适用于服务器。就像去餐厅吃饭,只有一个清洁工在打扫。

2020-06-04 14:06:53 534

原创 JAVA OutOfMemoryError详解

OutOfMemoryErrorStackOverflowError栈满会抛出该错误。无限递归就会导致StackOverflowError,是java.lang.Throwable→java.lang.Error→java.lang.VirtualMachineError下的错误。参考:public class StackOverflowErrorDemo { public static void main(String[] args) { stackOverflowErro

2020-06-03 09:24:48 272

原创 JAVA nutz的一个bug org nutz resource Scans Resource can t map to Class Resource

今天处理了nutz的一个问题,测试了很长时间,记录一下~nutz版本:1.r.62控制台报错:org.nutz.resource.Scans - Resource can’t map to Class, Resource xxx/xxx/xxx原来类的包路径下存在大写字母如:com.etwases.drivingLicense,就是这个L。后来改为com.etwases.drivinglicense,重启服务,启动ok。...

2020-06-01 22:27:31 263

原创 JAVA JVM 四大引用详解及测试代码

文章目录四大引用强引用软引用弱引用WeakHashMap虚引用引用队列最近重新看jvm,做下记录四大引用以下Demo都需要设置-Xmx和-Xms,不然系统默认很大,很难演示。强引用使用new方法创造出来的对象,默认都是强引用。GC的时候,就算内存不够,抛出OutOfMemoryError也不会回收对象,死了也不回收。参考:public class StrongReferenceDemo { public static void main(String[] args) {

2020-05-30 11:15:08 231

原创 nutz 集成swagger rest接口文档

今天尝试nutz集成 swagger rest接口文档按照以下步骤集成一、增加依赖maven依赖<dependency> <groupId>io.swagger</groupId> <artifactId>swagger-core</artifactId> <version>1.5.16</version></dependency><dependency> <groupI

2020-05-27 23:10:15 591

原创 JAVA JVM 参数详解

JVM参数JVM 三种类型参数标配参数比如-version、-help、-showversion等,几乎不会改变。X参数用得不多,比如-Xint,解释执行模式;-Xcomp,编译模式;-Xmixed,开启混合模式(默认)。XX参数重要,用于JVM调优。JVM XX参数布尔类型公式:-XX:+某个属性、-XX:-某个属性,开启或关闭某个功能。比如-XX:+PrintGCDetails,开启GC详细信息。KV键值类型公式:-XX:属性key=值value。比如-XX:Metaspace

2020-05-25 14:07:51 250

原创 JAVA 阻塞队列(BlockingQueue)的实际应用详解(生产者消费者&&线程池)

阻塞队列的应用——生产者消费者传统模式传统模式使用Lock来进行操作,需要手动加锁、解锁。参考:import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;public class CallableDemo { public static void main(String[] args) throws

2020-05-23 10:24:27 1567

原创 JAVA 阻塞队列详解及代码示例

阻塞队列概念:当阻塞队列为空时,获取(take)操作是阻塞的;当阻塞队列为满时,添加(put)操作是阻塞的。好处:阻塞队列不用手动控制什么时候该被阻塞,什么时候该被唤醒,简化了操作。体系:Collection→Queue→BlockingQueue→七个阻塞队列实现类。类名作用ArrayBlockingQueue由数组构成的有界阻塞队列LinkedBlockingQueue由链表构成的有界阻塞队列PriorityBlockingQueue支持优先级排序的无界阻

2020-05-22 11:19:41 393

原创 JAVA 并发编程 CountDownLatch/CyclicBarrier/Semaphore

CountDownLatchCountDownLatch内部维护了一个计数器,只有当计数器==0时,某些线程才会停止阻塞,开始执行。CountDownLatch主要有两个方法,countDown()来让计数器减一(-1),await()来让线程阻塞。当count==0时,阻塞线程自动唤醒。案例一班长关门:main线程是班长,6个线程是学生。只有6个线程运行完毕,都离开教室后,main线程班长才会关教室门。案例二秦灭六国:只有6国都被灭亡后(执行完毕),main线程才会显示“秦国一统天下”。枚举类的

2020-05-21 16:51:10 261

原创 JAVA Synchronized和Lock的区别

Synchronized和Lock的区别synchronized关键字和java.util.concurrent.locks.Lock都能加锁,两者有什么区别呢?原始构成:sync是JVM层面的,底层通过monitorenter和monitorexit来实现的。Lock是JDK API层面的。(sync一个enter会有两个exit,一个是正常退出,一个是异常退出)使用方法:sync不需要手动释放锁,而Lock需要手动释放。是否可中断:sync不可中断,除非抛出异常或者正常运行完成。Lock是可中

2020-05-21 09:47:34 263 1

原创 Java 公平锁/非公平锁 可重入锁/递归锁 自旋锁 读写锁/独占/共享锁 详解

公平锁/非公平锁概念:所谓公平锁,就是多个线程按照申请锁的顺序来获取锁,类似排队,先到先得。而非公平锁,则是多个线程抢夺锁,会导致优先级反转或饥饿现象。区别:公平锁在获取锁时先查看此锁维护的等待队列,为空或者当前线程是等待队列的队首,则直接占有锁,否则插入到等待队列,FIFO原则。非公平锁比较粗鲁,上来直接先尝试占有锁,失败则采用公平锁方式。非公平锁的优点是吞吐量比公平锁更大。synchronized和juc.ReentrantLock默认都是非公平锁。ReentrantLock在构造的时候传入tru

2020-05-20 14:59:10 387

原创 JAVA list、set、map等集合类线程不安全的问题及解决方法

ListArrayList不是线程安全类,在多线程同时写的情况下,会抛出java.util.ConcurrentModificationException异常。private static void listNotSafe() { List<String> list=new ArrayList<>(); for (int i = 1; i <= 30; i++) { new Thread(() -> { list

2020-05-19 15:13:20 3967

原创 centos7 执行xx.sh脚本时,报错 xx.sh /bin/bash^M: 坏的解释器:没有那个文件或目录

执行xx.sh脚本时,报错 "xx.sh /bin/bash^M: 坏的解释器:没有那个文件或目录”,因为 .sh文件是从windows拷贝过来的,所以多了\r,执行: sed -i ‘s/\r$//’ xx.sh 会把 xx.sh 中的\r 替换成空白,再次执行则成功!...

2020-05-19 11:47:49 632 1

原创 java JMM 和 volatile关键字

JMMJMM是指Java内存模型,不是Java内存布局,不是所谓的栈、堆、方法区。每个Java线程都有自己的工作内存。操作数据,首先从主内存中读,得到一份拷贝,操作完毕后再写回到主内存。JMM可能带来可见性、原子性和有序性问题。所谓可见性,就是某个线程对主内存内容的更改,应该立刻通知到其它线程。原子性是指一个操作是不可分割的,不能执行到一半,就不执行了。所谓有序性,就是指令是有序的,不会被重排。volatile关键字volatile关键字是Java提供的一种轻量级同步机制。它能够保证可见性和有序

2020-05-18 13:42:06 165

原创 JAVA CAS引入的ABA问题 以及如何解决问题

ABA问题所谓ABA问题,就是比较并交换的循环,存在一个时间差,而这个时间差可能带来意想不到的问题。比如线程T1将值从A改为B,然后又从B改为A。线程T2看到的就是A,但是却不知道这个A发生了更改。尽管线程T2 CAS操作成功,但不代表就没有问题。有的需求,比如CAS,只注重头和尾,只要首尾一致就接受。但是有的需求,还看重过程,中间不能发生任何修改,这就引出了AtomicReference原子引用。AtomicReferenceAtomicInteger对整数进行原子操作,如果是一个POJO呢?可以

2020-05-17 11:19:08 501

原创 JAVA CAS 底层原理详解

CASCAS是指Compare And Swap,比较并交换,是一种很重要的同步思想。如果主内存的值跟期望值一样,那么就进行修改,否则一直重试,直到一致为止。public class CASDemo { public static void main(String[] args) { AtomicInteger atomicInteger=new AtomicInteger(5); System.out.println(atomicInteger.compareA

2020-05-16 13:10:22 1659 1

原创 IDEA 2020.01版 springboot 热部署

IDEA springboot 热部署1、先设置pom.xml文件,加入依赖1.1、在dependencies标签里加入1.2、在plugins标签下加入2、设置idea2.1、file->settings->compiler,勾选如图选项2.2、press ctrl+shift+Alt+/,选择Registry2.3、选择下图选项3、重启idea生效1、先设置pom.xml文件,加入依赖1.1、在dependencies标签里加入<dependency> <gr

2020-05-14 11:13:00 949

jdk-8u251-windows-x64.rar

jdk-8u251-windows-x64,官网老是要登陆下载,而且很慢,在这里上传一下,方便下载。同时也方便一下大家。

2020-06-15

swagger1.516-all-jar.rar

swagger1.5.16 所有的依赖jar包,用于传统的java web项目,可拷贝到web lib目录下直接使用。

2020-05-27

空空如也

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

TA关注的人

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