自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 CentOS7修改ssh端口号,增强服务器安全

最近发现购买的vps总是有很多次失败尝试登录的记录,感觉很不安全,遂想到修改ssh默认端口来降低风险1.修改配置文件vim /etc/ssh/sshd_config 在#Port 22下增加端口Port 10001,去掉22端口的注释(以防修改端口失败,默认端口也不能登录)SSH默认监听端口就是22,上面我保留了22端口,以防修改端口失败,默认端口也不能登录增加10001端口,大家修改端口时候最

2017-11-16 14:02:35 575 1

转载 10.Spring Cloud:服务网关(过滤器)【Dalston版】

在前两篇文章:服务网关(基础)、服务网关(路由配置)中,我们了解了Spring Cloud Zuul作为网关所具备的最基本功能:路由。本文我们将具体介绍一下Spring Cloud Zuul的另一项核心功能:过滤器。过滤器的作用通过上面所述的两篇我们,我们已经能够实现请求的路由功能,所以我们的微服务应用提供的接口就可以通过统一的API网关入口被客户端访问到了。但是,每个客户端用户请求微服务应用提供的

2017-10-30 09:58:07 287

转载 9.Spring Cloud:服务网关(基础)【Dalston版】

通过之前几篇Spring Cloud中几个核心组件的介绍,我们已经可以构建一个简略的(不够完善)微服务架构了。比如下图所示: 我们使用Spring Cloud Netflix中的Eureka实现了服务注册中心以及服务注册与发现;而服务间通过Ribbon或Feign实现服务的消费以及均衡负载;通过Spring Cloud Config实现了应用多环境的外部化配置以及版本管理。为了使得服务集群更为健壮

2017-10-26 08:57:36 349

转载 8.Spring Cloud:服务容错保护(Hystrix断路器)【Dalston版】

前言在前两篇《Spring Cloud:服务容错保护(Hystrix服务降级)》和《Spring Cloud:服务容错保护(Hystrix依赖隔离)》中,我们对Hystrix提供的服务降级和依赖隔离有了基本的认识。下面我们将继续说说Hystrix的另外一个重要元件:断路器。断路器断路器模式源于Martin Fowler的Circuit Breaker一文。“断路器”本身是一种开关装置,用于在电路上保

2017-10-25 15:33:22 1252

转载 7.Spring Cloud:服务容错保护(Hystrix依赖隔离)【Dalston版】

前言在上一篇《Spring Cloud:服务容错保护(Hystrix服务降级)》中,我们已经体验了如何使用@HystrixCommand来为一个依赖资源定义服务降级逻辑。实现方式非常简单,同时对于降级逻辑还能实现一些更加复杂的级联降级等策略。之前对于使用Hystrix来实现服务容错保护时,除了服务降级之外,我们还提到过线程隔离、断路器等功能。那么在本篇中我们就来具体说说线程隔离。依赖隔离“舱壁模式”

2017-10-24 16:59:54 272

转载 6.Spring Cloud:服务容错保护(Hystrix服务降级)【Dalston版】

前言在微服务架构中,我们将系统拆分成了一个个的服务单元,各单元应用间通过服务注册与订阅的方式互相依赖。由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依赖服务自身问题出现调用故障或延迟,而这些问题会直接导致调用方的对外服务也出现延迟,若此时调用方的请求不断增加,最后就会出现因等待出现故障的依赖方响应而形成任务积压,线程资源无法释放,最终导致自身服务的瘫痪,进

2017-10-24 16:17:23 311

转载 5.Spring Cloud:分布式配置中心【Dalston版】

Spring Cloud Config是Spring Cloud团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分。其中服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息、加密/解密信息等访问接口;而客户端则是微服务架构中的各个微服务应用或基础设施,它们通过指定的配置中心来管理应用资源与

2017-10-24 14:30:53 247

转载 4.Spring Cloud:服务消费(Feign)【Dalston版】

通过前两篇《Spring Cloud:服务消费(基础)》和《Spring Cloud:服务消费(Ribbon)》,我们已经学会了在Spring Cloud中基本的服务调用方式。本文我们将继续介绍Spring Cloud中的另外一个服务消费的工具:Spring Cloud Feign。Spring Cloud FeignSpring Cloud Feign是一套基于Netflix Feign实现的声

2017-10-24 13:50:51 252

转载 3.Spring Cloud:服务消费(Ribbon)【Dalston版】

