6 rhwayfunn

尚未进行身份认证

越努力,越幸运!

等级
TA的排名 2k+

写在2019年后的蚂蚁、头条、拼多多的面试总结

写在2019年后的蚂蚁、头条、拼多多的面试总结原文:https://github.com/rhwayfun/interview不想听我BB直接进入面试分享:准备过程蚂蚁金服面试分享拼多多面试分享字节跳动面试分享总结说起来开始进行面试是年前倒数第二周,上午9点,我还在去公司的公交上,突然收到蚂蚁的面试电话,其实算不上真正的面试。面试官只是和我聊了下他们在做的事情(主要是做双十一这...

2019-03-25 10:25:22

体系化认识微服务之四:服务注册发现机制

服务调用者要在众多的微服务中调用具体的服务提供者,必然涉及到负载均衡的问题,根据负载均衡的实现可以分为集中式LB、进程内LB和独立进程LB。集中式LBLB上有所有的服务地址配置,当服务消费者调用某个服务的时候,LB会根据负载均衡策略(随机、轮询等)将请求转发到具体的服务上。此外,服务调用者还需要知道LB的地址,通常的做法是运维在服务器上配置一个DNS域名或者IP,这个域名指向LB。...

2018-06-02 14:49:14

体系化认识微服务之三:微服务总体技术架构

体系化认识微服务之三:微服务总体技术架构这篇文章,介绍下微服务的总体架构体系,微服务拆分后涉及的服务众多,我们从一个全局的视角看下微服务架构涉及哪些方面。从上层到下层依次分为:接入层、网关、业务服务层、支撑服务层、平台服务层、基础设施层技术构架总览:接入层接入层是入口,比如支付宝,接入层包括手机APP、Web、H5,是流量的入口,负责把外部的流量接入到系统的内部。网关...

2018-05-20 13:07:28

体系化认识微服务之二:如何实施微服务架构

微服务作为一种架构风格,其主要特点是由很多小的服务组成,且每个服务都是可独立部署的,任何一个服务的升级部署都不会影响其他的服务。那么在企业中如何实施微服务这种架构呢?按业务组织团队康威法则:设计系统的组织,其产生的架构设计等价于族之间的沟通架构。在以往传统的软件架构中,所有的功能都是在一个单体系统中完成的,每个团队都可以在上面修改代码,开发测试部署也比较方面。但是随着业务的扩展...

2018-05-12 17:07:04

体系化认识微服务之一:什么是微服务

什么是微服务微服务作为一种架构风格,是从单体应用演化过来的。微服务真正让大家关注源于Martin·Fowler的一篇博客Microservices,文章对微服务定义如下:Inshort,themicroservicearchitecturalstyleisanapproachtodevelopingasingleapplicationasasuite...

2018-05-06 13:34:32

MySQL规范整理

基础规范版本MySQL5.7存储引擎InnoDB字符集utf8必要时候使用utf8mb4(1)utf8通用,无乱码风险,汉字3字节,英文1字节(2)utf8mb4是utf8的超集,有存储4字节例如表情符号时,使用它禁用存储过程、触发器、视图、Event能在服务端计算的就不要把压力放在数据库禁止存储大文件对象...

2018-04-06 21:48:01

重构:从方法论到实践

重构:从方法论到实践最近部门内部组织了一次大型重构,刚好借着这个机会学习了重构相关的内容,重构可以说代码优化利器,可以很好改善代码结构和开发效率。个人觉得重构应该是随时进行的,开发阶段、测试阶段、上线后,任何时候你觉得代码写得不够好或者有bug都应该重构。什么是重构通俗讲就是不影响外界访问的前提下,修改代码的行为。这里的修改代码包括重新设计(业务设计和技术设计)和代码结构的调整。...

2018-03-17 15:43:33

程序员练级:究上究下(持续更新中)

究上:学习优秀的设计和思路看源码:jdk8、spring、mybatis、dubbo、rocketmqjdk8:Map(HashMap/ConcurrentHashMap)、Collection(ArrayList/LinkedList/BlockingQueue)spring:bean生命周期、依赖注入、AOP实现(动态VS静态)、MVC、事务、springbootmyba...

2018-03-01 09:18:19

回顾2017:谈谈过去一年的成长

2017过去了,回顾2017希望能够看清楚现在的自己,在2018遇见更好的自己。前不久支付宝的年度账单刷屏朋友圈,作为一名程序员,我也来晒晒我的2017年度技术“账单”。2017年度成长“账单”Github:89stars,37forksspring-boot-learning-examples:62stars,27forksjava-skill-gra

2018-01-07 22:54:09

使用Spring Boot Starter开发RocketMQ

RocketMQ最早是阿里巴巴开源的MQ中间件,在阿里集团被广泛应用在订单,交易,充值,流计算,消息推送,日志流式处理,binglog分发等场景。现已捐献给Apache,目前是Apache下的顶级项目。捐献后的最新版本是4.1.0-incubating。在实际场景中使用MQ打交道最多的是发送消息和消费消息。RocketMQ支持广播消费和集群消费,广播消费是指每隔consumer实例都会收到消息,一条

