闲谈Tomcat性能优化

Tomcat在各位JavaWeb从业者常常就是默认的开发环境,但是Tomcat的默认配置作为生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈. 幸好Tomcat还有很多的提升空间.下文介绍一下Tomcat优化,可以分为内存,线程,IO. 一:Tomcat内存优化,启动时告诉JVM...

2019-04-10 21:10:24

阅读数 19

评论数 0

Tomcat Connector三种运行模式(BIO, NIO, APR)的比较和优化

昨天看到基础平台做了线上Tomcat配置优化的文章,借此了解下Tomcat三种运行模式! Tomcat Connector的三种不同的运行模式性能相差很大,有人测试过的结果如下: 这三种模式的不同之处如下: BIO: 一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。 ...

2019-04-10 07:11:04

阅读数 16

评论数 0

RandomLoadBalance

今天总结下之前看过的dubbo源码中RandomLoadBalance使用的算法! 一:每个服务的权重不同 算法分析:在该段代码中,通过获取提供者服务的权重,然后计算出总权重,通过总权重计算出offset,然后在减去每个服务的权重,如果发现小于0,则调用当前服务。 例:有3个服务 A,B...

2019-04-02 21:56:12

阅读数 24

评论数 0

docker 基本原理及快速入门

今天简单总结下docker相关知识! 什么是docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码...

2019-04-02 21:46:10

阅读数 18

评论数 0

数据库的联合索引

今天简单总结下联合索引相关的知识! 数据库表T有A,B,C三个字段,对其建立联合索引uniq(A,B,C),请问如下查询哪些会用到索引? 1. SELECT * FROM T WHERE A=a AND B=b AND C=c; 2. SELECT * FROM T WHERE A=a AND B...

2019-03-30 21:18:13

阅读数 18

评论数 0

Mybatis执行流程分析(源码篇)

1. SqlSessionFactory 与 SqlSession.   通过前面的章节对于mybatis 的介绍及使用,大家都能体会到SqlSession的重要性了吧, 没错,从表面上来看,咱们都是通过SqlSession去执行sql语句(注意:是从表面看,实际的待会儿就会讲)。那么咱们就先看...

2019-03-12 22:43:54

阅读数 35

评论数 0

CAS原理及使用

概念介绍: CAS (Central Authentication Service)中央认证服务,CAS 是 耶鲁大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法。其包括两部分: CAS Server 和 CAS Client 。 CAS Server负责完成对用户的...

2019-02-26 15:51:40

阅读数 52

评论数 0

@Primary-在spring中常被忽视的注解

在spring 中使用注解,常使用@Autowired, 默认是根据类型Type来自动注入的。但有些特殊情况,对同一个接口,可能会有几种不同的实现类,而默认只会采取其中一种的情况下 @Primary  的作用就出来了。下面是个简单的使用例子。 有如下一个接口 public interface ...

2019-02-18 15:15:04

阅读数 16

评论数 0

Nginx 通过 Lua + Redis 实现动态封禁 IP

一、背景 为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单。对于黑名单之内的 IP ,拒绝提供服务。 二、架构 实现 IP 黑名单的功能有很多途径: 1、在操作系统层面,配置 iptables,拒绝指定 IP 的网络请求; 2、在 Web Server 层...

2019-01-31 11:11:01

阅读数 61

评论数 0

MySQL高可用架构之MHA

一、MHA简介         MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司的youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在...

2019-01-31 11:04:18

阅读数 36

评论数 0

Filebeat+Kafka+Logstash+ElasticSearch+Kibana搭建完整版

1. 了解各个组件的作用 Filebeat是一个日志文件托运工具,在你的服务器上安装客户端后,filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读) Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据 Logst...

2019-01-31 10:47:08

阅读数 228

评论数 1

RabbitMQ事务和Confirm发送方消息确认

正常情况下,如果消息经过交换器进入队列就可以完成消息的持久化,但如果消息在没有到达broker之前出现意外,那就造成消息丢失,有没有办法可以解决这个问题? RabbitMQ有两种方式来解决这个问题: 通过AMQP提供的事务机制实现; 使用发送者确认模式实现; 一、事务使用 事务的实现主要是...

2019-01-13 19:24:46

阅读数 41

评论数 0

mongodb查询内嵌文档

mongodb查询内嵌文档 假设有这样一个文档: db.XXX.remove(); db.XXX.insert({"id":1, "members":[{"name":&quo...

2019-01-13 11:35:03

阅读数 94

评论数 0

MQ消息最终一致性事务

本文我们将学习到一种常见的柔性事务解决方案:消息一致性事务方案。 对于TCC型事务,跨系统的调用均是基于服务间的直接调用,即很大程度上是同步调用。基于TCC方案能够保证主子事务同时成功,同时失败。 但实际开发中,由于多方面的考虑,我们会将服务拆分为异步方式,一般是基于MQ进行服务间的解耦,服务...

2019-01-12 10:54:27

阅读数 201

评论数 0

Git关联到新的远程分支

1、如果你已经在远程创建了一个分支,远程分支地址:https://xxxxxxx/wangdong/helloworld.git  2、从命令行创建一个新的仓库,关联到该远程分支 touch README.md git init git add README.md git commit -m ...

2018-12-23 11:59:18

阅读数 162

评论数 0

git回滚到任意版本

先显示提交的log $ git log -3 commit 4dc08bb8996a6ee02f Author: Mark <xxx@xx.com> Date: Wed Sep 7 08:08:53 2016 +0800 xxxxx ...

2018-12-23 10:29:50

阅读数 20

评论数 0

TX-LCN分布式事务原理介绍

框架介绍 LCN分布式事务框架其本身并不创建事务,而是基于对本地事务的协调从而达到事务一致性的效果 核心步骤 创建事务组 是指在事务发起方开始执行业务代码之前先调用TxManager创建事务组对象,然后拿到事务标示GroupId的过程。 添加事务组 添加事务组是指参与方在执行完业务方法以后,...

2018-11-26 17:02:13

阅读数 74

评论数 0

分布式事务解决方案框架(LCN)

事物概念 事物特性(ACID) 原子性(A) 所谓的原子性就是说,在整个事务中的所有操作,要么全部完成,要么全部不做,没有中间状态。对于事务在执行中发生错误,所有的操作都会被回滚,整个事务就像从没被执行过一样。 一致性(C) 事务的执行必须保证系统的一致性,就拿转账为例,A有500元,B...

2018-11-26 13:33:00

阅读数 65

评论数 0

内存屏障

内存屏障(Memory barrier) 为什么会有内存屏障 每个CPU都会有自己的缓存(有的甚至L1,L2,L3),缓存的目的就是为了提高性能,避免每次都要向内存取。但是这样的弊端也很明显:不能实时的和内存发生信息交换,分在不同CPU执行的不同线程对同一个变量的缓存值不同。 用volati...

2018-11-24 17:43:56

阅读数 26

评论数 0

synchronized的实现原理

常见三种使用方法:      1)普通同步方法,锁是当前实例;     2)静态同步方法,锁是当前类的Class实例,Class数据存在永久代中,是该类的一个全局锁;     3)对于同步代码块,锁是synchronized括号里配置的对象。     Java中的每个对象都可以作为锁。当一个线...

2018-11-24 17:39:18

阅读数 32

评论数 0

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