微服务实战(九):落地微服务架构到直销系统(回顾总结)

这个系列我们大概写了八篇文章,将微服务的最重要的内容过了一遍。当然其中有些内容还没有涉及到,比如Docker(不是微服务架构风格中必须的)等,关于Docker我们自己可以在网上找找其他文章。 这篇文章就来回顾下微服务架构风格是如何落地的,如果你对以下回顾的内容都很清楚并已经有一些实践的经验,那么恭喜 ... »

微服务实战(八):落地微服务架构到直销系统(服务高可用性)

在微服务架构风格的系统中,如果单个微服务垮掉或地址不可访问,虽然对系统的影响是有限的,但我们也必须采取一定的手段来保证每个微服务尽量可用;并且在大并发的情况下,虽然可以通过EDA消息队列处理的方式提高吞吐量,但仍然需要WebApi能够更加高效的侦听用户请求,处理消息,即使在某个服务短暂不可用的情况下 ... »

IOC的理解,整合AOP,解耦对Service层和Dal层的依赖

DIP依赖倒置原则:系统架构时,高层模块不应该依赖于低层模块,二者通过抽象来依赖依赖抽象,而不是细节 贯彻依赖倒置原则,左边能抽象,右边实例化的时候不能直接用抽象,所以需要借助一个第三方 高层本来是依赖低层,但是可以通过工厂(容器)来决定细节,去掉了对低层的依赖 IOC控制反转:把高层对低层的依赖, ... »

基于ZooKeeper实现主从协作

主-从模式的模型中,主要包括三个角色: 主节点:主要负责监视新的节点和任务,分配任务给可用的从节点; 从节点:通过注册自己,确保主节点看到它们可以执行任务,收到主节点分配的任务后,执行并记录状态; 客户端:创建新的任务并等待系统响应。 1. Zookeeper节点介绍 现通过ZooKeeper的AP ... »

zookeeper之场景与架构-《每日五分钟搞定大数据》

Zookeeper作为一个分布式协调系统提供了一项基本服务: 分布式锁服务 ,分布式锁是分布式协调技术实现的核心内容。像配置管理、任务分发、组服务、分布式消息队列、分布式通知/协调等,这些应用实际上都是基于这项基础服务由用户自己摸索出来的。 1.Zookeeper在大数据系统中的常见应用 zooke ... »

基于ZooKeeper实现简单的配置中心

配置中心使用ZooKeeper的持久节点的特性,将配置信息写入到持久节点。客户端启动时,从ZooKeeper读取配置信息,进而初始化内部资源,达到配置统一管理的目的。再结合ZooKeeper的Watch特性,配置信息变化实时推送到客户端,即时生效,无需重启客户端,达到配置热更新的效果。 ... »

前端通信:ajax设计方案(八)--- 设计请求池,复用请求,让前端通信快、更快、再快一点

直接进入主题,本篇文章有点长,包括从设计阶段,到摸索阶段,再到实现阶段,最后全面覆盖测试阶段(包括数据搜集清洗),还有与主流前端通信框架进行对比PK阶段。 首先介绍一下一些概念: 1. 浏览器的并发能力:浏览器设计当初就定义了浏览器打开页面,同时发送http请求的瞬时数量。这样设计有很多原因,同时保 ... »

升级微服务架构5:API网关

API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。 按照使用场景来说,API网关只要用来给外部应用(PC客户端、移动 ... »

微服务实战(六):落地微服务架构到直销系统(事件存储)

在CQRS架构中,一个比较重要的内容就是当命令处理器从命令队列中接收到相关的命令数据后,通过调用领域对象逻辑,然后将当前事件的对象数据持久化到事件存储中。主要的用途是能够快速持久化对象此次的状态,另外也可以通过未来最终一致性的需求,通过事件数据将对象还原到一个特定的状态,这个状态通常是通过对象事件的 ... »

升级微服务架构4:断路器

断路器是电路中的一个保护电路安全的开关,当电路出现短路时,断路器会自动跳闸,防止出现电路故障。 一个微服务架构的系统中也需要这种保护装置,当消费者调用某一个服务的时候,如当前的服务有异常,譬如服务已经挂了,这时候就需要断路器来把当前调用的服务断开,Spring Cloud中集成的断路器组件为:Hys ... »

一步一步的django学习---004

Django模型(数据处理) Django对各种数据库提供了很好的支持,包括:Mysql、Oracle; Django为这些数据库提供了统一的API。下面开始用Django会会我们的数据库。 一、数据库的基本连接配置: 安装数据库驱动: 1. windows在cmd中输入:pip install m ... »

C#语法——反射,架构师的入门基础。

前言 编程其实就是写代码,而写代码目的就是实现业务,所以,语法和框架也是为了实现业务而存在的。因此,不管多么高大上的目标,实质上都是业务。 所以,我认为不要把写代码上升到科学的高度。上升到艺术就可以了,因为艺术本身也没有高度。。。。 软件设计存在过度设计,语法和框架的理解,也存在过度理解。比如,反编 ... »

升级微服务架构3:服务发现及服务相互调用

一个微服务架构的系统中,不同服务之间是会相互调用的,如一个订单服务需要取用户数据,则需要调用用户服务,有多个用户服务实例时,Eureka会负载均衡到其中一个服务实例,和上一章一样,我们先通过Java版的服务发现及调用服务来做例子并移植到.net core版本。 1.Java版服务调用 1.1创建订单 ... »

为什么说Java程序员必须掌握 Spring Boot ?

Spring Boot 2.0 的推出又激起了一阵学习 Spring Boot 热,那么, Spring Boot 诞生的背景是什么?Spring 企业又是基于什么样的考虑创建 Spring Boot? 传统企业使用 Spring Boot 会给我们带来什么样变革? 带着这些问题,我们一起来了解下 ... »

二零一八阿里p7笔试116题

1. junit用法,before,beforeClass,after, afterClass的执行顺序 2. 分布式锁 3. nginx的请求转发算法,如何配置根据权重转发 4. 用hashmap实现redis有什么问题(死锁,死循环,可用ConcurrentHashmap) 5. 线程的状态 5 ... »

升级微服务架构2:服务注册

微服务架构中,服务是最小的可伸缩的独立部署的单位,同一个服务提供可以有多个实例,这些实例都会注册到服务注册中心(Eureka Server)上进行统一的管理及调用的负载均衡。 因Spring Cloud的是已Java为主要开发语言,本文会先讲Java语言的服务怎么注册到服务中心,然后按照这个逻辑移植 ... »

Java 代码性能优化

代码优化 一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。 代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以 ... »