alibaba

canal搭建实例

故事扮演 提交于 2020-02-14 00:23:15
canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费 早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同步的业务需求,实现方式主要是基于业务 trigger 获取增量变更。从 2010 年开始,业务逐步尝试数据库日志解析获取增量变更进行同步,由此衍生出了大量的数据库增量订阅和消费业务。 工作原理 MySQL主备复制原理 MySQL master 将数据变更写入二进制日志( binary log, 其中记录叫做二进制日志事件binary log events,可以通过 show binlog events 进行查看) MySQL slave 将 master 的 binary log events 拷贝到它的中继日志(relay log) MySQL slave 重放 relay log 中事件,将数据变更反映它自己的数据 canal 工作原理 canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议 MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal ) canal 解析 binary log 对象(原始为 byte 流) 安装搭建 首先要明确一点

微服务之间的通讯安全(八)-Sentinel入门之规则持久化

孤街浪徒 提交于 2020-02-12 23:57:20
规则持久化    现在我们配置的规则实际上是在内存中的,如果客户端应用配置中有控制台(dashboard),当流量经过客户端的时候,会把规则同步给控制台;同样当在控制台配置规则后,也会把规则推送给相应的客户端。规则都是存放在两边的内存中,一旦控制台或客户端重启,内存中的规则就消失了。如下图:   我们需要一个远程的配置中心,将规则都存放在里面,如下图,当控制台有规则变化时,将规则推送到远程配置中心进行持久化,如果远程配置中心有规则变化,可以推送给客户端,这样的话,不管是客户端还是控制台重启,都不会丢掉现有的规则配置。 远程配置中心支持的组件有很多,如:ZooKeeper 、Nacos 、Apollo 等,这里我们使用ZooKeeper 作为配置中心。 1.1、准备zookeeper,下载连接 http://mirror.bit.edu.cn/apache/zookeeper/stable/ 1.2、改造控制台   1.2.1、下载或克隆Sentinel项目到本地 https://github.com/alibaba/Sentinel/tree/release-1.7 ,通过IDE打开sentinel-dashboard项目   1.2.2、将pom中的zookeeper客户端 curator依赖的scope去掉   1.2.3、将test\java\com\alibaba\csp

dubbo学习笔记

我的未来我决定 提交于 2020-02-12 15:47:17
一、Dubbo 创造者对于Dubbo的价值与意义作出过精辟的见解 1、单一应用架构 网站流量很小,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本 此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。 2、垂直应用架构 访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率, 此时,用于加速前端页面开发的 Web框架(MVC) 是关键。 3、分布式服务架构 垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求, 此时,用于提高业务复用及整合的 分布式服务框架(RPC) 是关键。 4、流动计算架构 服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率, 此时,用于提高机器利用率的 资源调度和治理中心(SOA) 是关键。 关键在于第3向第4的转变 ,原因在大规模服务化之前,应用可能只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用,通过F5等硬件进行负载均衡。 (1) 当服务越来越多时,服务URL配置管理变得非常困难,F5硬件负载均衡器的单点压力也越来越大。 此时需要一个服务注册中心,动态的注册和发现服务,使服务的位置透明。

Alibaba Cloud Tookit——在IDEA上简单应用

僤鯓⒐⒋嵵緔 提交于 2020-02-08 18:06:43
相关文档 在 IntelliJ IDEA 中安装和配置 Cloud Toolkit 使用 IntelliJ IDEA 部署应用到 ECS 补充 官方文档不够详细,这里补充一下。 安装插件完成后,进入 File > setting 设置服务器账户,第一次设置请点击 Get existing AK/SK ,获取 AK/SK 。 右击项目,找到 Alibaba Cloud ,选择部署方式。 这里以 Deploy to ECS 举例。 来源: CSDN 作者: mumuzsl 链接: https://blog.csdn.net/qq_42213014/article/details/104220815

一、spring cloud alibaba学习(nacos,ribbon)

北城余情 提交于 2020-02-08 02:11:41
对比 Nacos 服务发现组建,也是配置服务器 用来解决服务a如何找到服务b、并且管理微服务 下载应用程序,并打开,以启动Nacos Server 加依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>${latest.version}</version> </dependency> 没有注解。 写配置,制定Nacos Server的地址、服务名称 spring: cloud: nacos: discovery: #指定nacos server的地址 server-addr: localhost:8848 application: #服务名称尽量用-,不要用_及特殊字符 name: user-center 领域模型 namespace:主要用于隔离,例如隔离开发环境,生产环境,测试环境等。不能跨namespace调用实例。 group:把不同的微服务放到一个分组里,方便管理。(alibaba0.9.0中没有用到) service:微服务 cluster:集群,对指定微服务的虚拟划分 instance:微服务实例 namespace和cluster:

二、spring cloud alibaba学习(Feign)

