freedom

Coding changes the world


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

  • 公益404

spring-session设计解密

发表于 2020-04-12 | 分类于 spring-session

[TOC]

目的

学习一下spring-session中包含的一些设计,理解其设计思想,其次是了解内部源码,逻辑。

工程结构

来自spring-session的思考

首先思考一下spring-session要解决什么问题,其次达到什么样的设计要求,
我们首先来正向推导,然后在结合代码逆向推导,他达到了一些什么要求

阅读全文 »

RabbitMq核心概念和术语

发表于 2018-12-03 | 分类于 RabbitMq

简介

越来越多的消息中间件很容易让人产生混淆,在学习一种消息中间件的时候,最好先了解他的几种抽象概念,方便你理解,明白了这些概念,你学习起来的时候也就得心应手,同时也是使用好RabbitMQ的基础。

核心概念

  • Producer
  • Message
  • Consumer
  • AMQP
  • Queue
  • Message acknowledgment
  • Message durability
  • Prefetch count
  • Exchange
  • RoutingKey
  • Binding
  • Binding key
  • Exchange Types
    阅读全文 »

部署平台分布式锁设计

发表于 2017-10-24 | 分类于 zookeeper

[TOC]


摘要

该文档针对平台部署服务过程中遇到的临界资源互斥同步问题所设计的解决方案进行详细阐述。

背景

平台支持对服务的安装,更新,启停,备份,卸载,查询等操作,由平台发起命令,agent执行任务,由于agent是多线程并发处理任务,试想一下,多用户对主机上同一服务的进行操作,例如同时卸载和备份,会出现什么可怕的情况。老版本的所有操作,都是人工通过简单if else状态判断,没有从根本上发现问题的本质,并且耦合了业务属性,没有对其进行足够的抽象。

主要名词解释

英文名称或缩写 名词解释
curator 操作zookeeper客户端
zookeeper 一个分布式的,应用程序协调服务
平台 部署平台
agent 前置执行脚本工具

方案设计

平台锁提供了两种实现方式,一种是基于jdk原生的ReentrantLock,另一种是基于zookeeper的分布式锁,两种方式更有优劣,原生方式的好处是不需要引入第三方组件,由自己在内存中维护锁,zookeeper好处是如果未来平台支持集群,那么锁服务可以无缝衔接。

阅读全文 »

quartz源码分析——执行引擎和线程模型

发表于 2017-09-09 | 分类于 quartz

[TOC]


软件版本:quartz-2.2.3

序

上一篇介绍了quartz的启动过程,这篇主要介绍quartz的执线程模型,众所周知,quartz并没有采用定时器去完成定时任务,而是通过线程去完成。为了简化对quartz线程模型的理解,就暂用下理解方式吧

类名 名词解释
SimpleThreadPool 工头儿
WorkThread 工人
QuartzScheduleThread 老板
JobRunShell 工作,实现了Runnable
阅读全文 »

深入理解java虚拟机

发表于 2017-09-02 | 分类于 读书笔记

[TOC]


深入理解java虚拟机读书笔记

序

基于此书第二版,会加上自己的一些理解,如有错误,望指出。后续会一点点更新

第1章 走近java

主要介绍了java的技术体系,java发展史,java虚拟机发展史和java未来

阅读全文 »

Netty SSL安全配置

发表于 2017-08-26 | 分类于 网络安全

Netty SSL安全配置


[TOC]


摘要

在研发平台的过程中,涉及到平台网关和前置agent的通信加密,虽然目前软件在内网中,但是由于平台和agent的特殊性,一旦被控制,部署的软件就会受到很大威胁,平台网关采用Netty开发,下面主要介绍一下netty的ssl配置和安全软件扫出的Diffie-Hellman弱密码问题解决方法

阅读全文 »

跨站脚本攻击介绍

发表于 2017-08-16 | 分类于 网络安全

xss简介

跨站脚本在英文中称为Cross-Site Scripting,缩写为CSS。但是,由于与层叠样式表 (Cascading Style Sheets)缩写同名,特将跨站脚本缩写为XSS。
跨站脚本,顾名思义,就是恶意攻击者利用网站漏洞往Web页面里插入恶意代码 例如

案例一

现在假设攻击者在论坛网站A的一个帖子进行了如下回复:

阅读全文 »

ssl Diffie-Hellman弱密码问题

发表于 2017-08-16 | 分类于 网络安全

开发相关

  • tomcat8
  • jdk1.8
  • springboot
  • 扫描软件 Nessus

    异常信息

    这里写图片描述

    关于Diffie-Hellman

    Diffie-Hellman:一种确保共享KEY安全穿越不安全网络的方法,它是OAKLEY的一个组成部分。Whitefield与Martin Hellman在1976年提出了一个奇妙的密钥交换协议,称为Diffie-Hellman密钥交换协议/算法(Diffie-Hellman Key Exchange/Agreement Algorithm).这个机制的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥。然后可以用这个密钥进行加密和解密。但是注意,这个密钥交换协议/算法只能用于密钥的交换,而不能进行消息的加密和解密。双方确定要用的密钥后,要使用其他对称密钥操作加密算法实际加密和解密消息。
    阅读全文 »

跨站请求伪造防御

发表于 2017-08-14 | 分类于 网络安全

开发相关

  • jdk1.8
  • springmvc
  • 扫描软件 Acunetix WVS

    背景

    最近安全问题越来越多,公司软件也面临出海,刚开始公司软件大部分部在公安内网,安全问题没有太多重视。最近买了安全公司的扫描软件,一扫扫出很多安全问题,其中有一个是跨站请求伪造问题。

常见的攻击模式

阅读全文 »

shadowsocks之采用google bbr算法优化

发表于 2017-07-30 | 分类于 实用工具

转自https://www.vultr.com/docs/how-to-deploy-google-bbr-on-centos-7
翻译by rou liu

上一篇介绍完了部署shadowsocks 大多数情况下已经满足需求,但是如果想看youtube高清视频
或者在线直播,那就要用到接下来的方法,感谢goolgle。

什么是bbr

BBR(Bottleneck Bandwidth and RTT)是一个新的拥塞控制算法,由谷歌贡献的Linux内核的TCP协议栈。有了BBR,Linux服务器可以得到显著提高连接的吞吐量和减少延迟。此外,它很容易部署,因为这种算法只需要在发送方更新,而不需要在网络或在接收端部署BBR。

在本文中,我将向你展示如何在Vultr CentOS的7 KVM服务器实例上部署BBR。

前提条件

  • 一个Vultr CentOS的7 x64的服务器实例。
  • 一个sudo的用户。
    阅读全文 »
123
roy liu

roy liu

keep your dream alive

30 日志
16 分类
35 标签
© 2020 roy liu
由 Hexo 强力驱动
主题 - NexT.Pisces