互联网开发
文章平均质量分 79
东东咚咚咚咚咚丶
饿了么后端工程师,一只不定期产粮的一线研发猿
展开
-
项目中使用spring和redis的整合
前言:最近刚刚换了一下公司(唱吧)做O2O线上线下KTV产品。公司之前有一个ERP1.0,但是因为各种原因吧,公司要换一个技术重做这个系统。选择了使用C#做winfrom前端,然后JAVA做服务器的后端。所有的项目架构以及代码全部重新设计。所以就有了让我去做redis缓存以及后期的读写分离的架构。好了,闲话少说,开始说正题了。第一次写博客,还望大家多多包涵,写的读不懂的地方留言,然后我会改进。原创 2016-05-26 16:21:44 · 6939 阅读 · 0 评论 -
JAVA的几个同步辅助类
Java为我们提供了一些同步辅助类,利用这些辅助类我们可以在多线程编程中,灵活地把握线程的状态。CountDownLatchCountDownLatch一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。再CountDownLatch中两个比较关键的方法:public void await() throws InterruptedExc原创 2017-02-23 15:37:13 · 886 阅读 · 0 评论 -
初识Shiro
Shiro是Apache基金会下的一个开源安全框架,提供了身份验证、授权、密码学和会话管理等功能,Shiro框架不仅直观易用,而且也能提供健壮的安全性,另外一点值得说的是Shiro的前身是一个始于2004的开源项目JSecurity,该项目于2008年加入Apache,并于2010年成为Apache的顶级项目。 OK,以上是关于Shiro的一点简单介绍,实际上,我在之前有一篇关于权限控制的博客原创 2017-03-20 11:39:41 · 470 阅读 · 0 评论 -
Java并发编程:线程池的使用
Java并发编程:线程池的使用 我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 在Java中可以通过线程池来达到...原创 2018-05-07 16:34:08 · 291 阅读 · 0 评论 -
互联网架构“高可用” “高并发”
什么是高可用高可用 HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。如何保障系统的高可用冗余(多个节点) + 自动故障转移什么是高并发高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。如何提升系统的并发能力垂直扩展:提升单...原创 2018-06-19 11:02:58 · 2036 阅读 · 0 评论 -
HTTP协议
HTTP 协议是互联网的基础协议,也是网页开发的必备知识,最新版本 HTTP/2 更是让它成为技术热点。本文介绍 HTTP 协议的历史演变和设计思路。一、HTTP/0.9HTTP 是基于 TCP/IP 协议的应用层协议。它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。最早版本是1991年发布的0.9版。该版本极其简单,只有一个命令GET。GET /i...原创 2018-07-12 16:02:48 · 236 阅读 · 0 评论 -
zookeeper的应用和原理
场景一有这样一个场景:系统中有大约100w的用户,每个用户平 均有3个邮箱账号,每隔5分钟,每个邮箱账需要收取100封邮件,最多3亿份邮件需要下载到服务器中(不含附件和正文)。用20台机器划分计算的压力,从 多个不同的网路出口进行访问外网,计算的压力得到缓解,那么每台机器的计算压力也不会很大了。 通过我们的讨论和以往的经验判断在这场景中可以实现并行计算,但我们还期望能对并行计...原创 2018-08-28 18:56:03 · 288 阅读 · 0 评论 -
如何解决高并发,秒杀问题
相信不少人会被这个问题困扰,分享大家一篇这样的文章,希望能够帮到你! 一、秒杀业务为什么难做?1)im系统,例如qq或者微博,每个人都读自己的数据(好友列表、群列表、个人信息);2)微博系统,每个人读你关注的人的数据,一个人读多个人的数据;3)秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读一个数据。例如:小米手机每周二的秒杀,可能手机只有1万部,但瞬时进入的...原创 2018-08-28 19:16:59 · 12280 阅读 · 0 评论 -
Mac OS 终端利器 iTerm2
之前一直使用 Mac OS 自带的终端,用起来虽然有些不太方便,但总体来说还是可以接受的,是有想换个终端的想法,然后今天偶然看到一个终端利器 iTerm2,发现真的很强大,也非常的好用,按照网上配置了主题什么的,还是有些坑的,这边再记录下,以便后面查阅。1. 安装 iTerm2下载地址:https://www.iterm2.com/downloads.html下载的是压缩文件...原创 2018-11-14 14:30:58 · 1663 阅读 · 0 评论 -
Mac运行Windows上的应用程序-以PowerDesigner为例
随着时代的变化,现在的很多后端开发都开始使用Mac作为第一生产工具。但是这就出现了一个很尴尬的问题,以前我们习惯用的Windows上很多的软件都没有Mac版本。要么我们为了用这些软件而使用两台电脑或者装双系统、要么只能勉强使用Mac版的工具。所以本篇博客主要解决的就是这个痛点,无需安装双系统。很快很简单的就能实现在Mac上执行EXE文件。首先,我们要下载Wineskin Winery软件。具体...原创 2018-11-16 15:08:31 · 3150 阅读 · 0 评论 -
饿了么多活高可用思想
饿了么业务快速发展,给技术带来了海量请求和高并发、微服务的挑战,同时开发团队快节奏的版本迭代和服务快速上线的要求也驱动运维团队提供稳定、高效的运维服务。2017 年 12 月 01 日-02 日,由 51CTO 主办的 WOTD 全球软件开发技术峰会在深圳中州万豪酒店隆重举行。饿了么技术运营负责人程炎岭在创新运维探索专场与来宾分享了"跨越篱笆-饿了么多活运维上下求索"的主题演讲,从业务...原创 2018-11-22 20:08:42 · 959 阅读 · 0 评论 -
饿了么异地多活实现思路
饿了么技术团队花了1年多的时间,实现了业务的整体异地多活,能够灵活的在多个异地机房之间调度用户,实现了自由扩容和多机房容灾的目标。本文介绍这个项目的整体结构,还简要介绍实现多活的5大核心基础组件,为读者建立基本的概念模型,后续会有系列文章陆续介绍每个组件的实现细节。读者能够从中了解到做异地多活的大方向,为实现自己的异地多活,或者是容灾备份提供参考。背景:为什么要做异地多活?饿了么要做多活,...原创 2018-11-22 20:21:58 · 1291 阅读 · 0 评论 -
JVM(JAVA虚拟机)调优及原理
本文转载自:http://blog.csdn.net/kthq/article/details/8618052堆内存设置原理JVM堆内存分为2块:Permanent Space 和 Heap Space。Permanent 即 持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。Heap原创 2016-09-05 18:46:26 · 11576 阅读 · 0 评论 -
Nginx配置详解
大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了!而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能很好地工作了。然而,如果你真的想挤压出nginx的性能,你必须更深入一些。在本指南中,我将解释Nginx的那些设置可以微调,以优化处理大量客户端时的性能。需要注意一点,这不是一个全面的微调指南。这是一转载 2016-08-10 15:18:22 · 3715 阅读 · 0 评论 -
SpringMVC @RequestParam 中文乱码问题解决
客户端用GET方式请求SpringMVC时,如果用采用如下方式则中文没有出现乱码:http://127.0.0.1:8080/SpringMVCHibernate4/rest/user/getUserById0/100-张三@RequestMapping(value="/getUserById0/{id}-{name}",method=RequestMethod.GET)@Respon原创 2016-06-15 13:04:43 · 14331 阅读 · 3 评论 -
Mysql主从概述
一、MySQL主从复制概述1、主从复制简介MySQL主从复制就是将一个MySQL实例(Master)中的数据实时复制到另一个MySQL实例(slave)中,而且这个复制是一个异步复制的过程。实现整个复制操作主要由三个进程完成的,其中两个进程在Slave(sql_thread和IO_thread),另外一个进程在 Master(IO进程)上。2、主从复制原理、机制原创 2016-08-03 18:36:48 · 2963 阅读 · 1 评论 -
Redis 3.2.1版配置 中英文对照翻译
Redis配置中文翻译,3.2.1版大部分常见设置都翻译了,还有一些是从网上复制的(懒)# Redis configuration file example.## Redis配置文件示例## Note that in order to read the configuration file, Redis must be# started with the file转载 2016-08-15 16:12:17 · 1379 阅读 · 0 评论 -
Mysql主从Java端实现
继昨天的Mysql主从的概述及基本的配置。今天趁着不是很忙的时候整理一下主从JAVA端的代码实现。下面开始贴代码:Spring MVC 的datasorce配置,这里我们使用的阿里的druid(德鲁伊)数据库连接池,先配置两个数据库链接池。分别连接主、从两个库。然后使用spring 的一个主要特性AOP切面编程来根据方法的前缀命名来选择是使用主数据库还是使用从数据库。(我选择切的是contro原创 2016-08-04 10:46:16 · 4804 阅读 · 2 评论 -
阿里云OSS 分块上传的代码整理
废话不多说,把代码贴出来。package com.changba.erp.utils;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import jav原创 2016-08-01 10:34:20 · 9798 阅读 · 17 评论 -
Linux下安装Nginx详细图解教程
Linux下安装Nginx详细图解教程 什么是Nginx?Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器,在高连接并发的情况下Nginx 是 Apache 服务器不错的替代品.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好.目前中国原创 2016-08-04 16:27:34 · 1793 阅读 · 0 评论 -
Nginx的负载均衡的那点事
Nginx的负载均衡的那点事本节就聊聊采用Nginx负载均衡之后碰到的问题:Session问题文件上传下载通常解决服务器负载问题,都会通过多服务器分载来解决。常见的解决方案有:网站入口通过分站链接负载(天空软件站,华军软件园等)DNS轮询F5物理设备Nginx等轻量级架构那我们看看Nginx是如何实现负载均衡的,Nginx的upstream目前支持以下几种方式的原创 2016-08-04 17:24:27 · 7531 阅读 · 2 评论 -
实现nginx的负载均衡
现在很多企业都采用多台服务器来共同支撑企业的网站,这样不仅可以加快企业网站的访问速度,还可以避免突发情况造成的灾难,但是会由于服务器本身原因或者某些外界因素会造成各个服务器的访问速度不一,这时候我们就需要配置http服务器的负载均衡来降低资源的浪费,下文就为大家介绍一下主流http服务器之一的nginx如何配置负载平衡。一、Nginx负载均衡原理简介: 能实现nginx负载均衡的原创 2016-08-04 18:31:06 · 22503 阅读 · 0 评论 -
Redis使用手册
1 引言随着业务的增长和产品的完善,急速增长的数据给Oracle数据库带来了很大的压力,而随着我们对产品服务质量要求的提高,传统的数据查询方式已无法满足我们需求。为此我们需要寻找另外一种模式来提高数据查询效率。NoSQL内存数据库是最近兴起的新型数据库,它的特点就是把数据放在内存中操作,数据处理速度相对于磁盘提高了好几个量级,因此,通过把经常访问的数据转移到内存数据库中,不但可以缓解Or原创 2016-08-16 16:15:27 · 1709 阅读 · 0 评论 -
前后端分离。前端POST请求参数过长,导致400错误解决办法及分析
这两天做好的功能要上线了。但是测试的时候忽然发现当POST提交数据量多大时,会导致后端报400错误。最开始以为瓶颈存在于tomcat,因为tomcat默认能接受的POST请求大小为2M,所以手动修改tomcat server.xml 文件,将接受POST大小修改为不限制。 经测试,发现依旧不起作用。 今天上网查询了相关资料,解决了这个问题。资料比较零散,在这里整理一下,为同样遇到该问题的伙伴们提供原创 2016-08-01 17:19:19 · 27135 阅读 · 0 评论 -
Spring MVC之@RequestBody, @ResponseBody 详解
引言:接上一篇文章讲述处理@RequestMapping的方法参数绑定之后,详细介绍下@RequestBody、@ResponseBody的具体用法和使用时机;简介:@RequestBody作用: i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的转载 2016-08-02 11:01:44 · 443 阅读 · 0 评论 -
饿了么异地双活数据库实战
本文根据 GOPS2017·上海站演讲《饿了么异地双活数据库实战》整理发布作者简介:虢国飞,饿了么 DBA负责人从事数据库行业10+年,专注于MySQL、PgSQL、MSSQL等数据库领域的管理、研究和平台的研发等工作,目前负责饿了么数据库团队的管理和数据库维护方面的工作。我今天分享是饿了么在数据库和多活数据库这块的实战经历,供大家参考。主要分享以下五点:1、多活当中的难点...原创 2018-11-22 20:47:15 · 1255 阅读 · 2 评论