通过上一篇《Spring Cloud:服务消费(基础)》,我们已经学会如何通过LoadBalancerClient接口来获取某个服务的具体实例,并根据实例信息来发起服务接口消费请求。但是这样的做法需要我们手工的去编写服务选取、链接拼接等繁琐的工作,对于开发人员来说非常的不友好。所以,下来我们看看Spring Cloud中针对客户端负载均衡的工具包:Spring Cloud Ribbon。动手试一试

2017-10-24 13:34:33 212

转载 2.Spring Cloud:服务消费(基础)【Dalston版】

通过上一篇《Spring Cloud:服务注册与发现》,我们已经成功地将服务提供者:eureka-client注册到了Eureka服务注册中心上了,同时我们也通过DiscoveryClient接口的getServices获取了当前客户端缓存的所有服务清单,那么接下来我们要学习的就是:如何去消费服务提供者的接口?使用LoadBalancerClient在Spring Cloud Commons中提供

2017-10-23 15:48:28 209

转载 1.Spring Cloud:服务注册与发现

微服务架构什么是“微服务架构”呢?简单的说,微服务架构就是将一个完整的应用从数据存储开始垂直拆分成多个不同的服务,每个服务都能独立部署、独立维护、独立扩展,服务与服务间通过诸如RESTful API的方式互相调用。服务治理在简单介绍了Spring Cloud和微服务架构之后,下面回归本文的主旨内容,如何使用Spring Cloud来实现服务治理。由于Spring Cloud为服务治理做了一层抽象接口

2017-10-23 15:37:29 244

原创 ubuntu更新火狐

1.删除老版本sudo apt-get remove firefox2.下载最新软件包http://www.firefox.com.cn/download/ 解压到本地3.移动文件到/opt文件夹下sudo mv firefox /opt4.创建桌面图标在/usr/share/applications下创建firefox.desktop文件sudo touch firefox.desktop编辑文

2017-11-16 09:23:56 2936

原创 CentOS安装好服务后外网不能访问

问题:CentOS安装好nginx后,通过外网不能访问的到怀疑:防火墙没有通过80端口解决方法:firewall-cmd --zone=public --add-port=80/tcp --permanent 命令含义:–zone #作用域–add-port=80/tcp #添加端口,格式为:端口/通讯协议–permanent #永久生效,没有此参数重启后失效重启防火墙:systemctl

2017-11-11 10:35:40 1514

转载 nginx负载均衡策略

轮询(默认策略)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除指定权重指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 upstream servername { server 192.168.0.1 weight=1; server 192.168.0.2 weight=12; } IP绑定 ip_hash每个请求

2017-11-03 10:22:51 244

原创 Spring Boot后台启动不打印nohup.out

nohup java -jar yatai_pro-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod >/dev/null 2>&1 &关键在于最后的 >/dev/null 2>&1 部分,/dev/null是一个虚拟的空设备(类似物理中的黑洞),任何输出信息被重定向到该设备后,将会石沉大海 /dev/null 表示将标准输出信息重定向到”黑洞”2

2017-10-26 17:30:40 6440

转载 常见网络攻击及处理办法

跨站请求伪造(CSRF)原理危害是攻击者可以盗用你的身份,以你的名义发送恶意请求。比如可以盗取你的账号,以你的身份发送邮件,购买商品等例子在某个论坛管理页面,管理员可以在list.php页面执行删除帖子操作,根据URL判断删除帖子的id,像这样的一个URLhttp://localhost/list.php?action=delete&id=12当恶意用户想管理员发送包含CSFR的邮件,骗取管理员访问

2017-10-08 10:49:47 2991

转载 Spring Session学习(一)

Session和Cookie这两个概念,在学习java web开发之初,大多数人就已经接触过了。最近在研究跨域单点登录的实现时,发现对于Session和Cookie的了解,并不是很深入,所以打算写两篇文章记录一下自己的理解。在我们的应用集成Spring Session之前,先补充一点Session和Cookie的关键知识。Session与Cookie基础由于http协议是无状态的协议,为了能够记住请

2017-09-08 09:13:44 461

原创 spring boot整合activemq

配置文件设置application.propertiesspring.activemq.broker-url=tcp://localhost:61616spring.activemq.user=adminspring.activemq.password=adminspring.activemq.in-memory=truespring.activemq.pool.enabled=false生

2017-07-28 11:13:40 874

原创 如何保持数据库和缓存的一致性

更新缓存策略失效:应用程序从cache取数据,没有得到,则从数据库取数据,然后将数据放入cache 命中:应用从cache取数据,若取到则返回 更新:把数据更新到数据库,然后使cache失效 借用网上两张图 有没有其他策略?读操作容易理解,现在讨论一下写的操作如果先使cache失效,后更新数据库,是否可行这么做引发的问题是,如果A,B两个线程同时要更新数据,并且A,B已经都做完了删除

