微服务
先放着大纲,趁宅在家,慢慢写. 缺一个树状导图。 发布和引用服务 服务提供者如何发布一个服务,服务消费者如何引用这个服务。 最常见的服务发布和引用的方式有三种: RESTful API 可参考开源服务化框架Motan发布 RESTful API 的例子 XML 配置 XML 配置这种方式的服务发布和引用主要分三个步骤:...
2020, Feb 03 — 4 minute read先放着大纲,趁宅在家,慢慢写. 缺一个树状导图。 发布和引用服务 服务提供者如何发布一个服务,服务消费者如何引用这个服务。 最常见的服务发布和引用的方式有三种: RESTful API 可参考开源服务化框架Motan发布 RESTful API 的例子 XML 配置 XML 配置这种方式的服务发布和引用主要分三个步骤:...
2020, Feb 03 — 4 minute read高可用在一般情况下相对于高性能更复杂一些,主要原因在于异常的场景很多,只要有一个场景遗漏,架构设计就存在可用性隐患 什么是FMEA FMEA(Failure mode and effects analysis,故障模式与影响分析) FMEA 是一种在各行各业都有广泛应用的可用性分析方法, 通过对系统范围内潜在的故障模式加以分析,并按照严重程度进行分类,以确定失效对于系统的最终影响。 回到软件架构设计领域,FMEA 并不能指导我们如何做架构设计,而是当我们设计出一个架构后, 再使用 FMEA 对这个架构进行分析,看看架构是否还存在某些可用性的隐患。...
2020, Jan 31 — 1 minute read能力下沉 一般来说实践DDD有两个过程: ★ 套概念阶段:了解了一些DDD的概念, 然后在代码中“使用”Aggregation Root,Bounded Context,Repository等等这些概念。 更进一步,也会使用一定的分层策略。 然而这种做法一般对复杂度的治理并没有多大作用。 ★ 融会贯通阶段:术语已经不再重要,理解DDD的本质是统一语言、边界划分和面向对象分析的方法。 大体上而言,我大概是在1.7的阶段,因为有一个问题一直在困扰我, 就是哪些能力应该放在Domain层,是不是按照传统的做法,将所有的业务都收拢到Domain上, 这样做合理吗?说实话,这个问题我一直没有想清楚。 因为在现实业务中,很多的功能都是用例特有的(Use...
2020, Jan 09 — 1 minute read来当前的公司已经近四年了,部门产品从0到1,公司从上市到退市,不少感触容我慢慢回忆。 回忆以产品技术发展为主,顺便聊聊产品及管理的理解。 ps:因为迁移blog,所以很多内容并没有很好的转过来,之前使用adoc+hugo发布我的blog。 2016 年 熟悉行业,重构现有产品,构建雏形 4月份加入该公司,负责公司的新产品线E-Navigation,原来的产品为电子海图。单从 E-Navigation 的概念上来说,就是一盘非常大的棋。 e-Navigation is about using modern technology...
2019, Dec 31 — 1 minute read识别复杂度 将主要的复杂度问题列出来, 然后根据业务、技术、团队等综合情况进行排序,优先解决当前面临的最主要的复杂度问题 对于按照复杂度优先级解决的方式,存在一个普遍的担忧:如果按照优先级来解决复杂度,可能会出现解决了优先级排在前面的复杂度后,解决后续复杂度的方案需要将已经落地的方案推倒重来。 这个担忧理论上是可能的,但现实中几乎是不可能出现的,原因在于软件系统的可塑性和易变性。 对于同一个复杂度问题,软件系统的方案可以有多个,总是可以挑出综合来看性价比最高的方案。 即使决定要推倒重来,这个新的方案也必须能够同时解决已经被解决的复杂度问题, 一般来说能够达到这种理想状态的方案基本都是依靠新技术的引入。 例如:Hadoop 能够将高可用、高性能、大容量三个大数据处理的复杂度问题同时解决。 关键指标 “高性能”主要从软件系统未来的TPS、响应时间、服务器资源利用率等客观指标,也可以从用户的主观感受方面去考虑。 对于常见中间件的性能量级范围: nginx负载均衡性能是3万左右,mc的读取性能5万左右,kafka号称百万级, zookeeper写入读取2万以上,http请求访问大概在2万左右。...
2018, Aug 16 — 1 minute read当移动主机在”主站点”中连接到互联网时,数据包会以正常的方式路由到主机上; 当移动主机在其他地方连入互联网时,有两个代理进程负责重新路由,主代理(HA)和副代理(FA)。这些进程运行在主站点以及移动主机当前所在位置处的固定计算机上。 HA负责保存移动主机当前位置(即可到达移动主机的IP地址)的最新情况。 当一个移动主机离开主站点时,它会告知HA,HA会注意到该移动主机离开。 当主机离开时,HA就充当一个代理服务器。HA会通知本地路由器取消与移动主机IP地址有关的任何缓存。 当HA作为一个代理服务器时,HA会响应有关移动主机IP地址的ARP请求,将自己的局域网地址作为移动主机的网络地址发给该请求。 当移动主机到达一个新站点的时候,他会通知在此站点上的FA。FA给它分配一个”转交”地址——一个本地子网上的新的临时IP地址。 此时FA与HA联系,将移动主机的主IP地址以及分配给它的转交地址告知HA。 HA将转交地址发送给原来的发送者.发送者如果支持移动IP会用这个新地址与移动主机通信.
2018, Jul 31 — 1 minute read“图”的最短路径问题,路由是其一个实例。 === 路由算法 决定数据包传输到目的地址的路由是由路由算法负责的——它由每个节点的一个网络层程序实现。 活动: 必须决定数据包传递时的路径 电路交换网络层(如X.25)和帧中继网络(如ATM),一旦建立虚拟电路或连接,路由就确定来。 在包交换层(如IP)中,数据包的路由是单独指定的。 此算法必须简单有效 必须通过监控流量和检测配置变化或故障来动态地更新网络的知识(开销信息、建立和维护路由表) 计算量大 时间可以慢 路由是一段一段决定的:用本地信息决定下一步怎么走,本地信息依靠一个分发链路状态信息(负载和故障状态)的算法定期更新。 ==== 距离向量算法(distance...
2018, Jun 04 — 1 minute read性能 延迟:执行操作之后和到达计算机之前的这段时间。 数据传输率:一旦传输过程开始,数据在网络上两台计算机之间的传输速度,bit/s 传输时间= 延迟 + 传输距离/数据传输率 —- 举例:一个客户将200字节的请求消息发送到一个服务,服务产生了5000字节的应答。 1> 使用TCP 2> 使用UDP 3> 客户和服务器在一个主机上...
2018, Mar 26 — 1 minute read