-
11. Dubbo原理解析-注册中心之接口介绍
服务注册与发现的中心,服务的提供者将服务发布到注册中心,服务的使用着到注册中引用服务。 Dubbo的注册中心提供了多种实现,其实现是基于dubbo的spi的扩展机制的,使用着可以直接实现自己的注册中心。 @SPI( "dubbo") public interface RegistryFactory { /** * 连接注册中心. * 连接注册中心需处理契约…- 9
- 0
-
27. Dubbo原理解析-管理控制台
Dubbo的dubbo-admin模块是后台管理系统,它的MVC框架式基于webx3的,webx是阿里巴巴开源出来基于页面驱动的mvc框架, webx在阿里内部广泛使用。 Webx是基于turbine发展而来逐渐成为一个功能强大扩展性强的mvc框架,利用约定大于配置原则,虽说使用简单,但是也有很多潜在规则在里面。Webx作为除了阿里以外一个小众框架学习起来还是很有成本的,再说dubbo中又对web…- 2
- 0
-
2. Dubbo原理解析-Dubbo内核实现之基于SPI思想Dubbo内核实现(转)
SPI接口定义 定义了@SPI注解 1public @interface SPI { 2 3 String value() default ""; //指定默认的扩展点 4 5} 6 只有在接口打了@SPI注解的接口类才会去查找扩展点实现 会依次从这几个文件中读取扩展点 META-INF/dubbo/internal/ //dubbo内部实现的各种扩展都放在了这个目录…- 6
- 0
-
zookeeper之分布式锁以及分布式计数器(通过curator框架实现)
有人可能会问zookeeper我知道,但是curator是什么呢? 其实curator是apachede针对zookeeper开发的一个api框架是apache的顶级项目 他与zookeeper原生api相比更加简洁方便使用 特别就是注册watcher这方面.再也不用我们手工去重复注册watcher了.我们只需监听一下然后curator全给我们做了.而且支持递归创建节点 和递归删除节点. 更大的优…- 1
- 0
-
SpringBoot整合Dubbo
前言 Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 简单来说,Dubbo 用于分布式的场景。 源码 GitHub地址:https://github.com/intomylife/SpringBoot 环境 JDK 1.8.0 + Maven 3.0 + MySQL 5.6.17 SpringBoot 2.0.3 ZooKe…- 5
- 0
-
ZooKeeper分布式锁
方案一: 利用Zookeeper不能重复创建一个节点(临时节点)的特性来实现一个分布式锁 流程: 查看目标Node是否已经创建,已经创建,那么等待锁。 如果未创建,创建一个瞬时Node,表示已经占有锁。 如果创建失败,那么证明锁已经被其他线程占有了,那么同样等待锁。 当释放锁,或者当前Session超时的时候,节点被删除,唤醒之前等待锁的线程去争抢锁。 代码实现: 1package com.cod…- 20
- 0
-
SpringCloud微服务监控——admin(二):admin服务端加入邮件通知
在admin监控的时候,我们希望的是如果有某个服务挂了,那么就发一个邮件,告诉我这个服务挂掉了。 1):在pom文件中,加入包依赖: 1<dependency> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-mail</artifa…- 8
- 0
-
Spring-cloud 微服务架构搭建 02 – config-server 集成git动态刷新配置及安全管理
文章目录 sping-cloud config简介 sping-cloud config 服务特点 Config-Server 服务端搭建 Config-Client 端搭建 动态刷新配置测试 config-server配置RSA加密 1. sping-cloud config简介 微服务的体系中,配置文件的统一管理是非常有必要的,我们需要替代人为手动维护配置文件的责任,因为在大型的微服务体系中我…- 14
- 0
-
微服务架构核心技术九
微服务最经典的三种服务发现机制 下面是图示: 客户端访问后端需要知道IP地址和端口号,以前每一个服务都被固定的部署到某一台机器上,默认端口号和IP地址都是可以通过客户端配置文件读取到的,微服务体系中,服务实例对应的网络地址是在动态变化的. 独立LB: 负载均衡器采用硬件f5或软件nginx负载均衡器 当服务的提供方上线以后,会向运维申请一个域名,运维配置负载均衡器,域名指向后台的服务。 服务消费方…- 7
- 0
-
微服务架构核心(四)- 微服务组织架构
前一篇介绍了微服务的技术架构,这一篇再来介绍微服务的组织架构, 之所以要聊组织架构,是由于著名的康威法则。 设计系统的组织,其产生的架构设计等价于组织间的沟通结构。 康威法则讲的是系统架构需要与开发系统的组织架构相匹配,如果不匹配就会造成沟通成本过高的问题。 例如开发一个单体应用,当参与开发的人员很少时,大家都隶属于一个团队,没有太大的问题。 但是一旦应用的规模很大,需要多个团队开发,大家在组织架…- 13
- 0
-
ASP.NET Core微服务之基于IdentityServer建立授权与验证服务(2)
Tip: 此篇已加入.NET Core微服务基础系列文章索引 上一篇我们基于IdentityServer4建立了一个AuthorizationServer,并且继承了QuickStartUI,能够成功获取Token了。这一篇我们了解下如何集成API Service和MVC Web Application。 一、集成API Service 1.1 添加ASP.NET Core WebAPI项目 新建…- 17
- 0
-
Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)【Dalston版】
前言 在微服务架构中,我们将系统拆分成了一个个的服务单元,各单元应用间通过服务注册与订阅的方式互相依赖。由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依赖服务自身问题出现调用故障或延迟,而这些问题会直接导致调用方的对外服务也出现延迟,若此时调用方的请求不断增加,最后就会出现因等待出现故障的依赖方响应而形成任务积压,线程资源无法释放,最终导致自身服务的瘫痪…- 3
- 0
-
Spring Cloud构建微服务架构:消息驱动的微服务(消费分区)【Dalston版】
通过上一篇《消息驱动的微服务(消费组)》的学习,我们已经能够在多实例环境下,保证同一消息只被一个消费者实例进行接收和处理。但是,对于一些特殊场景,除了要保证单一实例消费之外,还希望那些具备相同特征的消息都能够被同一个实例进行消费。这时候我们就需要对消息进行分区处理。 使用消息分区 在Spring Cloud Stream中实现消息分区非常简单,我们可以根据消费组示例做一些配置修改就能实现,具体如下…- 2
- 0
-
ASP.NET Core微服务之基于Steeltoe使用Hystrix熔断保护与监控
Tip: 此篇已加入.NET Core微服务基础系列文章索引 => Steeltoe目录快速导航: 基于Steeltoe使用Spring Cloud Eureka 基于Steeltoe使用Spring Cloud Zuul 基于Steeltoe使用Spring Cloud Hystrix 一、关于Spring Cloud Hystrix 在微服务架构中,我们将系统拆分为很多个服务,各个服务…- 0
- 0
-
Netty游戏服务器实战开发(12):线程任务组件开发
导读: 线程在java里面很多,本文不会介绍线程使用,只会介绍大型项目线程组件的开发模式。 一个大型项目中少不了对多线程的使用,在使用多线程的时候,可以使用Java 的API提供的Thread或者Runnable。随着API的丰富和发展,对程序员来说使用和管理线程也变得越来越方便了。例如我们利用线程池来管理线程,很常见的做法就是: 1 public void testThread() { 2 Ex…- 41
- 0
-
Netty源码分析第7章(编码器和写数据)—->第3节: 写buffer队列
Netty源码分析第7章(编码器和写数据)---->第3节: 写buffer队列 Netty源码分析七章: 编码器和写数据 第三节: 写buffer队列 之前的小节我们介绍过, writeAndFlush方法其实最终会调用write和flush方法 write方法最终会传递到head节点, 调用HeadContext的write方法: 1public void write(C…- 14
- 0
-
Netty源码分析第4章(pipeline)—->第4节: 传播inbound事件
Netty源码分析第四章: pipeline 第四节: 传播inbound事件 有关于inbound事件, 在概述中做过简单的介绍, 就是以自己为基准, 流向自己的事件, 比如最常见的channelRead事件, 就是对方发来数据流的所触发的事件, 己方要对这些数据进行处理, 这一小节, 以激活channelRead为例讲解有关inbound事件的处理流程 在业务代码中, 我们…- 24
- 0
-
Netty源码分析第2章(NioEventLoop)—->第2节: NioEventLoopGroup之NioEventLoop的创建
Netty源码分析第二章: NioEventLoop ** ** 第二节: NioEventLoopGroup之NioEventLoop的创建 回到上一小节的 MultithreadEventExecutorGroup 类的构造方法 : 1protected MultithreadEventExecutorGroup(int nThreads, Executor executor, 2 E…- 1
- 0
-
[编织消息框架][netty源码分析]1分析切入点
在分析源码之前有几个疑问 1.BOSS线程如何转交给handle(业务)线程 2.职业链在那个阶段执行 3.socket accept 后转给上层对象是谁 4.netty控流算法 另外要了解netty的对象设计职责 1.channel 2.pipeline 3.promise 4.eventLoop 5.handle 6.byteBuf 7.unsafe 分析netty用的是4.1.8.Fin…- 8
- 0
-
Mina、Netty、Twisted一起学(四):定制自己的协议
在前面的博文中,介绍一些消息分割的方案,以及MINA、Netty、Twisted针对这些方案提供的相关API。例如MINA的TextLineCodecFactory、PrefixedStringCodecFactory,Netty的LineBasedFrameDecoder、LengthFieldBasedFrameDecoder,Twisted的LineOnlyReceiver、Int32Str…- 11
- 0
-
Java NIO框架Netty教程(四) – ServerBootStrap启动流程源码分析
有一段事件没有更新文章了,各种原因都有吧。搬家的琐事,搬家后的安逸呵呵。不过,OneCoder明白,绝不能放松。对于Netty的学习,也该稍微深入一点了。 所以,这次 OneCoder花了几天时间,仔细梳理了一下Netty的源码,总结了一下ServerBootStrap的启动和任务处理流程,基本涵盖了Netty的关键架构。 OneCoder总结了一张流程图: 该图是 OneCoder通…- 31
- 0
-
Java NIO框架Netty教程(三) 字符串消息收发(转)
了解了Netty的基本概念(http://www.it165.net/pro/html/201207/3173.html),开发起来应该会顺手很多。 在“Hello World(http://www.it165.net/pro/html/201207/3142.html)”代码中,我们只是在完成绑定的时候,在各自的本地打印了简单的信息,并没有客户端和服务端的消息传递。这个肯定是最基本的功能。在上代…- 37
- 0
-
go-kit实践之3:go-kit 微服务的限流实现
介绍 go-kit提供了限流模块,该模块采用令牌桶算法实现,其实是封装了一下golang自带的golang.org/x/time/rate包来实现的。 令牌桶 令牌桶这种控制机制基于令牌桶中是否存在令牌来指示什么时候可以发送流量。令牌桶中的每一个令牌都代表一个字节。如果令牌桶中存在令牌,则允许发送流量;而如果令牌桶中不存在令牌,则不允许发送流量。因此,如果突发门限被合理地配置并且令牌桶中有足够的令…- 7
- 0
-
基于Dubbo框架构建分布式服务
转自:http://shiyanjun.cn/archives/1075.html 很好的文章 Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配置就能够实现分布式服务调用,也就是说服务提供方(Provider)发布的服务可以天然就是集群服务,比如,…- 2
- 0
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!