- 博客(558)
- 资源 (11)
- 收藏
- 关注
转载 一个人花8块钱买了只鸡,9块钱卖了,又10块钱买回来,11块钱又卖了,他赚了多少钱
一个人花8块钱买了只鸡,9块钱卖了,又10块钱买回来,11块钱又卖了,他赚了多少钱?这是IBM面试时的题目,有四种算法:1、9-8=1,11-10=1,1+1=2,所以最后赚2元。2、最初只有8块钱,最后你有11块了, 所以是赚3块;3、第一次买卖,主人公损失8块,获得一只鸡,第二次买卖;主人公获得9块, 损失一只鸡;第三次买卖,主人公损失10块,获得一只鸡;第四买卖,主人公 ...
2019-03-31 08:08:45
51457
29
转载 分布式应用中的分布式锁
分布式锁是控制分布式系统之间同步访问共享资源的一种方式。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要通过一些互斥手段来防止彼此之间的干扰,以保证一致性,在这种情况下,就需要使用分布式锁了。简而言之,分布式锁就是指在分布式的部署环境下,通过锁机制来让多客户端互斥的对共享资源进行访问。分布式锁要满足哪些要求呢?1、互斥性–在分布式系统环境...
2019-03-22 14:14:53
1720
转载 高并发应用中请求幂等处理
【1】幂等概念和场景幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。在编程中,一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,“getUsername()和setTrue()”函...
2019-03-22 14:10:08
2964
转载 每秒上万并发下的Spring Cloud性能优化之道
一、写在前面相信不少朋友都在自己公司使用Spring Cloud框架来构建微服务架构,毕竟现在这是非常火的一门技术。如果只是用户量很少的传统IT系统,使用Spring Cloud可能还暴露不出什么问题。如果是较多用户量,高峰每秒高达上万并发请求的互联网公司的系统,使用Spring Cloud技术就有一些问题需要注意了二、场景引入,问题初现先不空聊原理、理论,来讲一个真实的例子,...
2019-03-22 11:07:41
2844
转载 微服务架构及幂等性
微服务架构微服务架构是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。它的主要作用是将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。和微服务相对应的,这种方式一般被称为单体式开发(Monolithic)。既所有的功能打包在一个 WAR 包里,基本没有外部依赖(除了容器),部署在一个 JavaEE 容器(Tomcat,JBoss...
2019-03-22 10:51:35
913
转载 需求管理
对于PM来说,要管理好需求,离不开四个层面的列表管理。1、Feature List:需求特性列表,日常的需求管理,管理好了,治大国如烹小鲜,管理不好,每时每刻被动煎熬。2、Feedback List:反馈列表,各个渠道反馈的问题记录,可能有用户的骂声,Thats Great!,用户的痛点出现了!维护好反馈列表,有可能会转化为需求。3、Bug List:缺陷列表,自己经常把玩产品过程中...
2019-03-20 08:42:13
953
转载 浅谈MySQL集群高可用架构
前言高可用架构对于互联网服务基本是标配,无论是应用服务还是数据库服务都需要做到高可用。对于一个系统而言,可能包含很多模块,比如前端应用,缓存,数据库,搜索,消息队列等,每个模块都需要做到高可用,才能保证整个系统的高可用。对于数据库服务而言,高可用可能更复杂,对用户的服务可用,不仅仅是能访问,还需要有正确性保证,因此数据库的高可用方案是一直以来的讨论热点,今天就各种的高可用方案,谈一下个人的一些...
2019-03-08 13:28:28
2783
原创 软件架构设计-五视图方法论
在实际工作中,我们经常听到“架构”和“架构师”这样的名词,并不新鲜,但是总让很多刚入门的在实际工作中,我们经常听到“架构”和“架构师”这样的名词,并不新鲜,但是总让很多刚入门的人感觉很神秘,甚至是高深莫测。很少有人对“架构”有全面的了解和认识能并说清楚架构是什么,更谈不上掌握了。事实上,也只有极少数人能成为或者被冠以“架构师”这样的title。为此,笔者总结了对架构的一些理解,希望能够补...
2019-03-06 16:33:17
3006
转载 5种架构视图
在实际工作中,我们经常听到“架构”和“架构师”这样的名词,并不新鲜,但是总让很多刚入门的人感觉很神秘,甚至是高深莫测。很少有人对“架构”有全面的了解和认识能并说清楚架构是什么,更谈不上掌握了。事实上,也只有极少数人能成为或者被冠以“架构师”这样的title。为此,笔者总结了对架构的一些理解,希望能够补充很多初入门的人在这方面认识上的不足,纠正一些误解。高手和老鸟就直接跳过吧。 架构的分类 ...
2019-03-06 16:29:37
14713
转载 各种系统架构图与详细说明
共享平台逻辑架构设计如上图所示为本次共享资源平台逻辑架构图,上图整体展现说明包括以下几个方面:1 应用系统建设本次项目的一项重点就是实现原有应用系统的全面升级以及新的应用系统的开发,从而建立行业的全面的应用系统架构群。整体应用系统通过SOA面向服务管理架构模式实现应用组件的有效整合,完成应用系统的统一化管理与维护。2 应用资源采集整体应用系统资源统一分为两类,具体包括结构化资...
2019-03-06 15:49:46
2076
转载 服务架构概述—Spring Cloud&Dubbo
微服务架构概述微服务是一种架构模式或一种架构风格,提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。服务之间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生成环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服...
2019-03-06 14:46:06
211
转载 基于 SpringCloud 的微服务治理架构落地实践
一 概述关于微服务的介绍目前已经有很多文章做了介绍,本文不再对微服务的概念再做进一步阐述,重点将介绍微服务架构具体开发运维方面的经验总结,侧重于落地实践。目前业界比较热门的微服务开发框架是SpringCloud和dubbo,由于前期一些项目已经使用了SpringBoot进行快速开发,自然就平滑地升级到SpringCloud进行微服务实践。另外,按照微服务不断演进的思路,我们首先对非核心业务...
2019-03-06 14:42:45
855
1
原创 springcloud2.1.x webflux
网上有很多函数式编程的demo,很少注解式的demo,以下demo为注解式,注解不用写路由,也不用写Handler .使用springcloud 2.1.3github:https://github.com/moonpure/com.study里面是最简单的,高手见笑。1.pom.xml<parent> <groupId>org.springfra...
2019-02-23 21:30:51
951
转载 Reactive编程
Reactive编程很有趣,现在也有各种各样的讨论,概念上不是很容易理解。本文会以具体的形式介绍相关的概念。Reactive编程跟并发和高性能在概念上有一些重合,但在原理上完全不同。Reactive编程跟函数式编程是非常类似的。一些人认为Reactive编程并不是什么新概念,他们在日常工作中经常使用(例如javascript)。另一些人认为这是微软做出的新发明(Reactive这个名字最早来源于C...
2019-01-23 14:20:35
528
转载 使用Redisson实现分布式锁
1. 可重入锁(Reentrant Lock)Redisson的分布式可重入锁RLock Java对象实现了java.util.concurrent.locks.Lock接口,同时还支持自动过期解锁。public void testReentrantLock(RedissonClient redisson){ RLock lock = redisson.getLock(...
2019-01-23 11:57:52
392
转载 Redis的三个框架:Jedis,Redisson,Lettuce
Jedis api 在线网址:http://tool.oschina.net/uploads/apidocs/redis/clients/jedis/Jedis.htmlredisson 官网地址:https://redisson.org/redisson git项目地址:https://github.com/redisson/redissonlettuce 官网地址:https://...
2019-01-23 11:29:58
5151
1
转载 用Redis构建分布式锁
用Redis构建分布式锁在不同进程需要互斥地访问共享资源时,分布式锁是一种非常有用的技术手段。 有很多三方库和文章描述如何用Redis实现一个分布式锁管理器,但是这些库实现的方式差别很大,而且很多简单的实现其实只需采用稍微增加一点复杂的设计就可以获得更好的可靠性。 这篇文章的目的就是尝试提出一种官方权威的用Redis实现分布式锁管理器的算法,我们把这个算法称为RedLock,我们相信这个算法会...
2019-01-23 10:57:04
217
转载 Spring Cloud Gateway整合Swagger聚合微服务系统API文档(非Zuul)
首先是子项目Spring Boot项目正常集成Swagger。在业务项目Admin中添加Swagger依赖包(使用Eureka为注册中心,文章未展示多余部分)。<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifa...
2019-01-21 10:12:40
7427
6
转载 springboot中filter、interceptor的区别和实例
从概念上来讲,filter是servlet规范定义的,而interceptor是spring定义的。 作用在什么位置? 一次会话,请求在进入servlet容器执行service()方法之前就会经过filter过滤(上图步骤1),在离开servlet容器相应客户端的时候也会经过过滤器(上图步骤7)。而interceptor,分两种情况,一种是对会话的拦截,需要定义类实现spring...
2019-01-21 09:41:30
3521
转载 Spring boot下添加filter
前言传统的javaEE增加Filter是在web.xml中配置,如以下代码:<filter> <filter-name>TestFilter</filter-name> <filter-class>com.cppba.filter.TestFilter</filter-class></filter>...
2019-01-21 09:35:05
308
转载 Redis事务和分布式锁
Redis事务 Redis中的事务(transaction)是一组命令的集合。事务同命令一样都是Redis最小的执行单位,一个事务中的命令要么都执行,要么都不执行。Redis事务的实现需要用到 MULTI 和 EXEC 两个命令,事务开始的时候先向Redis服务器发送 MULTI 命令,然后依次发送需要在本次事务中处理的命令,最后再发送 EXEC 命令表示事务命令结束。 举个例子,使用...
2019-01-18 18:32:19
204
转载 kafka消息会不会丢失?为什么?看了这个你就清楚了
消息发送方式想清楚Kafka发送的消息是否丢失,需要先了解Kafka消息的发送方式。Kafka消息发送分同步(sync)、异步(async)两种方式默认是使用同步方式,可通过producer.type属性进行配置;Kafka保证消息被安全生产,有三个选项分别是0,1,-1通过request.required.acks属性进行配置:0代表:不进行消息接收是否成功的确认(默认值...
2019-01-18 15:55:19
2278
转载 Sharding-Proxy的使用
1、官网下载sharding-jdbc的官网http://shardingsphere.io/document/current/cn/manual/sharding-proxy/usage/下载完进入conf文件如下: 2、配置文件 打开server.yaml文件,把下面部分注释打开 打开config-sharding.yaml文件,把全部只...
2019-01-16 16:26:56
8345
8
原创 JAVA代码热部署,在线不停服动态更新
本地debug的时候,可以实时编译并更新代码,线上也可以不停服来动态更新类,即所说的java热部署。另 :spring-loadedspring-boot-devtoolsJRebel 三种方式也可以,JDK代理的两种方式:1.premain方式是Java SE5开始就提供的代理方式,但其必须在命令行指定代理jar,并且代理类必须在main方法前启动,它要求开发者在应用启动前就...
2018-12-29 13:53:20
5522
2
转载 SSL/TLS工作原理
一: SSL/TLS介绍什么是SSL,什么是TLS呢?官话说SSL是安全套接层(secure sockets layer),TLS是SSL的继任者,叫传输层安全(transport layer security)。说白点,就是在明文的上层和TCP层之间加上一层加密,这样就保证上层信息传输的安全。如HTTP协议是明文传输,加上SSL层之后,就有了雅称HTTPS。它存在的唯一目的就是保证上层通讯安全...
2018-12-27 13:12:11
617
转载 java实现证书链和签名验证
public static boolean verify(X509Certificate X509certificateRoot,Collection collectionX509CertificateChain,X509CRL X509crl,String stringTarget) {//获取证书链长度int nSize=collectionX509CertificateChain.s...
2018-12-25 18:47:44
11936
2
转载 java 证书链添加到p12(pfx)
我有问题,直接将此p12证书转换为java要求的工作jks密钥库.我这样做了: keytool -importkeystore -srckeystore certificate.p12 -srcstoretype PKCS12 -destkeystore certificate1.jks -deststoretype JKS -storepass secretkeytool -im...
2018-12-25 18:43:40
1627
转载 使用Hibernate Validator进行跨字段验证
每个字段约束应由不同的验证器注释处理,或者换句话说,不建议对一个字段的验证注释检查其他字段。跨域验证应在类级别进行。此外,表达相同类型的多个验证的JSR-303 Section 2.2优选方式是通过注释列表。这允许每次匹配指定错误消息。 例如,验证通用形式: @FieldMatch.List({ @FieldMatch(first = "password", se...
2018-12-25 10:09:24
5259
原创 springMVC中两种validation的简单使用
校验方式二: Spring Validator Validator接口的实现:Spring框架的Validator接口定义:package org.springframework.validation;public interface Validator {boolean supports(Class<?> clazz);void validate(Object targe...
2018-11-30 21:13:04
871
转载 使用curl 命令模拟POST/GET请求
curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载。curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。在进行web后台程序开发测试过程中,常常会需要发送url进行测试,使用curl可以方便地模拟出符合需求的url命令假设目标url 为:127...
2018-11-22 11:33:15
586
转载 免费SSL证书
SSL证书,用于加密HTTP协议,也就是HTTPS。随着淘宝、百度等网站纷纷实现全站Https加密访问,搜索引擎对于Https更加友好,加上互联网上越来越多的人重视隐私安全,站长们给网站添加SSL证书似乎成为了一种趋势。给自己的网站添加SSL证书其实并不复杂,但是关键一点就是首先要拥有一个SSL证书。由于SSL证书价格不菲,很多个人站长会选择放弃使用Https。但是,自从开源、免费的Let's...
2018-11-19 17:19:31
851
转载 X.509证书DN详解
X.509使用DN(Distinct Name)来唯一标识一个实体,其功能类似我们平常使用的ID,不过不同的是,DN不再是类似 123456 这样得数字标识,而是采用多个字段来标识一个实体,例如”CN=老所,C=CN”,这样做的好处在于方便匹配到诸如LDAP一样的目录服务中。那么,DN的字段是否可以随意增加呢?比如我能否在”CN=老所,O=测试公司”这样一个DN上再增加一个ID属性,变成”CN=老...
2018-11-19 14:30:56
7896
转载 JAVA对于数字证书的常用操作
一:需要包含的包import java.security.*;import java.io.*;import java.util.*;import java.security.*;import java.security.cert.*;import sun.security.x509.*import java.security.cert.Certificate;im...
2018-11-17 15:39:42
438
转载 java实现安全证书相关操作
package test; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; im...
2018-11-17 15:18:00
1676
转载 java程序实现对证书的操作
1 Java程序从证书文件读取证书import java.io.*;import java.security.cert.*; public class PrintCert{ public static void main(String args[ ]) throws Exception{ CertificateFactory cf=CertificateFactory.g...
2018-11-17 14:24:51
3179
转载 ROOT证书、CA证书和使用CA签发的X.509证书
简介日常开发中,我们程序员不怎么会接触证书相关的问题,对信息安全领域相关的内容知之甚少。因为平时主要实现的业务很少要直接面向底层的通信,也就很少关注这证书这样的知识。在一般情况下,我们仅仅只是在使用一些高层的依赖中会引入证书、加密相关的依赖包,比如:<!-- https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15...
2018-11-15 18:57:49
9107
转载 深入理解加密、解密、数字签名(签名证书、加密证书)的组成和数字证书
深入理解加密、解密、数字签名和数字证书 随着电子商务的迅速发展,信息安全已成为焦点问题之一,尤其是网上支付和网络银行对信息安全的要求显得更为突出。为了能在因特网上开展安全的电子商务活动,公开密钥基础设施( PKI, Public Key Infrastructure )逐步在国内外得到广泛应用。我们是否真的需要 PKI , PKI 究竟有什么用?下面通过一个案例一步步地来剖析这个问题 :...
2018-11-14 16:17:31
14076
转载 Log4j2-Log4j 2介绍及使用
Log4j 2 官网Log4j 2简介架构日志级别FilterAppender 将日志请求打印到多个目标Layout 自定义输出格式转到Log4j 2 API控制台Appender的简单配置文件Appender的简单配置SocketAppenderAsyncAppender控制台和文件的AsyncAppender配置Log4j 2使用Log4j 2Log4j 2 官网...
2018-10-26 15:13:10
7703
转载 取编译后的配置文件路径
package com.sapss.util;/**自己想取配置文件的路径一般都是要取编译后的路径,这可以用流,但用下面的方式是万能的。*/import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;...
2018-10-26 08:00:24
564
转载 openssl 编译安装
官方下载地址:https://www.openssl.org/source/#解压$ tar -zxvf openssl-1.1.0h.tar.gz$ cd openssl-1.1.0h#配置(使用sudo是因为要prefix的访问权限)$ sudo ./config --prefix=/usr/local/openssl该步骤出现如下警告Configured for darwin-i...
2018-10-14 21:54:26
2388
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人