首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
梦之痕
掘友等级
后台研发
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
20
文章 20
沸点 0
赞
20
返回
|
搜索文章
最新
热门
字节码增强之ASM
1. 字节码 Java之所以可以"一次编译,到处运行",一是因为JVM针对各种平台和操作系统都进行了定制,对开发者屏蔽了底层细节。二是因为无论在任何平台都会编译生成固定格式的字节码(.class)文件供JVM使用,不同平台上的JVM虚拟机都可以载入和执行同一种和平台无关的字节码…
geohash简单应用-面对面匹配好友
我们最近有个项目需求,实现面对面匹配好友功能。 预想的场景是两个用户面对面的时候可以很方便地通过摇一摇或者其它互动方式快速找到对方来达成好友。 后端服务基于GPS位置快速匹配附近的人。 第一时间想到的方式是直接计算用户的距离,若用户距离在要求的范围之内,则这两个用户达成匹配。 …
服务如何优雅关闭
很多时候服务都有平滑退出的需求,例如RPC服务在停止之后需要从注册服务摘除节点、从消息队列已经消费的消息需要正常处理完成等。一般地我们希望能让服务在退出前能执行完当前正在执行的任务,这个时候就需要我们在JVM关闭的时候运行一些清理现场的代码。 JDK提供了Java.Runtim…
服务限频限次的场景方案
在设计服务的时候,我们会遇到不同的限速限频需求。根据不同的需求场景,我们会有对应的解决方案。 使用Guava的RateLimiter工具类,基于令牌桶算法实现流量限制。 一般地RateLimiter提供的是单机的限流方案。若需要实现服务整体的QPS流量控制,可以基于Redis实…
分页查询中的问题
我们项目中经常会遇到数据库分页查询的场景,如查看用户的历史订单、查看用户的联系人列表等。一般在用户全量数据不可控的时候,我们都会考虑通过分页的方式来获取数据。一方面数据库查询性能可以得到保证,另一方面也可以减少客户端数据的传输。 在数据库分页查询也有些场景需要特别注意,否则会容…
数据库锁机制
脏读、不可重复读和幻读都是数据库读一致性问题,需要由数据库提供一定的事务隔离机制来解决。 解决写-写冲突问题。在读取数据前,对其加锁,防止其它事务对该数据进行修改。 往往依靠数据库提供的锁机制。 大多是基于数据版本记录机制来实现。 解决读-写冲突问题。不用加锁,通过一定机制生成…
分布式会话跟踪的简单应用
在业务场景中一般由商家端服务维护商家和商品等信息,用户端服务从商家端服务同步各种业务数据。同步到的数据会通过接口调用实时扩散到用户端其它线上服务使用。线上服务一般会将商家信息存储在本地内存,这样数据访问效率会更高。 线上服务都是使用内存数据。如果数据没有实时同步正确,这对商家和…
数据库事务和MVCC多版本并发控制
一个事务必须被视为一个不可分割的最小工作单位,整个事务中的所有操作要么全部提交成功,要么全部失败回滚。 数据库总是从一个一致性状态转换到另一个一致性状态,事务执行之前和执行之后都必须处于一致性状态。 通常来说,一个事务所做的修改在最终提交之前,对其它事务是不可见的。关于事务的隔…
服务监控-友好地集成Metrics到项目中
Metrics的基本介绍可以参考之前的文章:Metrics-服务指标度量。 本文简单介绍下如何将Metrics监控集成到我们的项目中。 内存、线程、硬盘、服务GC情况等基本信息是我们关心的核心指标。我们可以考虑通过Gauge指标项把这些机器指标做统一收集。 请求频率及耗时是我们…
会员自动续费该如何实现
会员自动续费本质是委托扣款模式。只有用户完成签约,商户才可以对用户账户进行自动扣款,从而完成会员订单的支付操作。 用户在应用内通过微信或支付宝的SDK完成代扣签约,微信或支付宝在用户签约成功后将签约信息通过异步通知的方式通知给商户后台。商户后台需要维护用户的签约信息,签约ID为…
下一页
个人成就
文章被点赞
406
文章被阅读
72,725
掘力值
1,991
关注了
18
关注者
1,308
收藏集
1
关注标签
8
加入于
2018-12-21