2017-07-26 11:01:14 11117 1

转载 Java多线程编程

相关概念线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源,但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。线程状态创建、就绪、运行、阻塞、终止 1. 创建: 当用new操作符创建一个线程时, 例如new Thread(r),线程还没有开始运行,此时线程处在新建状态。 当一个线程

2017-07-17 14:56:53 240

转载 spring booot多环境配置

我们在开发Spring Boot应用时,通常同一套程序会被应用和安装到几个不同的环境,比如:开发、测试、生产等。其中每个环境的数据库地址、服务器端口等等配置都会不同,如果在为不同环境打包时都要频繁修改配置文件的话,那必将是个非常繁琐且容易发生错误的事。对于多环境的配置,各种项目构建工具或是框架的基本思路是一致的,通过配置多份不同环境的配置文件,再通过打包命令指定需要打包的内容之后进行区分打包,Spr

2017-07-15 15:01:42 940 1

原创 Git基本命令

删除远程分支git push origin :branName打tag// 打标签git tag -a v0.0.1 -m "标签说明"// 推送标签到远程git push origin v0.0.1// 查看所有标签git tag -l

2017-07-07 15:48:18 320 2

原创 socket实现服务端客户端通讯

server/** * 主线程发送消息 * 子线程接收消息 */package com.yatai.web;import java.awt.BorderLayout;import java.awt.Container;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.A

2017-07-07 14:55:40 230

原创 ajax跨域请求

jsonp方式跨域请求需要前端修改请求方式,而且jsonp并不是官方协议,不支持使用这种方式HTML5中提供的XMLHTTPREQUEST Level2(即XHR2)已经实现了跨域访问(IE10以下不支持)解决方式只需要在server端返回头中添加几个属性即可// *号表示所有的域都可以接收header("Access-Control-Allow-Origin:*");// 指明支持跨域的请求

2017-07-07 14:13:31 173

原创 关闭占用某端口的进程

查找占用某端口的进程 lsof -i :port杀死进程 kill -9 PID

2017-07-06 17:07:25 261

转载 递归

递归是什么定义:程序调用自身的编程技巧称为递归–百度词条. 首先我们思考一下1+2+3….+100=?要怎么写程序来计算呢? 1. 很多人第一反应来使用for循环 2. 利用公式 3. 使用递归public int sum(int n) { if(n == 1) { return 1; } return n + sum(n - 1);}通过初体验对比

2017-07-05 16:47:21 186

原创 vue环境的搭建

vue的学习与安装安装nodenode官网下载linux包 *.tar.xz解压tar.xz压缩文件tar -Jxv -f *.tar.xz为node和npm建立两个软连接,使之可以全局运行ln -s /path_to/bin/node /usr/local/bin/nodeln -s /path_to/bin/npm /usr/local/bin/npm验证node和npm是否安装成功no

2017-07-05 13:50:17 223

原创 salt加密

以注册登录为例介绍一下salt散列的过程:注册:用户输入账户和【密码】系统生成一个随机的【salt】将【密码】和【salt】连接,然后进行md5加密,得到【MD51】将【MD51】和salt都存入数据库登录:用户输入账户和密码服务器根据账户,在数据库获得【MD51】和【salt】将用户输入的密码和【salt】连接,然后进行md5加密,得到【MD52】比较【MD51】和【MD52】来

2017-07-05 10:48:28 451

原创 乐观锁悲观锁

乐观锁谈到了MySQL悲观锁,但是悲观锁并不是适用于任何场景,它也有它存在的一些不足,因为悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。如果加锁的时间过长,其他用户长时间无法访问,影响了程序的并发访问性,同时这样对数据库性能开销影响也很大,特别是对长事务而言,这样的开销往往无法承受。所以与悲观锁相对的,我们有了乐观锁,具体参见下面介绍:乐观锁介绍:乐观锁( Optimisti

2017-07-05 10:34:16 425

原创 js字符串替换

js中当用replace时,只是替换了目标字符的第一个比如var str = "2012-01-02";str.replace("-","");结果为 201201-02如果需要全部替换则var str = "2012-01-02";str.replace("/-/g","");结果为 20120102例子:替换全部反斜杠为正斜杠replace(/\\/g,"\/");

2017-07-05 10:01:58 187

原创 crontab相关命令

什么是crontabcrontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令ubuntu中常用命令查看cron状态sudo service cron status开启cronsudo /etc/init.d/cron start关闭cronsudo /etc/init.d/cron stop重启cronsudo /etc/init.d/cron rest

2017-07-05 09:41:25 215

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除