![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
微服务
文章平均质量分 71
haoxin963
身为一名资深Java程序员,我已经把人工智能融入我的代码中,梦想用Java创造出能和我一起喝咖啡的智能机器人!
展开
-
服务注册发现-Eureka
服务中心服务中心又称注册中心,管理各种服务功能包括服务的注册、发现、熔断、负载、降级等,比如dubbo admin后台的各种功能。有了服务中心调用关系会有什么变化,画几个简图来帮忙理解项目A调用项目B正常调用项目A请求项目B有了服务中心之后,任何一个服务都不能直接去掉用,都需要通过服务中心来调用 如果没有服务中心,画一张图来描述几十个项目之间的相互调用关系全是线...原创 2018-08-30 17:24:44 · 641 阅读 · 2 评论 -
redis(五)-缓存三大问题及解决方案
缓存的设计包含很多技巧,设计不当将会导致严重的后果。本文将介绍缓存使用中常见的三大问题,并给出相应的解决方案。缓存穿透 缓存雪崩 缓存击穿1. 缓存穿透在大多数互联网应用中,缓存的使用方式如下图所示:当业务系统发起某一个查询请求时,首先判断缓存中是否有该数据; 如果缓存中存在,则直接返回数据; 如果缓存中不存在,则再查询数据库,然后返回数据。了解了上述过程后,下面说说缓...原创 2018-10-21 21:12:54 · 28715 阅读 · 8 评论 -
zookeeper(四)-zookeeper安装
前面几篇博客讲了zookeeper的原理和应用场景,下面给大家介绍怎么安装部署:zookeeper(一)-zookeeper介绍及原理zookeeper(二)-Paxos算法zookeeper(三)-zookeeper应用场景 环境部署zk服务器集群规模不得小于3个节点 要求各服务器之间系统时间要保持一致现在我们准备三台机器,都是centos7.2IP my...原创 2018-08-10 15:48:54 · 253 阅读 · 0 评论 -
zookeeper(一)-zookeeper介绍及原理
一、ZooKeeper是什么ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。官网:zookeeper.apache.org/源码:github.com/apache/zook…二、...原创 2018-10-20 13:27:32 · 278 阅读 · 0 评论 -
zookeeper(三)-zookeeper应用场景
1.分布式配置 要点:配置信息保存在db与zk中(保险起见,数据安全性更高),弄一个后台管理界面,对配置修改后,先保存到db,然后同步写入zk的节点中。应用启动时,先连到zk上读取节点中的配置,同时监听节点的数据变化,当配置变化时,得到实时通知。2.消除单点故障(Single Point of Failure,SPOF)└── ./OrderNoServic...原创 2018-10-20 13:46:42 · 183 阅读 · 0 评论 -
zookeeper(二)-Paxos算法
分布式系统中的节点通信存在两种模型:共享内存(Shared memory)和消息传递(Messages passing)。基于消息传递通信模型的分布式系统,不可避免的会发生以下错误:进程可能会慢、被杀死或者重启,消息可能会延迟、丢失、重复,在基础 Paxos 场景中,先不考虑可能出现消息篡改即拜占庭错误的情况。Paxos 算法解决的问题是在一个可能发生上述异常的分布式系统中如何就某个值达成一致,保...原创 2018-10-20 13:20:49 · 185 阅读 · 0 评论 -
分布式唯一ID
一、使用场景在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。如在美团点评的金融、支付、餐饮、酒店、猫眼电影等产品的系统中,数据日渐增长,对数据库的分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需求;特别一点的如订单、骑手、优惠券也都需要有唯一ID做标识。此时一个能够生成全局唯一ID的系统是非常必要的。二、ID生成需求1.全局唯一性:不能出现重...原创 2018-10-16 22:56:29 · 426 阅读 · 0 评论 -
分布式锁介绍及实现
一、什么是分布式锁?要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。线程锁:主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段。线程锁只在同一JVM中有效果,因为线程锁的实现在根本上是依靠线程之间共享内存实现的,比如synchronized是共享对象头,显示锁Lock是共享某个变量(state)。分布式锁:当多个进程不在同一个系...原创 2018-10-16 22:40:41 · 1125 阅读 · 0 评论 -
sky平台技术架构图
sky平台开源地址:https://gitee.com/haoxin963/sky更多微服务的文章请关注我的微信公众号:原创 2018-09-30 17:25:57 · 3605 阅读 · 0 评论 -
服务消息总线-Spring Cloud Bus
1.为什么需要Spring Cloud Bus如果需要客户端获取到最新的配置信息需要执行refresh,我们可以利用webhook的机制每次提交代码发送请求来刷新客户端,当客户端越来越多的时候,需要每个客户端都执行一遍,这种方案就不太适合了。使用Spring Cloud Bus可以完美解决这一问题。2.什么是Spring Cloud BusSpring cloud bus通过轻量消息代...原创 2018-09-03 17:29:02 · 888 阅读 · 0 评论 -
服务配置中心-Spring Cloud Config
1.为什么要配置中心?一个应用中不只是代码,还需要连接资源和其它应用,经常有很多需要外部设置的项去调整应用行为,如切换不同的数据库,设置功能开关等。随着系统微服务的不断增加,首要考虑的是系统的可伸缩、可扩展性好,随之就是一个配置管理的问题。各自管各自的开发时没什么问题,到了线上之后管理就会很头疼,到了要大规模更新就更烦了。配置中心就是一个比较好的解决方案,下图就是一个配置中心的解决方案:...原创 2018-09-03 17:04:15 · 592 阅读 · 0 评论 -
服务调用端熔断-Hystrix
1.为什么需要熔断器分布式系统环境下,服务间类似依赖非常常见,一个业务调用通常依赖多个基础服务。如下图,对于同步调用,当库存服务不可用时,商品服务请求线程被阻塞,当有大批量请求调用库存服务时,最终可能导致整个商品服务资源耗尽,无法继续对外提供服务。并且这种不可用可能沿请求调用链向上传递,这种现象被称为雪崩效应。、 雪崩效应常见场景硬件故障:如服务器宕机,机房断电,光纤被挖断等。...原创 2018-09-03 16:35:52 · 4356 阅读 · 0 评论 -
服务调用端代码抽象和封装-Feign
在前面的文章中,我们讲了使用Eureka作为服务注册中心,在服务启动后,各个微服务会将自己注册到Eureka server。那么服务之间是如何调用?又是如何进行负载均衡的呢?目前,在Spring cloud 中服务之间通过restful方式调用有两种方式restTemplate+Ribbon feign从实践上看,采用feign的方式更优雅(feign内部也使用了ribbon做负载均衡...原创 2018-09-03 15:50:39 · 1162 阅读 · 0 评论 -
服务调用端负载均衡-Ribbon
1.什么是负载均衡负载均衡是微服务架构中必须使用的技术,通过负载均衡来实现系统的高可用、集群扩容等功能。负载均衡可通过硬件设备及软件来实现,硬件比如:F5、Array等 ,软件比如:LVS、Nginx等 。如下图是负载均衡的架构图: 用户请求先到达负载均衡器(也相当于一个服务),负载均衡器根据负载均衡算法将请求转发到微服务。负载均衡算法有:轮训、随机、加权轮训、加权随机、地址哈...原创 2018-09-03 15:25:03 · 1082 阅读 · 0 评论 -
服务网关-Zuul
1. Zuul是什么微服务场景下,每一个微服务对外暴露了一组细粒度的服务。客户端的请求可能会涉及到一串的服务调用,如果将这些微服务都暴露给客户端,那么会增加客户端代码的复杂度。参考GOF设计模式中的Facade模式,将细粒度的服务组合起来提供一个粗粒度的服务,所有请求都导入一个统一的入口,那么整个服务只需要暴露一个api,对外屏蔽了服务端的实现细节,也减少了客户端与服务器的网络调用次数。这...原创 2018-09-03 14:33:44 · 1873 阅读 · 1 评论 -
微服务介绍
我们先了解一下系统架构的演变过程:1.单一架构(三层结构):表示层:用于显示数据和接收用户输入的数 据,为用户提供一种交互式操作的界面,前端页面,如html,jsp。业务逻辑层:无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层...原创 2018-08-30 10:04:20 · 460 阅读 · 0 评论 -
Spring Cloud介绍
上一篇博客我们介绍了微服务:微服务介绍,下面我们主要讲讲怎么在我们的项目中使用微服务,关于技术选择大家可以参考:微服务架构技术栈选型手册,其中Spring Cloud是微服务实践的最佳落地方案。介绍srping cloud之前先简单介绍一下Spring Boot:什么是Spring BootSpring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应...原创 2018-08-30 10:49:59 · 3266 阅读 · 0 评论 -
微服务开源项目-sky平台
sky平台简介sky平台是基于spring cloud的微服务接口开发平台,平台的目标是在高并发,大数据场景下支持水平扩展和服务高可靠,高可用。平台包含API网关、统一权限认证、前后端代码生成,数据上传分库分表等多个模块,可以作为后端接口的开发脚手架或微服务学习入门框架。说明如果对您对此项目有兴趣,可以点 "Star" 支持一下 谢谢! ^_^ 或者您可以 "follow" ...原创 2018-10-29 21:44:12 · 2839 阅读 · 0 评论