2017-12-24 13:23:39

Dubbo Hessian2序列化问题

问题定义了一个接口,返回值为Map<String,Byte>,consumer收到结果后,使用Bytevalue=map.get(key)获取结果,抛出了如下类型转换异常:如下:java.lang.ClassCastException:java.lang.Integercannotbecasttojava.lang.Byteatsun.reflect.Native

2017-12-22 17:35:00

Sharding-JDBC读写分离探秘

前段时间写了篇如何使用Sharding-JDBC进行分库分表的例子,相信能够感受到Sharding-JDBC的强大了,而且使用配置都非常干净。官方支持的功能还包括读写分离、分布式主键、强制路由等。这里再介绍下如何在分库分表的基础上集成读写分离的功能。读写分离的概念就是为了缓解数据库压力,将写入和读取操作分离为不同数据源,写库称为主库,读库称为从库,一主库可配置多从库。设置主从库后,第一个问题

2017-11-19 19:10:28

Sharding-JDBC分库分表使用实例

Sharding-JDBC是当当开源的用于分库分表的基础类库。定位轻量级java框架,可以通过客户端直接连接数据库,只需要在增加额外的数据源配置就可以轻松实现完整的分库分表功能。Sharding-JDBC是一个开源的适用于微服务的分布式数据访问基础类库,它始终以云原生的基础开发套件为目标。目前Sharding-JDBC已经实现的功能包括(最新稳定版本为2.0.0.M1):分库分表读写分离

2017-10-28 12:33:48

【开源】大型网站架构技能图谱

之前在博客发布了一份大型网站架构技能图谱,陆陆续续有小伙伴希望有一份xmind源文件,我打算把这个图谱作为开源项目维护,有利于统一维护,同时也希望能够与大家相互提高。目前的想法是把源文件放在Github,同时把图片形式作为一个链接可以直接查看。目前已经维护在GitHub,java-skill-graph,欢迎Star和讨论。大家有什么更好的想法尽快提出来吧,让我们一起把这个项目维护起来(^o^)/~

2017-10-12 23:33:33

【译】Scheduling Tasks

原文:SchedulingTasks开始使用定时任务本指南将一步步引导您如何在Spring中使用定时任务。完成什么构建一个应用,实现的功能为每5秒打印出当前时间。这点可以通过Spring注解@Scheduled完成。准备什么大约需要15分钟一个您喜爱的文本编辑器或者IDE(集成开发工具)JDK1.8或更高版本Gradle2.3+或者Maven3.0+您也可以直接导入代码到ID

2017-10-11 21:32:13

Spring bean id相同引发的故障

最近因为同事bean配置的问题导致生产环境往错误的redis实例写入大量的数据,差点搞挂redis。经过快速的问题定位,发现是同事新增一个redis配置文件,并且配置的RedisSentinelConfiguration的id是一样的,然后在使用@Autowired注入bean的时候因为springbean覆盖的机制导致读取的redis配置不是原来的。总结起来,有两点问题:为什么相同beani

2017-09-23 23:02:40

Spring Boot学习案例开源项目

为了更好的学习并使用springboot进行开发,维护了一个springboot学习案例开源项目,涉及springboot从基础开发到企业实战,涵盖不同场景的开发案例。公司内部所有的服务都基于springboot进行开发以完成服务化。下面是本开源项目的部分截图:涉及的内容包括但不限于:web开发数据库mybatis使用(含多数据源配置)缓存框架使用(caffeine、ehcache、redis

2017-09-10 23:50:38

重试框架Spring retry实践

springretry是从springbatch独立出来的一个能功能,主要实现了重试和熔断。对于重试室友场景限制的,不是什么场景都适合重试,比如参数校验不合法、写操作等(要考虑写是否幂等)都不适合重试。远程调用超时、网络突然中断可以重试。在微服务治理框架中,通常都有自己的重试与超时配置,比如dubbo可以设置retries=1,timeout=500调用失败只重试1次,超过500ms调用仍未返回

2017-09-03 17:16:19

Spring Security实战

springsecurity是一个多方面的安全认证框架,提供了基于JavaEE规范的完整的安全认证解决方案。并且可以很好与目前主流的认证框架(如CAS,中央授权系统)集成。使用springsecurity的初衷是解决不同用户登录不同应用程序的权限问题,说到权限包括两部分:认证和授权。认证是告诉系统你是谁,授权是指知道你是谁后是否有权限访问系统(授权后一般会在服务端创建一个token,之后用这个t

2017-08-20 13:19:00

Spring定时任务源码分析

之前在深入浅出springtask详细介绍了springtask的用法与使用示例,这篇文章更近一步,我们从源码的角度看看内部的实现机制。之所以写这篇文章是因为最近因为springtask的误用引发了一次线上的故障。本着一探究竟的精神,源码撸起。先还原下springtask是如何误用的,示例代码如下:packagecom.rhwayfun.springboot.task;importor

2017-08-13 00:21:33

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!