摘要: ​ 在java代码中,代码为了保证逻辑的原子性,往往会给代码加锁,防止多线程并发下对非原子性操作的执行,造成逻辑紊乱。 aqs是由Doug Lee写的对于synchronized的优化,aql是clh锁,即Craig, Landin, and Hagersten (CLH),CLH锁也是一种基于链表 阅读全文
posted @ 2021-08-31 21:23 sewell_画风 阅读(130) 评论(0) 推荐(0)
摘要: ​ class文件分析 以最简单的helloworld入手进行分析: java代码: public class ClassTest{ public static void main(String args[]){ System.out.println("Hello World."); } } jav 阅读全文
posted @ 2021-08-31 21:22 sewell_画风 阅读(165) 评论(0) 推荐(0)
摘要: ​ MacOS 编写HelloWorld.java public class HelloWorld { public native void hello(); static { //设置查找路径为当前项目路径 System.setProperty("java.library.path", "."); 阅读全文
posted @ 2021-08-31 21:21 sewell_画风 阅读(204) 评论(0) 推荐(0)
摘要: ​ CountDownLatch public class CountDownLatchTest { private CountDownLatch countDownLatch = new CountDownLatch(THREAD_COUNT); private static int THREAD 阅读全文
posted @ 2021-08-31 21:20 sewell_画风 阅读(30) 评论(0) 推荐(0)
摘要: ​ 锁升级: 在java当中,因为并发的情况,同一段代码会被多个线程同时执行,造成其中的变量没有达到想要的效果,即非原子性。 为了解决这一个问题,java中提供了有synchronized关键字。 synchronized是依赖jvm内部对象Monitor实现的,通过进入与退出Monitor对象实现 阅读全文
posted @ 2021-08-31 21:19 sewell_画风 阅读(242) 评论(0) 推荐(0)
摘要: ​ hashmap是java里面的一种集合,是用来存放多个key-value形式的对象。 继承图: ​ 其中具有的成员变量为: DEFAULT_INITIAL_CAPACITY = 1 << 4 默认容量值 MAXIMUM_CAPACITY = 1 << 30 最大容量值,限制数组的最大容量 DEF 阅读全文
posted @ 2021-08-31 21:17 sewell_画风 阅读(58) 评论(0) 推荐(0)
摘要: ​ 首先在zerotier-one官网注册账号, 自己搭建moon中转服务器 linux安装zerotier curl -s https://install.zerotier.com/ | sudo bash (sudo chmod 777 /var/lib/zerotier-one) 生成moon 阅读全文
posted @ 2021-08-31 21:17 sewell_画风 阅读(288) 评论(0) 推荐(0)
摘要: ​ Soul网关的divide插件,提供了请求转发,负载均衡的功能 在Soul-bootstrap启动的时候,会和souladmin进行数据同步,获取到各个插件的数据,所有请求过来的时候,会根据插件数据在插件链中处理逻辑,即执行SoulPlugin的execute方法。 在开启divide插件之前, 阅读全文
posted @ 2021-08-31 21:15 sewell_画风 阅读(742) 评论(0) 推荐(0)
摘要: ​ 探活模块 shenyu网关对服务的活跃探测,避免将请求转发到失活的机器上面,并在给定次数的失败探测时候,将服务下线。 shenyu网关包含的活体探测点 SoulAdmin对服务机的活体检测 SoulAdmin对下游服务探活 在websocket的时候,进行服务数据的注册,并将服务器的数据ip等放 阅读全文
posted @ 2021-08-31 21:14 sewell_画风 阅读(1265) 评论(0) 推荐(0)
摘要: Java中的位运算 原码:用第一位表示符号,其余位表示值。 反码:正数的补码反码是其本身,负数的反码是符号位保持不变,其余位取反。 补码:正数的补码是其本身,负数的补码是在其反码的基础上+1。 正数: 原码=反码=补码 负数:反码=原码除符号位每位取反; 补码 = 反码+1 1、基本位运算 priv 阅读全文
posted @ 2021-08-31 21:10 sewell_画风 阅读(200) 评论(0) 推荐(0)
摘要: ​ Disruptor 需要:消息,生产者,消费者,事件处理器 在SOUL中,使用的是多个生产者,多个消费者,即多写多读的模式 Disruptor有消费者,生产者,Disrutpor,生产者生产消息,放置到disruptor ringbuffer上,消费者到ringbuffer上去消费。 soul中 阅读全文
posted @ 2021-08-31 21:08 sewell_画风 阅读(175) 评论(0) 推荐(0)
摘要: ​ Soul(shenyu)网关很大的一个特色便是插件化思想,soul网关支持很多个插件,这些插件按照给定的顺序依次执行。 Soul所有的插件都实现SoulPlugin接口,插件链,也是执行一个个的SoulPlugin的实现类 插件链的执行在SoulWebHandler当中,进行代码分析 SoulC 阅读全文
posted @ 2021-08-31 21:08 sewell_画风 阅读(528) 评论(0) 推荐(0)
摘要: ​ 1、介绍 soul网关选用websocket的方式进行同步,websocket的通讯是双向全双工的,在soul网关当中,当souladmin的配置数据进行更新时,会将数据推送至网关服务器中,并由网关服务器进行缓存。 2、同步步骤 websocket客户端(soulbootstrap)拉取配置 服 阅读全文
posted @ 2021-08-31 21:07 sewell_画风 阅读(99) 评论(0) 推荐(0)
摘要: ​ SPI 全称:service provider interface:服务提供接口,是一种思想,java SPI是对SPI的一种实现。 顾名思义,它是用作服务提供的,类似于,用户自己定义了一种实现,按照提供服务接口的规则,将定义的实现注册到服务提供接口中,该接口不管用户任何实现的细节,当用户后续使 阅读全文
posted @ 2021-08-31 21:07 sewell_画风 阅读(68) 评论(0) 推荐(0)
摘要: ​ 1. 简述: soul网关是作者根据现有的kong、gateway等网关,再结合公司的定制化需求开发出的一款异步的、高性能的、跨语言的、响应式的api网关。soul网关结合kong的插件话思想和gateway的webflux响应式编程设计,其内置的插件支持不同语言之间的转换,支持请求转发合并,负 阅读全文
posted @ 2021-08-31 21:06 sewell_画风 阅读(884) 评论(0) 推荐(0)
摘要: ​ 简介 WebSocket是一种独立的基于TCP协议的协议,它是一种全双工的通信协议,可以在支持websocket的机器之间进行双向通信。设计的目的便是为了弥补http协议的不足之处。http是严格的单向协议,任何服务器的数据传送都需要客户端先进行一次请求,http-polling是用来处理这种限 阅读全文
posted @ 2021-08-31 21:06 sewell_画风 阅读(377) 评论(0) 推荐(0)
摘要: ​ org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource 阅读全文
posted @ 2021-08-31 21:05 sewell_画风 阅读(174) 评论(0) 推荐(0)
摘要: ​ soul版本:2.3.0-SNAPSHOT 1、soul项目的数据库表一共为: 权限模块:resource、permission、role、user_role、dashboard_user 插件模块:plugin、selector、selector_condition、rule、rule_con 阅读全文
posted @ 2021-08-31 21:04 sewell_画风 阅读(178) 评论(0) 推荐(0)
摘要: 一部分的项目功能要上线,前前后后上线了三次调试了无数次才成功,下面是记忆中的一些个过程。 功能描述:企业微信上传一份pdf文件,上传完了以后立即查阅。 功能点:企业微信文件上传、上传至obs(内网),上传后通过流的方式查看。 前情:该部分的功能,由测试在测试环境上进行了测试,但在发布到线上后,功能无 阅读全文
posted @ 2021-08-31 21:03 sewell_画风 阅读(104) 评论(0) 推荐(0)
摘要: ​ 在自己的博客网站,使用的是Nacos作为配置和注册中心,又和数据库进行关联的,由于数据,数据和网站设置都存储在数据库当中,所以一直想着要做一个备份。所以找了一个比较简单的定时备份模式。当然,是基于linux下的。 方式:采用linux系统中的定时器,定时执行shell脚本,进行数据库的库导出。 阅读全文
posted @ 2021-08-31 21:01 sewell_画风 阅读(91) 评论(0) 推荐(0)
摘要: 今天服务器删除挖矿脚本和定时任务之后,重置系统,导致文件系统只读。找官网建议重置系统,因为数据量小,所以不进行实例快照。重新安装数据库 本文大部分参考转载的连接,但原文有部分问题,所以加入了几个自己安装过程的错误解决过程 以下是通过yum安装数据库mysql的具体过程 先查看是否已经安装了mysql 阅读全文
posted @ 2021-08-31 20:56 sewell_画风 阅读(39) 评论(0) 推荐(0)