- 博客(71)
- 资源 (1)
- 收藏
- 关注
原创 简说VMware网络连接模式原理与实践
Bridged模式 桥接模式下,系统会在主机上虚拟出一个交换机,虚拟机和主机都连接该交换机,虚拟机和主机处于同等地位,在同一个网络内。相当于当虚拟机直接连接到外部网络上。NAT模式(Network Address Transtation 网络地址转换) 这种模式下,虚拟机和主机对外共用同一个IP(所有NAT模式的虚拟机都与主机共享IP),相当于建立了一个局域网,然后多台机器共享一个外网ip,好处是可以缓解IP4数量不足的问题。但坏处就是虚拟机的请求包、外部的响应包都需要经过主机的...
2021-10-19 17:55:49 650
原创 Java实现JWT
JWT(JSON Web Token) JWT在web环境中通常作为一种用户凭证,它是一个以.分隔,由heaer.payload.signature组成的字符串,其中每个部分都经过Base64编码。header包含token采用的算法、类型(JWT)、KeyId等信息,payload中包含token的发行人iss、过期时间exp、业务信息等(比如用户ID、昵称等),signature是对(header.payload)的Base64组合串用密钥加密得到的摘要,代表header.payloa....
2021-10-19 11:08:22 2576
原创 消息摘要、各种加密方式的简要说明
本篇不涉及具体的代码实现,相关代码可参考JWt、签名接口的博客消息摘要 消息摘要通常采用哈希/散列算法,比如MD5、SHA、MAC系列,是一种不可逆的单向算法,它可以把任意长度的信息,生成定长的摘要,并且无法通过摘要信息反向解析出原始数据。所以消息摘要一般用来确保数据传输过程中的完整性。 发送方在传输时,需要将原始数据与摘要信息同时传递给接收方,接收方再对原始数据进行同样的处理得到新的摘要信息,通过对比两个摘要信息是否一样,即可判断数据在传输过程中是否有被修改。当然,双方...
2021-10-19 10:58:34 1130
原创 Charles抓包工具的使用
目录Charles启用代理 Charles抓Chrom包 Charles抓取手机端HTTP包 Charles抓取手机端HTTPS包(解决<unknow>问题) 过滤Charles启用HTTP代理 进入Proxy--> Proxy Settings,设置代理端口,默认为8888 Charles抓Chrom包 依次进入设置-->系统-->打开代理设置-->局域网设置-->勾选"代理服务器"下的"为LAN使用代理..."--&g...
2021-10-19 10:46:51 755
原创 Eclipse加载color theme本地插件,无效问题
以Color Theme为例:1)下载:http://eclipse-color-theme.github.io/update/eclipse-color-theme-update-site.zip2)解压并将两个文件夹拷贝到Eclipse目录下(存在的情况下选择替换文件即可)3)启动,如果启动无效,尝试以下操作(无顺序要求) 3-1修改eclipse.ini文件,添加启动项...
2020-04-22 01:11:50 813
原创 Maven指南(二)POM文件说明 及依赖管理
POM pom是Maven工作的基本单元,每个项目只会有一个pom.xml文件,其中包含项目对象、构建流程和其它配置信息。当构建项目时,Maven通过读取pom.xml获取配置信息然后执行相应的有序操作。超级POM Maven自带了一个Super POM,也是Maven的默认POM。除非明确设置,否则所有POM都会扩展Super POM,这意味着在Super POM中的配置信息将由所有...
2020-04-22 01:10:58 2624
原创 Redis(五):主从复制
全量同步 增量同步 主从配置 复制流程及源码分析 主从复制问题及优化 Redis主从复制可以分为全量同步和增量同步,在Redis 2.8之前从节点每次连接主节点都会发送SYNC命令,来执行一次全量同步;2.8之后全量同步主要针对首次连接的情况,对于断线重连可以进行增量同步,且2.8之后用PSYNC代替了SYNC,其中psync ? -1表示全量同步,增量同步用psync <ru...
2020-04-22 00:03:54 618
原创 Jetty应用部署与Session支持
启动Jetty Jetty启动配置由全局的home/start.ini及多个home/start.d/*.ini文件控制,DOS模式下启动Jetty很简单,这里以一个空的应用为例(如下),其中--add-to-startd表示添加依赖模块,会在当前项目下创建webapps及start.d目录,并在start.d下生成模块对应的*.ini文件,如start.d/https.ini, start....
2020-04-22 00:03:19 949
原创 Maven简介
一、官网概述及Maven特点 Apache Maven is a software project management and comprehension tool.Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and doc...
2020-04-22 00:02:05 195
原创 Jedis实现分布式锁
ZooKeeper是什么? ZooKeeper是一个高可用的分布式协调框架,ZooKeeper是一种集中式服务,用于维护配置信息,命名,提供分布式同步等服务,可以简单理解成一个高可用的分布式协调框架。所有这些类型的服务都以分布式应用程序的某种形式使用。每次实施它们都需要做很多工作来修复不可避免的错误和竞争条件。由于难以实现这些类型的服务,应用程序最初通常会吝啬它们,这使得它们在变化的情况下变得...
2020-04-22 00:01:21 309
原创 Spring Cloud之Ribbon原理,及RestTemplate启用负载的原理
ScriptEngine是1.6版本之后新加入的功能,提供了在服务器端调用脚本代码(如JavaScript、Groovy、Ruby、Scheme等)的相关API。JVM在启动时会发现所有可用的脚本引擎,每一个脚本引擎都可以处理特定的脚本代码。如JavaScript脚本引擎、Groovy脚本引擎等等。通过new ScriptEngineManager().getEngineFactories
2020-04-22 00:00:59 676 1
原创 Nginx负载均衡策略
上游服务器集群的配置语法及说明配置: upstream serverxxx{ ## 负载策略 ## server ip:port [params] server ip:port [params] ...} 默认: - Context http 负载策略主要有以下几种策略 说明 Round R...
2020-04-22 00:00:16 454
原创 分布式全局唯一ID的几种方式
Java的UUID基于Twitter-Snowflake算法实现Snowflake算法 Snowflake算法是由Twitter(推特)提出的,背景是为了给Twitter中的每条消息分配一个唯一ID,并保证ID的有序性,方便客户端排序,并且在分布式系统中的不同机器产生的ID也必须不同。 Snowflake的优点是,整体上按照时间自增排序,并且整个分布式系统内不会产生ID碰撞(由数据中心I...
2020-04-21 23:49:36 223
原创 Docke容器抛出WARNING: IPv4 forwarding is disabled. Networking will not wor,联不上网的问题
1)容器联不上网问题场景:在VMware中启动docker容器时,抛出WARNING: IPv4 forwarding is disabled. Networking will not work.结果:容器内部无法访问外网,也无法访问物理机。原因:Linux默认情况下禁止了IPv4转发,而VM的NAT模式下需要通过宿主机进行转发才能联通到外网解决方案:在内核文件中启用IPv4转发。注意Ce...
2020-04-21 23:44:43 172
原创 SpringBoot实践:热部署
spring-boot-devtools devtools是spring boot中一个热部署插件,它通过监测类路径来及时发现文件的更新,当有文件更新后即触发一次重启。根据Spring Boot官方文档上的描述,devtools插件底层使用了两个类加载器,一个类加载器加载那些不会被更改的类(比如第三方的jar包),另一个官方称为“restartclassloader”,专门来用...
2020-04-21 23:43:57 157
原创 Java:判断系统为Linux还是Windows
下载地址添加或不添加Path以管理员身份运行cmd.exe,已经添加了Path的情况下,直接执行mysqld --install即可。未添加Path的情况下,需要进入到安装目录\bin目录下,执行mysql -...
2020-04-21 23:42:41 610
原创 Redist短结构
1.禁用Banner2 、自定义Banner(图片或转成ASCII码以文本显示)方式一:在/src/main/resource目录下,创建banner.txt文件,将自定义的banner放入其中即可。...
2020-04-21 23:42:01 1112
原创 Eurake原理简介,及集群环境搭建
Java提供了对象序列化机制,允许把任何对象写入输出流中或从输入流中读取。写出去即称之为序列化,读取进来即称之为反序列化。下面简单的介绍下这两者的相关细节。 说序列化前就必须得先说一下Serializable接口,Serializable接口并不含任何内容,它仅仅用来标记该类对象是否可以被序列化。 序列化要求对象本身及关联的其它引用类型必须实现了Serializable接口;另外对于被
2020-04-21 23:41:07 6284
原创 Redis使用性能优化建议
事务,出错全部回滚。部分支持(语法级别的错误,全部回滚,比如getsetxxx。运行过程中的错误,只回滚失败部分。比如incr str类型)。watch(乐观锁/悲观锁)...
2020-04-21 23:40:44 615
原创 ZooKeeper(四):从源码角度分析Leader选举机制
关于zookeeper的客户端,这里以zkCli.sh及Java版本客户端为例,前者是zk自带的一个命令行客户端,后者是当前流行的Java版客户端,比较具有象征意义。zkCli.sh简介 通过zkCli.sh建立与服务器的连接很简单:[root@localhost bin]# ./zkCli.sh -timeout 3000 -server 192.168.88.128:2181,连接后会...
2020-04-21 23:38:59 1142
原创 SpringBoot原理:启动
入口代码示例@SpringBootApplicationpublic class BootStart { public static void main(String[] args) { SpringApplication.run(BootStart.class, args); }}public class SpringApplication {... public s...
2020-04-20 00:08:02 113
原创 Redis可视化工具:Redis Desktop Manager
了解Lambda之前(发音拉姆达)得先了解策略模式,但本篇不过多涉及策略模式,仅讲解Lambda的出现、使用。Lambda表达式的出现,使我们可以用更简洁的代码实现行为参数化,行为参数化在Java8之前是通过策略模式来实现的,Lambda并不是改变这种思想,改变的仅仅是编码风格而已。看一个最简单的例子,有一List需要你根据年龄倒序排列,Java8之前你可能会这么写 public st
2020-04-20 00:05:28 9313 2
原创 Rocket事务消息
请输入用户名: /as sysdba连接到:Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production
2020-04-20 00:04:21 273
原创 Git协议:Https协议下Clone项目及授权凭证管理、SSH协议下Clone项目及密钥生成
问题引子 在新开发机上安装了Git,通过Https协议方式拉取项目后,每次git push的时候都提示输入用户名和密码 。解决方案 在终端执行git config --global credential.helper store或git config --global credential.helper manager或git config --global cr...
2020-04-20 00:02:31 1451
原创 Redis命令之scan、sscan、hscan、zcan
如果需要经常创建线程,或者并发线程数量有可能很多的情况下应该使用“线程池”,这时线程池能减少创建线程的消耗,并且也能限制(或减少 )并发线程的数量。但池中具体存放的线程数量依不同项目而不同。Excetor:执行已提交的 Runnable 任务的对象。此接口提供一种将任务提交与每个任务将如何运行的机制(包括线程使用的细节、调度等)分离开来的方法。Excetor把任务(如runnabl
2020-04-20 00:01:59 6583 1
原创 RabbitMQ消息
消息持久化 rabbitmq通过将消息保存到日志文件中来实现持久化,对于持久化消息的发送,rabbitmq在写入到日志文件后才会发送确认。此外要想实现消息持久化,必须将exchange、queue、message同时设置成持久化。 使用持久化会在一定程序下降低rabbitmq的吞吐量(10倍甚至更低),原因是需要写磁盘,但持久化可以防止由重启宕机等原因造成的消息丢失。此外由于队列在集群环境...
2020-04-19 23:46:17 276
原创 ThreadLocal
以SimpleDateFormat解析日期为例进行说明package org.world.traveler.common;import java.text.SimpleDateFormat;import java.util.Date;public final class ThreadLocalTest { private final static SimpleDateFormat
2020-04-19 23:42:53 143
原创 Redis(六)高可用Redis
上篇博客详细介绍了主从复制流程及原理,这里对主从复制的其它细节、问题及优化进行一个整理。心跳检测 复制超时与中断 哨兵模式 集群心跳检测 在命令传播阶段,除了发送写命令外,主从节点还通过心跳检测机制(通过发送PING、REPLCONF ACK命令)来检测彼此状态,心跳检测通过周期性调用replicationCrom()函数来实现。/* Replication cron fu...
2020-04-19 23:28:47 109
原创 RocketMQ,基于docker的集群环境搭建
安装 由于资源有限,这里在同一个VM中搭建基于Docker的集群环境,个人已有镜像dnmy/rocket:tag01。关于Dockerfile文件内容参考https://blog.csdn.net/w1673492580/article/details/44038151[root@localhost /]# docker pull dnmy/rocket:tag01tag01: Pul...
2020-04-19 23:26:17 973
原创 Git基本概念及常用命令详解
版本控制 目前主流的版本控制系统主要有集中式版本控制系统Centralized Version Control Systems(简称 CVCS)和分布式版本控制系统(Distributed Version Control System,简称 DVCS)两种,主流代表分别是SVN和Git。 CVCS这类系统,都通过一个单一的服务器,集中保存所有文件的修订版本、提交历史记录等信息,开发人员...
2020-04-19 23:25:16 179
原创 Zookeeper(五):内存数据、事务日志、数据快照,及数据恢复
动态SQL数据源(多数据源切换)配置(一对一,一对多)ResultMap,嵌套处理Clok、Blok数据分页查询一个Map<,key为行号,value为记录与spring集成...
2020-04-19 23:24:51 833
原创 Redis-Cluster环境搭建
导入其他配置类你不需要把所有的@Configuration东西都放在一个班级里。所述@Import注释可以用于导入额外的配置类。或者,您可以使用@ComponentScan自动获取所有Spring组件,包括@Configuration类。...
2020-04-19 23:23:56 219
java Base64精简代码
2016-03-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人