末鹿安然 提交于 2020-02-08 01:17:06
Feign 是开源的声明式http客户端,简化restTemplate调用时url难以维护,代码不可读等问题。 只要声明一个接口,feign就会自动构造一个请求的地址并请求 feign也具有负载均衡,通过整合ribbon实现,所以之前ribbon配置在这依然可用。 加依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> 加注解 在启动类上加@EnableFeignClients 没有配置 创建远程http调用接口 @FeignClient(name = "user-center") public interface UserCenterFeignClient{ //当findById被调用的时候,feign就会构建出http://user-center/users/{id}并请求 @GetMapping("/users/{id}") UserDTO findById(@PathVariable Integer id); } 如果参数多的话,写成(@RequestParam xx1,xx2,xx3...)即可 调用的时候就可以不用restTemplate,并写相关url

三、spring cloud alibaba学习(Sentinel)

筅森魡賤 提交于 2020-02-08 01:15:21
雪崩效应 也叫级联故障,基础服务故障导致上层服务故障,并不断放大的过程。 例如C-->B-->A,A挂了,B调用A超时,B的线程有限,满了以后导致B也挂了,逐渐导致C及后面的也挂了,就像滚雪球一样,最终可能导致整个服务都挂了。 常见容错方案 超时 设置比较短的超时时间,比如给B服务设置1秒的超时时间,1秒以后不管调用成不成功,线程都会被释放。 限流 比如服务B最大限流的值是1000,那给B设置800,达到阈值后,后面的请求服务直接拒绝。 仓壁模式 每个controller都有自己的线程池,这个controller线程满了,拒绝服务了,并不会影响其他controller的服务。 断路器模式 监控每个api的状态,例如5秒钟错误次数或错误率到达一个值,那就认定这个服务出了问题,断路器打开。断路器有一个半开状态,隔一段时间断路器会切位半开状态,调用一下挂掉的服务,如果服务可以被调用,则说明服务恢复,断路器关闭。如果不能被调用,说明服务没有恢复,断路器仍处于打开状态。 Sentinel 轻量级的流量控制、熔断级java库。说白了就是个容错的库 加依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>

四、spring cloud alibaba学习(RocketMQ)

拜拜、爱过 提交于 2020-02-08 01:09:24
假如有一个文章审核,通过后加积分的需求,审核是这个方法的主体,而加积分并不需要实时同步,这时,我们就可以将加积分的功能变为异步执行。 Spring实现异步的方法 1.AsyncRestTemplate https://blog.csdn.net/jiangchao858/article/details/86709750 2.@Async注解 https://spring.io/guides/gs/async-method/ 3.WebClient(Spring 5.0引入) https://docs.spring.io/spring/docs/5.1.8.RELEASE/spring-framework-reference/web-reactive.html#webflux-client 4.MQ 引入MQ后,生产者生产消息,然后将消息发送给MQ,消费者监听这个消息所属的topic,一旦接收到消息,就进行相关的处理。 MQ的适用场景 1.异步处理:不解释 2.流量削峰填谷:例如秒杀活动,可以用MQ控制参加人数,人数一旦达到阈值,就丢弃请求或跳转到错误页。防止应用被流量洪峰打死。 3.解耦微服务:假如A调用B,B挂了,虽然有sentinel可以保护A不被B拖死,但是依然无法正常返回,用MQ以后,A把消息发给MQ,就算B挂了也没事,后面B恢复正常会从MQ中拿消息处理,AB也解耦了。

[MQ]rocketMQ

喜夏-厌秋 提交于 2020-02-05 14:11:54
阿里巴巴的rocketmq github地址:https://github.com/alibaba/RocketMQ 启动过程 git clone https://github.com/alibaba/RocketMQ.git cd RocketMQ sh install.sh cd devenv 安装完成后,因为install.sh脚本中创建devenv 符号链接写错了目录,需要在RocketMQ目录下执行如下命令: rm -rf devenv ln -s target/alibaba-rocketmq-3.0.7/alibaba-rocketmq devenv 启动RocketMQ cd devenv/bin nohup sh mqnamesrv & nohup sh mqbroker -n "192.168.230.128:9876" & more nohup.out 如果显示: The Name Server boot success. The broker[vdata.kt, 192.168.230.128:10911] boot success. 来源: https://www.cnblogs.com/hm-zhang/p/5955260.html

阿里巴巴 29 个屌炸天的开源Java项目

隐身守侯 提交于 2020-02-02 09:37:43
前言 众所周知,阿里巴巴是 apache基金会成员、Linux基金会成员,同时是Xen顾问委员会成员。上述身份可见阿里在开源方面的重视程度,阿里通过开源贡献更多技术、分享更多理念。其开源的很多项目大受欢迎,今日就来盘点阿里 29 个开源项目,你用过几个,哪个最好用,欢迎在留言区告诉我。 如果你一直以来都对java抱有强烈的学习兴趣。却不知道如何系统的进行学习。学习有困难或者想领取java小白学习路线资料的 这里有互相学习交流的小伙伴,可以进来一起学习,有什么不懂得也可以互相解答:点击我加入吧,即可直达。 。 1. 分布式应用服务开发的一站式解决方案 Spring Cloud Alibaba Spring Cloud Alibaba 致力于提供分布式应用服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。 依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应用系统。 地址: https://github.com/spring-cloud-incubator/spring-cloud-alibaba 2. 设计语言 & 前端框架 Ant Design Ant