glmapper

glmapper

从程序的世界中全身而退

关于 rpc 的整理和理解
架构演变 所有的界面和服务均在同一个进程下 基于mvc的视图与服务分离,但是实际上还是在一个应用系统中,只不过在功能层次上划分的更加细致 粒度更细,对于不同的功能服务进行切分,并进行单独的部署 面向服务的架构,将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来 微服务 此处不支持图片展示,自行脑补!!! 随着业务量和用户量的增加,架构也是从单一系统走向分布式系统,我能想到的是,这种架构的演变主要解决的问题在于: 通过业务模块的拆分,使得每个模块的职责更加清晰,但是模块的职责边界的划分往往也是很疼头的事情。 细致的划分使得项目在管理上面会更加...
关于 Mybatis 中 SQL 语句的整理
随着业务的发展,越来越多的应用系统都从一个大的系统分拆成多个小的系统,各个系统之间通过一定的通信协议进行数据交换。这样就会导致一些小的应用系统自己不用去进行数据库的操作,只需要进行一些rpc调用或者缓存就可以拿到数据进行展示。我之前参与的一个项目就是这样的情况,而我也是将近7个多月的时间没有写过一行SQL。 近期参与的一个项目的数据大多都市基于数据库来进行数据交互的,所以免不了的要写大量的SQL,所以本篇就总结一下一些SQL的基本写法,以备后用。 建表12345CREATE TABLE IF NOT EXISTS `user_test` ( `id` int(11) NOT NUL...
nginx 反向代理和负载均衡策略实战案例
欢迎关注:glmapper_2018 引言先来看下nginx在web服务器排名上的趋势: 存在即合理,那为什么要使用nginx呢?这得看看nginx能帮我们做些什么。 首先,nginx能做反向代理【关于反向代理和正向代理此处不做说明了,感兴趣的小伙伴自行谷歌】;比方说,我想在本地使用 www.glmapper1.com 的域名去访问www.taobao.com。那么这个时候我们就可以通过nginx去实现。 再者,nginx能实现负载均衡,什么是负载均衡呢?就是说应用部署在不同的服务器上,但是通过统一的域名进入,nginx则对请求进行分发,将请求分发到不同的服务器上去处理,这样就可以有效的...
聊一聊 session和cookie
本来是想写aop设计机制的,但是最近被session这个东西搞得有点头大,所以就抽点时间来整理下关于session的一些东西。 目录 从http协议的无状态性说起 无连接和无状态 持久连接 http无状态 如何保持状态信息 Cookie Cookie机制原理 Cookie在servlet-api中的定义 Cookie属性 创建Cookie Cookie更新 Cookie删除 从请求中获取Cookie Cookie同源与跨域 Cookie数量&大小限制及处理策略 Session session机制原理 HttpSession 创建session 生命周期 session...
聊一聊 AOP:Advice 源码解析
在第一篇中的例子和概念介绍中我们对 Advice 有了一个初步的认知。在Spring AOP中,Advice的作用就是用来描述 Spring AOP 围绕方法调用而注入的切面行为。 本篇文章将从源码的角度来看一看 Advice 到底是什么样的?又是怎么完成通知的? Advice 接口1234567891011package org.aopalliance.aop;/** * Tag interface for Advice. Implementations can be any type * of advice, such as Interceptors. * @author Rod...
聊一聊 AOP :表现形式与基础概念
aop 终于提上日程来写一写了。 系列目录本系列分为 上、中、下三篇。上篇主要是介绍如果使用 AOP ,提供了demo和配置方式说明;中篇来对实现 AOP 的技术原理进行分析;下篇主要针对Spring中对于AOP的实现进行源码分析。 从一个例子说起 基于代理的方式 纯POJO切面 配置方式 AspectJ 注解方式 AspectJ XML 配置方式 表达式说明 基础概念 AOP概念 Target Object 织入(Weave Proxy Introduction Aspect Joinpoint Pointcut Advice 概念 分类 关系 一些坑 项目地...
Google Guava 在实际场景中的应用封装
毕竟西湖六月中,风光不与四时同。 接天莲叶无穷碧,映日荷花别样红。 晓出净慈寺送林子方-杨万里 周末与小伙伴约了一波西湖,这个时间荷花开的正好…,在开始文章之前先放一张“佛系”美图来镇楼!!! 最近这段时间用了下谷歌的guava,自己封了一个缓存模板方案,特此记录,以备后续所需。 一个缓存定时清除任务带来的GC问题为什么要从这个来说起,因为不说这个就没guava什么事了! 最近项目中需要使用缓存来对一查查询频繁的数据做缓存处理;首先我们也不希望引入三方的如redis或者memcache这样的服务进来,其次是我们对于数据一致性的要求并不是很高,不需要集群内的查询接口共享到一份缓存数据...
分布式链路跟踪组件 SOFATracer 和 Zipkin 模型转换原理
SOFATracer 是一个用于分布式系统调用跟踪的组件,通过统一的 traceId 将调用链路中的各种网络调用情况以日志的方式记录下来或者上报到 zipkin,以达到透视化网络调用的目的。这种以日志的方式记录下来或者上报到zipkin通常称为 Report,即数据上报 SOFATracer 的数据上报是在遵循 OpenTracing 规范基础上扩展出来的能力,OpenTracing 规范本身只是约定了数据模型和行为。本文主要目的在于分析 SOFATracer 的数据上报功能部分,主要内容如下: 基于 OpenTracing 规范的分布式链路跟踪解决方案 SOFATracer Repo...
看完这个不会配置 logback ,请你吃瓜!
之前在 日志?聊一聊slf4j吧 这篇文章中聊了下slf4j。本文也从实际的例子出发,针对logback的日志配置进行学习。 logack 简介 logback 官网:https://logback.qos.ch/ 目前还没有看过日志类框架的源码,仅限于如何使用。所以就不说那些“空话”了。最直观的认知是: logback和log4j是一个人写的 springboot默认使用的日志框架是logback。 三个模块组成 logback-core logback-classic logback-access 其他的关于性能,关于内存占用,关于测试,关于文档详见源码及官网说明 logb...
SOFATracer 中 Disruptor 实践
OpenTraceing 规范 OpenTracing语义标准 语义惯例 官方文档 SOFATracer 对 OpenTraceing 的实现 SOFATracer 就是根据 OpenTracing 规范 衍生出来的分布式 链路跟 踪的解决方案。 GitHub SOFATrcer 概念OpenTracing 标准中有三个重要的相互关联的类型,分别是Tracer, Span和 SpanContext。 【下面的概念说明过程中,如不做说明,所使用的案例代码均以SOFATracer中的实现为例。】 Tracer一个 trace 代表一个潜在的,分布式的,存在并行数据或并行执行轨迹...
avatar
Glmapper@leishu
分享与学习