- 博客(166)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 微服务之间数据同步的思考
周末无聊,来一篇服务之间数据同步的博客吧(主要讲注意的问题)。具体什么业务场景就不举例了。ps:纯属个人瞎说,有错误、不足请大侠指出。嗯,开始说正事了。业务流程主要业务流程如下:#mermaid-svg-hBFG9z7D18k19mmh .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-hBFG9z7D18
2021-07-10 21:06:10
2191
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 java中异常(必备-已经迁移)
文章目录Java异常架构与异常关键字Java异常简介Java异常是Java提供的一种识别及响应错误的一致性机制。Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。在有效使用异常的情况下,异常能清晰的回答what, where, why这3个问题:异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪”抛出,异常信息回答了“为什么”会抛出。Java异常架构ThrowableThrowable 是 Java 语言中所有错误与异常的超类。Thr
2020-09-15 01:41:00
724
原创 抽象类和接口对比(迁移)
类目方法成员变量构造方法抽象类无限制无限制子类通过调用构造方法链调用构造方法,抽象类不能用new操作符实例化接口public abstractpublic abstract无构造方法,不能用new实例化。抽象类:1,抽象类不能用new来创造他的实例(在子类的构造方法中实例化),但是可以作为一种数据类型。下边是正确的(假设A是抽象类):A[] a=new a[10];2,抽象类中可以没有抽象方法,但是有抽象方法该类一定是抽象类。3,子类可以覆盖父类的抽象...
2021-02-01 23:18:55
215
原创 ENOSPC: System limit for number of file watchers reached, watch
今日在运行vue的项目的时候出现了下边的错误,我的开发环境是deeplin的liunx操作系统解决办法:echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
2020-12-13 00:57:51
446
原创 创建vue2.0 cli项目
安装淘宝镜像 npm install -g cnpm --registry=https://registry.npm.taobao.org然后使用cnpm安装vuecnpm install vue cnpm安装vue-clicnpm install vue-cli全局安装webpack (可不要,只是为了顺便安装带webpack的vue项目)npm install webpack -g安装带有webpack 的vue 项目vue init webpack test-project
2020-12-13 00:50:39
124
原创 maven配置阿里云镜像
在maven的setting.xml配置文件中添加如下 <mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/repositories/central/</url><
2020-11-29 22:43:23
314
原创 docker阿里云镜像加速
在控制台找到教程和加速地址登陆阿里云进入控制台->容器镜像服务->镜像中心->镜像加速器。配置加速打开daemon.jsonvim /etc/docker/daemon.json重启docker daomon线程systemctl daemon-reload重启docker 服务systemctl restart docker...
2020-11-29 16:46:22
89
原创 java基础-字符串(已经迁移到个人博客)
在开发中,字符串String类型是我们使用很频繁的对象了(注意它不是基本数据类型)。知道如何创建字符串、常用的方法、相关类的使用、字符串常量池等是我们技能中必不可少的一部分。比如它能:减少内存消耗、加快程序运行速度、提高我们的开发效率等
2020-11-26 17:17:11
166
原创 设计模式之代理模式
动态代理jdk动态代理/** * @author luyi * jdk媒婆代理类 */public class JdkMeiPo implements InvocationHandler { private Person target; public Object getInstance(Person person) { this.target = person; Class<?> clazz=person.getClass();
2020-11-01 23:14:12
100
原创 如何优雅的关闭springBoot项目
在很多时候,项目升级我们都需要将服务停止,一般我们都是利用 kill -9 进程ID 直接将进程杀掉。这样程序不会执行优雅的关闭,而且一些没有执行完的程序就会直接退出。emsp;emsp;我们很多时候都需要安全的将服务停止,也就是把没有处理完的工作继续处理完成。比如停止一些依赖的服务,输出一些日志,发一些信号给其他的应用系统,这个在保证系统的高可用是非常有必要的。那么咱么就来看一下几种优雅停止springboot的方法。一、 利用spring-boot-starter-actuator1.1 添
2020-10-17 00:44:50
6219
1
原创 这个世界上没有谁离不开谁,只是有你会更好
今天在抖音刷到一个视频,大概意思是:这个世界上就没有谁离不开谁的,有些人认为离开了你没有了我会活不了;他们要相互依赖,但是不需要天天如泥似漆的在一起,一定要是两个相互独立的个体。不是没有你不行,而是有你更好的感觉。所有说,没有谁离不开谁,只是有你有你会更好,我自己的生活也很精彩,我会把我精彩的生活分享给你,但是不是没有你不行。我觉得说的很好,分享给有能够看到的有缘人,希望你有他(她)更好。...
2020-10-15 23:37:47
347
原创 liunx开启远程ssh远程连接
① 激活bairoot账户sudo passwd root输入密du码之后,切换到 root 账户zhi。su root输入密码之后就可以进入 root 账户了。② 安装 SSH 服务apt-get install ssh安装完成dao之后,可以使用命令启动 SSH 服务。有两种方式可以启动,下面两种方式任选其一。service sshd start或/etc/init.d/sshd start③ 开启 SSH 的 root 账户远程登录用 Xshell root 连接时,显示 SSH 服务器拒绝了密码,原
2020-10-14 00:33:46
292
原创 mysql常用数据类型
文章目录一、整数类型二、 实数类型三、字符串类型3.1 、VARCHAR3.1.1、什么情况下适合使用VARCHAR?3.2、CHAR3.3、BINARY和VARBINARY3.4、 BLOD和TEXT类型四、枚举(ENUM)前言 Mysql支持的数据类型非常多,选择正常的数据类型至关重要。通常下面的几个简单的原则有助于做出更好的选择:更小的更好一般的情况下,应该尽量使用存储数据的最小数据类型。更小的数据类型占用的磁盘、内存和cpu缓存很少,处理时需要的cpu周期夜更少。但是要确保不会超出存储
2020-10-14 00:31:55
848
原创 springBoot中自定义starter
文章目录一、 前言二、 springBoot如何装配对应的bean三、自定义starter3.1 创建springBoot工程,引入依赖3.2 定义相关类3.2.1 定义配置属性3.2.2 定义业务以及实现类3.2.3 定义配置类3.3 配置spring.factories3.4 安装install3.5 使用一、 前言 在springBoot项目中,我们会发现有各种starter(redis、nacos、mybaits等),我们需要用mybaits,只需引入对应的starter,然后springBo
2020-10-11 00:30:20
529
原创 maven下载,并配置环境变量(liunx)
文章目录下载解压文件配置刷新配置文件校验是否配置成功下载首先到maven的官网下载,地址:http://maven.apache.org/download.cgi解压j解压的命令为:tar -zxvf xxx文件配置编辑配置文件vim /etc/profile在后边追加#配置mavan环境变量 export MAVEN_HOME=/usr/local/maven/apache-maven-3.5.2export PATH=$MAVEN_HOME/bin:$PATHMAVEN_H
2020-10-09 23:44:22
107
原创 设计模式之单例模式
一 单例模式简介1.1 定义 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式的要点有三个:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。 单例模式是一种对象创建型模式。单例模式又名单件模式或单态模式。1.2 为什么要用单例模式呢? 在我们的系统中,有一些对象其实我们只需要一个,比如说:线程池、缓存、对话框、注册表、日志对象、充当打印机、显卡等设备驱动程序的对象。事实上,
2020-09-21 23:20:30
292
原创 docker容器备份与恢复
容器保存为镜像docker commit mysql-test mysql-i其中mysql-test为我需要备份的mysql容器,mysql-i为我备份镜像的名称我们会发现,利用docker images命令,会发现我们备份的镜像镜像备份docker save -o mysql.tar mysql-io代表output输出的意思还原备份docker load -i mysql.tar删去原来的镜像,然后还原,我们会发现,还原的给原来的镜像名称一样...
2020-09-21 21:39:54
304
原创 deeplin系统防火墙配置
具体操作: 安装防火墙输入:sudo apt-get install ufw 结果如下图:如果提示(Y/N)的,就输入y回车就行了(大小写无所谓),和下图一样就说明已经安装上了。在这里插入图片描述查看防火墙状态:提示:Status: active 说明已经成功开启了提示:Status: inactive 说明已经关闭成功打开防火墙:sudo ufw enable关闭防火墙:sudo ufw disable安装防火墙sudo apt-get install ufw查看防火墙状态
2020-09-20 12:27:31
597
原创 docker常用命令和操作(安装mysql为例)
文档https://www.runoob.com/docker/centos-docker-install.html安装启动docker注意:以下是centerOs 用yum安装的docker,其他的liunx系统如Ubuntu用apt-get安装systemctl 的命令,其他用yum安装的软件也通用let`s go~~~~~~~~~~~~~~~~~~~~~~~~~~~~安装docker yum install docker启动dockersystemctl start
2020-09-19 02:12:11
435
原创 redis主从复制、哨兵(已经迁移)
文章目录一、主从复制1.什么是主从复制?2.主从复制的作用3.配置4.原理Redis 复制如何处理 key 的过期当 master 关闭持久化时,复制的安全性Redis 复制功能是如何工作的二、哨兵机制1.什么是哨兵机制2.配置3.启动哨兵4.注意一、主从复制1.什么是主从复制? 主从复制是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave
2020-09-17 01:54:50
162
原创 线程池的使用和源码分析
1、使用规范【强制】线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样 的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。 说明:Executors 返回的线程池对象的弊端如下:List itemFixedThreadPool 和 SingleThreadPool: 允许的请求队列长度为 Integer.MAX_VALUE,可能会堆积大量的请求,从而导致 OOM;CachedThreadPool 和 ScheduledThr
2020-08-31 00:05:06
220
原创 jdk环境变量配置,以及vim /etc/profile 写入时 出现 E121:无法打开并写入文件解决方案
liunx环境配置首先打开配置文件vim /etc/profile然后在尾部追加export JAVA_HOME=jdk文件目录,为bin的上级目录export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar然后保存,刷新配置文件source /etc/profilevim /etc/profile 写入时 出现 E121:无法打开并写入文件办法:
2020-08-22 01:22:39
2913
原创 安装yum,并配置yum源
这里写自定义目录标题更新源列表更新软件安装及配置yum源今天将自己的系统安装成了liunx系统,发现系统没有yum。更新源列表sudo apt-get -y update更新软件如果对新版本的软件没有需求可以不用这一步sudo apt-get dist-upgrade安装及配置yum源sudo apt-get install build-essentialsudo apt-get install yumcd /etc/yum/repos.dvi 163.repo在文档中写入:[1
2020-08-22 00:05:47
527
1
原创 vue3.0(包含中文官方文档)
npm i -g @vue/clicnpm install -g @vue/cli需要以前安装淘宝镜像: npm install -g cnpm --registry=http://registry.npm.taobao.org
2020-08-03 01:09:03
19622
1
转载 FutureTask源码分析【转载】
FutureTaskFutureFutureTask源码Treiber堆FutureTask状态管理在JCU中,FutureTask是Future的具体实现,且实现了Runnable接口,即FutureTask满足了Task的行为,是一个可以被用来执行的Future。FutureTask是JCU提供的线程池实现用到的任务基本单元,线程池主要接收两种对象:一个是Runnable任务,一种是Callable任务。按照ExecutorService接口定义的行为,可以将Runnable或Callable任务提交
2020-08-02 21:33:47
138
原创 前后端分离解决跨域问题
https://segmentfault.com/a/1190000019550329一、跨域由来基于浏览器的 Same Origin Policy,译为“同源策略”。它是对于客户端脚本(尤其是JavaScript)的重要安全度量标准,其目的在于防止某个文档或者脚本从多个不同“origin”(源)装载。它认为自任何站点装载的信赖内容是不安全的。当被浏览器半信半疑的脚本运行在沙箱时,它们应该只被允许访问来自同一站点的资源,而不是那些来自其它站点可能怀有恶意的资源。具有相同的Origin,也即是拥
2020-07-29 02:51:13
389
原创 注册中心的区别(Nacos、Eureka、conful、CoreDNS、zk)
比较Zookeeper基于ZAP协议实现保证每个节点数据同步的问题,中心化思想集群模式,分为领导和跟随者角色。当我们的zk领导因为某种原因宕机的情况下,会自动触发重新选一个新的领导角色,整个选举的过程为了保证数据的一致性问题,在选举的过程中整个zk环境是不可使用的可短暂可能无法使用到zk。意味着微服务采用该模式情况下,可能无法实现通讯(本地有缓存除外)注意:可运行的节点必须满足过半机制,整个zk采用使用。Eureka采用ap的设计理念架构注册中心,完全去中心化思想,也就是没有主从之分每个节
2020-07-28 01:04:24
2500
原创 springClould之Gateway服务网关
中文官网文档:https://www.springcloud.cc/spring-cloud-greenwich.html#_spring_cloud_gateway一、前奏什么是服务网关PI Gateway(APIGW / API 网关),顾名思义,是出现在系统边界上的一个面向 API 的、串行集中式的强管控服务,这里的边界是企业 IT 系统的边界,可以理解为企业级应用防火墙,主要起到隔离外部访问与内部系统的作用。在微服务概念的流行之前,API 网关就已经诞生了,例如银行、证券等领域常见.
2020-07-18 01:48:21
645
原创 拓展Ribbon,集成nacos实现权重负载均衡
权重负载均衡的意义实现的意义就是就集群的服务器的性能、配置可能不一样,一般都默认轮训的负载均衡的模式,但是这样会造成性能好的服务器工作的少,而性能差的服务器负荷过重,造成一种极为不公平的现象,所以我们就采用权重实现负载均衡,能者多劳。集成nacos如下,我们发现在nacos的集群中,有权重的配置,但是配置了,并没有生效(自己到网关中测试)。代码直接上代码/** * @author ly */@Configurationpublic class NacosWeightRule exten
2020-07-16 01:19:59
1897
2
原创 mongo用户添加和启动
添加用户db.createUser({ user: "username", pwd: "password",roles: [{role:"readWrite", db:"数据库名称"}]})
2020-07-15 11:21:44
168
原创 springBoot中nacos使用
文档地址 下载地址:https://github.com/alibaba/nacos/releases 官方文档:https://nacos.io/zh-cn/docs/what-is-nacos.html 配置文档:https://nacos.io/zh-cn/docs/system-configurations.html安装、启动、关闭 1、首先到githup上下载tar的安装包,然后解压: tar -zxvf nacos-server-$version.tar.gz 2、启动命
2020-07-12 22:51:09
2559
原创 SpringCloud之application.properties和bootstrap.properties区别
Spring是有上下文一说的,也叫Application Context,Application Context又是有父子关系的,所以必须要理解ApplicationContext是什么。SpringCloud启动时,会先创建一个Bootstrap Context,然后创建一个Application Context,Bootstrap Context是Application Context的父上下文,Bootstrap负责从外部源加载配置并解析,这两个上下文共用一个从外部获取的Environment。B..
2020-07-12 21:10:28
1088
原创 ElasticSearch
目录Elasticsearch简单介绍Elasticsearch优势Elasticsearch应用场景Elasticsearch存储结构Linux环境安装ElasticsearchLinux环境安装KibanaKibana环境安装Kibana实现增删改查Elasticsearch版本控制9300与9200区别倒排索引正向索引倒排索引高级查询根据id进行查询查询当前所有类型的文档根据多个ID批量查询复杂条件查询Dsl语言...
2020-07-05 19:07:42
312
转载 java命名规则(迁移)
为什么需要重视命名?好的命名即是注释,别人一看到你的命名就知道你的变量、方法或者类是做什么的!好的命名对于其他人(包括你自己)理解你的代码有着很大的帮助!常见命名规则以及适用场景这里只介绍 3 种最常见的命名规范。驼峰命名法(CamelCase)驼峰命名法应该我们最常见的一个,这种命名方式使用大小写混合的格式来区别各个单词,并且单词之间不使用空格隔开或者连接字符连接的命名方式大驼峰命名法(CamelCase)类名需要使用大驼峰命名法(UpperCamelCase)...
2020-06-23 23:25:35
554
原创 mongodb集群配置
目录准备主从(MS)主机配置(master)从机配置(slave)副本集(mas) 配置文件 主节点(master)从节点:仲裁节点:启动配置主、从、仲裁节点准备本文主要介绍了mongodb的集群方式,为了方便,都在一台机器上配置,数据和日志放在mongodb目录下,目录如下:其中data为存放文件的位置,log为存放日志的位置,mongo.cfg为配置文件可能需要的命令解压:tar -zxvf xxx.tar ...
2020-06-19 00:57:21
485
原创 ReentrantLock与synchronized对比
1.可重入性 ReentrantLock和synchronized都具有可重入性,写代码synchronized更简单,ReentrantLock需要将lock()和unlock()进行一一对应否则有死锁的风险,一般和try,finally配置使用 ReentrantLock reentrantLock = new ReentrantLock(false); reentrantLock.lock(); try { } fina..
2020-06-07 16:06:52
130
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人