架构
攻城狮不是猫
公众号:攻城狮不是猫,分享各种编程语言、开发技术、分布式与微服务架构、分布式数据库、分布式事务、 云原生、大数据与云计算技术和渗透技术。另外,还会分字各种视频资源,面试题和面试技巧。
展开
-
什么是 Docker ?
关于 Docker 是什么,有个著名的隐喻:集装箱。但是它却起了个“码头工人”(docker 的英文翻译)的名字。这无疑给使用者很多暗示:“快来用吧!用了 Docker,就像世界出现了集装箱,这样你的业务就可以随意的、无拘无束的运行在任何地方(Docker 公司的口号:Build,Ship,and Run Any App,Anywhere),于是码头工人就基本都可以下岗了。”但是人们往往忽转载 2018-01-16 14:08:20 · 620 阅读 · 0 评论 -
敏捷开发入门教程
敏捷开发(agile development)是非常流行的软件开发方法。据统计,2018年90%的软件开发采用敏捷开发。但是,到底什么是敏捷开发,能说清的人却不多。本文尝试用简洁易懂的语言,解释敏捷开发。一、迭代开发敏捷开发的核心是迭代开发(iterative development)。敏捷一定是采用迭代开发的方式。那么什么是"迭代开发"呢?迭代的英文是 iterative,直...转载 2019-06-12 14:52:32 · 250 阅读 · 0 评论 -
Java程序员修炼之道 之 Logging(3/3) - 怎么分析Log
1. 说明作为一个程序员我们经常要做一件事情:获取某个Log文件,从其中找出自己想要的信息。本文总结了我在工作中使用了哪些工具来分析Log文件获取我想要的信息,我最近几年的工作环境都是服务器在Linux上,工作机是Windows, 所以我用的工具主要是Linux上的一些命令行工具,当然他们在Windows上也可以用,具体看下面的工具篇。先声明,我只是非常普通的Linux用户,所以如果有些Li...转载 2019-04-09 13:52:30 · 189 阅读 · 0 评论 -
Java程序员修炼之道 之 Logging(2/3) - 怎么写Log
1. 一个最基本的例子使用Logging框架写Log基本上就三个步骤引入loggerg类和logger工厂类 声明logger 记录日志下面看一个例子//1.引入slf4j接口的Logger和LoggerFactoryimportorg.slf4j.Logger;importorg.slf4j.LoggerFactory;publicclassUserServic...转载 2019-04-09 13:50:57 · 272 阅读 · 0 评论 -
Java程序员修炼之道 之 Logging(1/3) - Logback 配置
写在前面的话:作为《Java程序员修炼之道》博文的第一个主题Logging,我计划中按照如下三篇来写:Logback的简单介绍和配置 在Java代码中如何使用SLF4J来写日志以及写日志的要点 作为一个程序员,在日常工作中如何分析和挖掘Log。1. 缘起写代码中的日志是一个除了用代码实现功能之外最基础最基础的一个技能了,是一个必须掌握的技能。但是目前为止,关于如何日志的文章和书籍...转载 2019-04-09 13:49:40 · 308 阅读 · 0 评论 -
Spring Security OAuth2 优雅的集成短信验证码登录以及第三方登录
基于SpringCloud做微服务架构分布式系统时,OAuth2.0作为认证的业内标准,Spring Security OAuth2也提供了全套的解决方案来支持在Spring Cloud/Spring Boot环境下使用OAuth2.0,提供了开箱即用的组件。但是在开发过程中我们会发现由于Spring Security OAuth2的组件特别全面,这样就导致了扩展很不方便或者说是不太容易直指定扩展...转载 2019-03-28 17:21:57 · 5832 阅读 · 0 评论 -
【架构师之路】集群/分布式环境下5种session处理策略
在搭建完集群环境后,不得不考虑的一个问题就是用户访问产生的session如何处理。如果不做任何处理的话,用户将出现频繁登录的现象,比如集群中存在A、B两台服务器,用户在第一次访问网站时,Nginx通过其负载均衡机制将用户请求转发到A服务器,这时A服务器就会给用户创建一个Session。当用户第二次发送请求时,Nginx将其负载均衡到B服务器,而这时候B服务器并不存在Session,所以就会将用户踢...转载 2019-04-01 21:40:50 · 96 阅读 · 0 评论 -
分布式架构系统生成全局唯一序列号的一个思路
一、相关背景分布式架构下,唯一序列号生成是我们在设计一个系统,尤其是数据库使用分库分表的时候常常会遇见的问题。当分成若干个sharding表后,如何能够快速拿到一个唯一序列号,是经常遇到的问题。在携程账号数据库迁移MySql过程中,我们对用户ID的生成方案进行了新的设计,要求能够支撑携程现有的新用户注册体量。本文通过携程用户ID生成器的实现,希望能够对大家设计分库分表的唯一id有一些新...转载 2019-03-28 14:23:36 · 792 阅读 · 0 评论 -
Redis 缓存和 MySQL 数据如何实现一致性?
需求起因在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行业务操作。读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MyS...转载 2019-03-07 10:38:04 · 537 阅读 · 0 评论 -
关于MQ那些事
我走过最长的路是你的套路女:二号男嘉宾,假如我们牵手成功后,你会买名牌包包给我吗?男:那你会听话吗?女:会 听话。男:听话 咱不买!那么消息队列MQ有什么套路呢?(这个话题转换生硬度连我自己都怕!)使用消息队列场景和好处 使用消息队列会带来什么问题,有什么解决方案 如何使用MQ(以ActiveMQ为例)1.消息队列的应用场景和好处: 异步-流量削峰 我们...转载 2019-03-14 14:07:27 · 174 阅读 · 0 评论 -
模式
模式:每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必重复工作原创 2018-02-07 16:02:52 · 139 阅读 · 0 评论 -
23个适合Java开发者的大数据工具和框架
目前,编程人员面对的最大挑战就是复杂性,硬件越来越复杂,OS越来越复杂,编程语言和API越来越复杂,我们构建的应用也越来越复杂。根据外媒的一项调查报告,以下列出了Java程序员在过去12个月内一直使用的一些工具或框架,或许会对你有意义。先来看看大数据的概念。根据维基百科,大数据是庞大或复杂的数据集的广义术语,因此传统的数据处理程序不足以支持如此庞大的体量。在许多情况下,使用转载 2018-01-29 10:58:14 · 4406 阅读 · 0 评论 -
什么是RESTful 如何给老婆解释什么是RESTful Javdroider
如何给老婆解释什么是RESTfulJavdroider Hong3 个月前老婆经常喜欢翻看我订阅的技术杂志,她总能从她的视角提出很多有趣的问题。一个悠闲的周日下午,她午觉醒来,又习惯性的抓起这个月的杂志,饶有兴趣地看了起来。果不其然,看着看着,她又对我发难了,“Restful是什么呀,老公?是restaurant的形容词吗,突然就觉得好饿了啊......”作转载 2018-01-24 11:28:39 · 276 阅读 · 0 评论 -
docker ribbitmq 无法访问控制台
下载的如果是latest是不带控制台的,下面这种启动是没有控制台的docker run -d --name myrabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:latest下载3-management是带控制台的docker run -d --name myrabbitmq -p 5672:5672 -p 15672:15672 ra...原创 2019-08-05 14:32:39 · 684 阅读 · 0 评论