HashMap连环问

“Hash的实现原理”是Java面试中非常高频的一个问题,以这个问题为起点,我们能问出多少与HashMap相关的问题?甚至进一步引申到其它的知识点?

这篇文章我就来开开脑洞,来一个HashMap连环问。

点我阅读更多...

常见链表操作-单链表反转(JAVA实现)

在技术面试中,单链表的操作经常会被问到,比如一些常见的问题:

  • 单链表反转
  • 链表中环的检测
  • 两个有序俩表的合并
  • 删除链表倒数第n个节点
  • 求链表的中间节点

接下来的文章,我对这些操作的实现算法做了一些总结,具体实现的编程语言是Java。

今天第一篇,先讲讲如何实现单链表反转。

点我阅读更多...

微服务架构核心(五)- 服务发现

每一个服务都存在服务的提供方和消费方,服务发现就是消费方发现并且调用服务方提供的服务。

在微服务架构下,存在众多的消费方与服务方,而且服务运行在不同的进程之中,消费方如果想要调用某一个服务,必须通过远程调用的方式,此时就会遇到下面几个问题:

  1. 消费方如何知道服务方的调用地址?
  2. 以集群方式部署的服务方,如何保证负载均衡?
  3. 当服务方发生变动,例如IP变更、服务下线等,如何通知到消费方?

服务发现的出现,就是为了解决上面几个问题。在微服务架构中有三种经典的服务发现模式。

点我阅读更多...

微服务架构核心(四)- 微服务组织架构

前一篇介绍了微服务的技术架构,这一篇再来介绍微服务的组织架构。

之所以要聊组织架构,是由于著名的康威法则

康威法则:设计系统的组织,其产生的架构设计等价于组织间的沟通结构。

康威法则讲的是系统架构需要与开发系统的组织架构相匹配,如果不匹配就会造成沟通成本过高的问题。

点我阅读更多...